Commit cdaa0d9195b23057edf5090b267050d0bf333801

Authored by YunaiV
1 parent 1bfaa2c9

初始化 User 模块的代码

Showing 18 changed files with 1286 additions and 463 deletions
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java deleted
1   -package com.ruoyi.web.controller.system;
2   -
3   -import java.io.IOException;
4   -import org.springframework.beans.factory.annotation.Autowired;
5   -import org.springframework.web.bind.annotation.GetMapping;
6   -import org.springframework.web.bind.annotation.PostMapping;
7   -import org.springframework.web.bind.annotation.PutMapping;
8   -import org.springframework.web.bind.annotation.RequestBody;
9   -import org.springframework.web.bind.annotation.RequestMapping;
10   -import org.springframework.web.bind.annotation.RequestParam;
11   -import org.springframework.web.bind.annotation.RestController;
12   -import org.springframework.web.multipart.MultipartFile;
13   -import com.ruoyi.common.annotation.Log;
14   -import com.ruoyi.common.config.RuoYiConfig;
15   -import com.ruoyi.common.core.controller.BaseController;
16   -import com.ruoyi.common.core.domain.AjaxResult;
17   -import com.ruoyi.common.core.domain.entity.SysUser;
18   -import com.ruoyi.common.core.domain.model.LoginUser;
19   -import com.ruoyi.common.enums.BusinessType;
20   -import com.ruoyi.common.utils.SecurityUtils;
21   -import com.ruoyi.common.utils.ServletUtils;
22   -import com.ruoyi.common.utils.file.FileUploadUtils;
23   -import com.ruoyi.framework.web.service.TokenService;
24   -import com.ruoyi.system.service.ISysUserService;
25   -
26   -/**
27   - * 个人信息 业务处理
28   - *
29   - * @author ruoyi
30   - */
31   -@RestController
32   -@RequestMapping("/system/user/profile")
33   -public class SysProfileController extends BaseController
34   -{
35   - @Autowired
36   - private ISysUserService userService;
37   -
38   - @Autowired
39   - private TokenService tokenService;
40   -
41   - /**
42   - * 个人信息
43   - */
44   - @GetMapping
45   - public AjaxResult profile()
46   - {
47   - LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
48   - SysUser user = loginUser.getUser();
49   - AjaxResult ajax = AjaxResult.success(user);
50   - ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
51   - ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
52   - return ajax;
53   - }
54   -
55   - /**
56   - * 修改用户
57   - */
58   - @Log(title = "个人信息", businessType = BusinessType.UPDATE)
59   - @PutMapping
60   - public AjaxResult updateProfile(@RequestBody SysUser user)
61   - {
62   - if (userService.updateUserProfile(user) > 0)
63   - {
64   - LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
65   - // 更新缓存用户信息
66   - loginUser.getUser().setNickName(user.getNickName());
67   - loginUser.getUser().setPhonenumber(user.getPhonenumber());
68   - loginUser.getUser().setEmail(user.getEmail());
69   - loginUser.getUser().setSex(user.getSex());
70   - tokenService.setLoginUser(loginUser);
71   - return AjaxResult.success();
72   - }
73   - return AjaxResult.error("修改个人信息异常,请联系管理员");
74   - }
75   -
76   - /**
77   - * 重置密码
78   - */
79   - @Log(title = "个人信息", businessType = BusinessType.UPDATE)
80   - @PutMapping("/updatePwd")
81   - public AjaxResult updatePwd(String oldPassword, String newPassword)
82   - {
83   - LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
84   - String userName = loginUser.getUsername();
85   - String password = loginUser.getPassword();
86   - if (!SecurityUtils.matchesPassword(oldPassword, password))
87   - {
88   - return AjaxResult.error("修改密码失败,旧密码错误");
89   - }
90   - if (SecurityUtils.matchesPassword(newPassword, password))
91   - {
92   - return AjaxResult.error("新密码不能与旧密码相同");
93   - }
94   - if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0)
95   - {
96   - // 更新缓存用户密码
97   - loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword));
98   - tokenService.setLoginUser(loginUser);
99   - return AjaxResult.success();
100   - }
101   - return AjaxResult.error("修改密码异常,请联系管理员");
102   - }
103   -
104   - /**
105   - * 头像上传
106   - */
107   - @Log(title = "用户头像", businessType = BusinessType.UPDATE)
108   - @PostMapping("/avatar")
109   - public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException
110   - {
111   - if (!file.isEmpty())
112   - {
113   - LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
114   - String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file);
115   - if (userService.updateUserAvatar(loginUser.getUsername(), avatar))
116   - {
117   - AjaxResult ajax = AjaxResult.success();
118   - ajax.put("imgUrl", avatar);
119   - // 更新缓存用户头像
120   - loginUser.getUser().setAvatar(avatar);
121   - tokenService.setLoginUser(loginUser);
122   - return ajax;
123   - }
124   - }
125   - return AjaxResult.error("上传图片异常,请联系管理员");
126   - }
127   -}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java deleted
1   -package com.ruoyi.web.controller.system;
2   -
3   -import java.util.List;
4   -import java.util.stream.Collectors;
5   -import org.springframework.beans.factory.annotation.Autowired;
6   -import org.springframework.security.access.prepost.PreAuthorize;
7   -import org.springframework.validation.annotation.Validated;
8   -import org.springframework.web.bind.annotation.DeleteMapping;
9   -import org.springframework.web.bind.annotation.GetMapping;
10   -import org.springframework.web.bind.annotation.PathVariable;
11   -import org.springframework.web.bind.annotation.PostMapping;
12   -import org.springframework.web.bind.annotation.PutMapping;
13   -import org.springframework.web.bind.annotation.RequestBody;
14   -import org.springframework.web.bind.annotation.RequestMapping;
15   -import org.springframework.web.bind.annotation.RestController;
16   -import org.springframework.web.multipart.MultipartFile;
17   -import com.ruoyi.common.annotation.Log;
18   -import com.ruoyi.common.constant.UserConstants;
19   -import com.ruoyi.common.core.controller.BaseController;
20   -import com.ruoyi.common.core.domain.AjaxResult;
21   -import com.ruoyi.common.core.domain.entity.SysRole;
22   -import com.ruoyi.common.core.domain.entity.SysUser;
23   -import com.ruoyi.common.core.domain.model.LoginUser;
24   -import com.ruoyi.common.core.page.TableDataInfo;
25   -import com.ruoyi.common.enums.BusinessType;
26   -import com.ruoyi.common.utils.SecurityUtils;
27   -import com.ruoyi.common.utils.ServletUtils;
28   -import com.ruoyi.common.utils.StringUtils;
29   -import com.ruoyi.common.utils.poi.ExcelUtil;
30   -import com.ruoyi.framework.web.service.TokenService;
31   -import com.ruoyi.system.service.ISysPostService;
32   -import com.ruoyi.system.service.ISysRoleService;
33   -import com.ruoyi.system.service.ISysUserService;
34   -
35   -/**
36   - * 用户信息
37   - *
38   - * @author ruoyi
39   - */
40   -@RestController
41   -@RequestMapping("/system/user")
42   -public class SysUserController extends BaseController
43   -{
44   - @Autowired
45   - private ISysUserService userService;
46   -
47   - @Autowired
48   - private ISysRoleService roleService;
49   -
50   - @Autowired
51   - private ISysPostService postService;
52   -
53   - @Autowired
54   - private TokenService tokenService;
55   -
56   - /**
57   - * 获取用户列表
58   - */
59   - @PreAuthorize("@ss.hasPermi('system:user:list')")
60   - @GetMapping("/list")
61   - public TableDataInfo list(SysUser user)
62   - {
63   - startPage();
64   - List<SysUser> list = userService.selectUserList(user);
65   - return getDataTable(list);
66   - }
67   -
68   - @Log(title = "用户管理", businessType = BusinessType.EXPORT)
69   - @PreAuthorize("@ss.hasPermi('system:user:export')")
70   - @GetMapping("/export")
71   - public AjaxResult export(SysUser user)
72   - {
73   - List<SysUser> list = userService.selectUserList(user);
74   - ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
75   - return util.exportExcel(list, "用户数据");
76   - }
77   -
78   - @Log(title = "用户管理", businessType = BusinessType.IMPORT)
79   - @PreAuthorize("@ss.hasPermi('system:user:import')")
80   - @PostMapping("/importData")
81   - public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
82   - {
83   - ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
84   - List<SysUser> userList = util.importExcel(file.getInputStream());
85   - LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
86   - String operName = loginUser.getUsername();
87   - String message = userService.importUser(userList, updateSupport, operName);
88   - return AjaxResult.success(message);
89   - }
90   -
91   - @GetMapping("/importTemplate")
92   - public AjaxResult importTemplate()
93   - {
94   - ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
95   - return util.importTemplateExcel("用户数据");
96   - }
97   -
98   - /**
99   - * 根据用户编号获取详细信息
100   - */
101   - @PreAuthorize("@ss.hasPermi('system:user:query')")
102   - @GetMapping(value = { "/", "/{userId}" })
103   - public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
104   - {
105   - AjaxResult ajax = AjaxResult.success();
106   - List<SysRole> roles = roleService.selectRoleAll();
107   - ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
108   - ajax.put("posts", postService.selectPostAll());
109   - if (StringUtils.isNotNull(userId))
110   - {
111   - ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId));
112   - ajax.put("postIds", postService.selectPostListByUserId(userId));
113   - ajax.put("roleIds", roleService.selectRoleListByUserId(userId));
114   - }
115   - return ajax;
116   - }
117   -
118   - /**
119   - * 新增用户
120   - */
121   - @PreAuthorize("@ss.hasPermi('system:user:add')")
122   - @Log(title = "用户管理", businessType = BusinessType.INSERT)
123   - @PostMapping
124   - public AjaxResult add(@Validated @RequestBody SysUser user)
125   - {
126   - if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName())))
127   - {
128   - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
129   - }
130   - else if (StringUtils.isNotEmpty(user.getPhonenumber())
131   - && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
132   - {
133   - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
134   - }
135   - else if (StringUtils.isNotEmpty(user.getEmail())
136   - && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
137   - {
138   - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
139   - }
140   - user.setCreateBy(SecurityUtils.getUsername());
141   - user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
142   - return toAjax(userService.insertUser(user));
143   - }
144   -
145   - /**
146   - * 修改用户
147   - */
148   - @PreAuthorize("@ss.hasPermi('system:user:edit')")
149   - @Log(title = "用户管理", businessType = BusinessType.UPDATE)
150   - @PutMapping
151   - public AjaxResult edit(@Validated @RequestBody SysUser user)
152   - {
153   - userService.checkUserAllowed(user);
154   - if (StringUtils.isNotEmpty(user.getPhonenumber())
155   - && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
156   - {
157   - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
158   - }
159   - else if (StringUtils.isNotEmpty(user.getEmail())
160   - && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
161   - {
162   - return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
163   - }
164   - user.setUpdateBy(SecurityUtils.getUsername());
165   - return toAjax(userService.updateUser(user));
166   - }
167   -
168   - /**
169   - * 删除用户
170   - */
171   - @PreAuthorize("@ss.hasPermi('system:user:remove')")
172   - @Log(title = "用户管理", businessType = BusinessType.DELETE)
173   - @DeleteMapping("/{userIds}")
174   - public AjaxResult remove(@PathVariable Long[] userIds)
175   - {
176   - return toAjax(userService.deleteUserByIds(userIds));
177   - }
178   -
179   - /**
180   - * 重置密码
181   - */
182   - @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
183   - @Log(title = "用户管理", businessType = BusinessType.UPDATE)
184   - @PutMapping("/resetPwd")
185   - public AjaxResult resetPwd(@RequestBody SysUser user)
186   - {
187   - userService.checkUserAllowed(user);
188   - user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
189   - user.setUpdateBy(SecurityUtils.getUsername());
190   - return toAjax(userService.resetPwd(user));
191   - }
192   -
193   - /**
194   - * 状态修改
195   - */
196   - @PreAuthorize("@ss.hasPermi('system:user:edit')")
197   - @Log(title = "用户管理", businessType = BusinessType.UPDATE)
198   - @PutMapping("/changeStatus")
199   - public AjaxResult changeStatus(@RequestBody SysUser user)
200   - {
201   - userService.checkUserAllowed(user);
202   - user.setUpdateBy(SecurityUtils.getUsername());
203   - return toAjax(userService.updateUserStatus(user));
204   - }
205   -}
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java deleted
1   -package com.ruoyi.system.domain;
2   -
3   -import org.apache.commons.lang3.builder.ToStringBuilder;
4   -import org.apache.commons.lang3.builder.ToStringStyle;
5   -
6   -/**
7   - * 用户和岗位关联 sys_user_post
8   - *
9   - * @author ruoyi
10   - */
11   -public class SysUserPost
12   -{
13   - /** 用户ID */
14   - private Long userId;
15   -
16   - /** 岗位ID */
17   - private Long postId;
18   -
19   -}
sql/ruoyi-vue-pro.sql 0 → 100644
  1 +/*
  2 + Navicat Premium Data Transfer
  3 +
  4 + Source Server : local-mysql001
  5 + Source Server Type : MySQL
  6 + Source Server Version : 50718
  7 + Source Host : localhost:33061
  8 + Source Schema : ruoyi-vue-pro
  9 +
  10 + Target Server Type : MySQL
  11 + Target Server Version : 50718
  12 + File Encoding : 65001
  13 +
  14 + Date: 10/01/2021 00:08:59
  15 +*/
  16 +
  17 +SET NAMES utf8mb4;
  18 +SET FOREIGN_KEY_CHECKS = 0;
  19 +
  20 +-- ----------------------------
  21 +-- Table structure for gen_table
  22 +-- ----------------------------
  23 +DROP TABLE IF EXISTS `gen_table`;
  24 +CREATE TABLE `gen_table` (
  25 + `table_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
  26 + `table_name` varchar(200) DEFAULT '' COMMENT '表名称',
  27 + `table_comment` varchar(500) DEFAULT '' COMMENT '表描述',
  28 + `class_name` varchar(100) DEFAULT '' COMMENT '实体类名称',
  29 + `tpl_category` varchar(200) DEFAULT 'crud' COMMENT '使用的模板(crud单表操作 tree树表操作)',
  30 + `package_name` varchar(100) DEFAULT NULL COMMENT '生成包路径',
  31 + `module_name` varchar(30) DEFAULT NULL COMMENT '生成模块名',
  32 + `business_name` varchar(30) DEFAULT NULL COMMENT '生成业务名',
  33 + `function_name` varchar(50) DEFAULT NULL COMMENT '生成功能名',
  34 + `function_author` varchar(50) DEFAULT NULL COMMENT '生成功能作者',
  35 + `gen_type` char(1) DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)',
  36 + `gen_path` varchar(200) DEFAULT '/' COMMENT '生成路径(不填默认项目路径)',
  37 + `options` varchar(1000) DEFAULT NULL COMMENT '其它生成选项',
  38 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  39 + `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  40 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  41 + `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  42 + `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  43 + PRIMARY KEY (`table_id`)
  44 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='代码生成业务表';
  45 +
  46 +-- ----------------------------
  47 +-- Records of gen_table
  48 +-- ----------------------------
  49 +BEGIN;
  50 +COMMIT;
  51 +
  52 +-- ----------------------------
  53 +-- Table structure for gen_table_column
  54 +-- ----------------------------
  55 +DROP TABLE IF EXISTS `gen_table_column`;
  56 +CREATE TABLE `gen_table_column` (
  57 + `column_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
  58 + `table_id` varchar(64) DEFAULT NULL COMMENT '归属表编号',
  59 + `column_name` varchar(200) DEFAULT NULL COMMENT '列名称',
  60 + `column_comment` varchar(500) DEFAULT NULL COMMENT '列描述',
  61 + `column_type` varchar(100) DEFAULT NULL COMMENT '列类型',
  62 + `java_type` varchar(500) DEFAULT NULL COMMENT 'JAVA类型',
  63 + `java_field` varchar(200) DEFAULT NULL COMMENT 'JAVA字段名',
  64 + `is_pk` char(1) DEFAULT NULL COMMENT '是否主键(1是)',
  65 + `is_increment` char(1) DEFAULT NULL COMMENT '是否自增(1是)',
  66 + `is_required` char(1) DEFAULT NULL COMMENT '是否必填(1是)',
  67 + `is_insert` char(1) DEFAULT NULL COMMENT '是否为插入字段(1是)',
  68 + `is_edit` char(1) DEFAULT NULL COMMENT '是否编辑字段(1是)',
  69 + `is_list` char(1) DEFAULT NULL COMMENT '是否列表字段(1是)',
  70 + `is_query` char(1) DEFAULT NULL COMMENT '是否查询字段(1是)',
  71 + `query_type` varchar(200) DEFAULT 'EQ' COMMENT '查询方式(等于、不等于、大于、小于、范围)',
  72 + `html_type` varchar(200) DEFAULT NULL COMMENT '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',
  73 + `dict_type` varchar(200) DEFAULT '' COMMENT '字典类型',
  74 + `sort` int(11) DEFAULT NULL COMMENT '排序',
  75 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  76 + `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  77 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  78 + `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  79 + PRIMARY KEY (`column_id`)
  80 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='代码生成业务表字段';
  81 +
  82 +-- ----------------------------
  83 +-- Records of gen_table_column
  84 +-- ----------------------------
  85 +BEGIN;
  86 +COMMIT;
  87 +
  88 +-- ----------------------------
  89 +-- Table structure for sys_config
  90 +-- ----------------------------
  91 +DROP TABLE IF EXISTS `sys_config`;
  92 +CREATE TABLE `sys_config` (
  93 + `config_id` int(5) NOT NULL AUTO_INCREMENT COMMENT '参数主键',
  94 + `config_name` varchar(100) DEFAULT '' COMMENT '参数名称',
  95 + `config_key` varchar(100) DEFAULT '' COMMENT '参数键名',
  96 + `config_value` varchar(500) DEFAULT '' COMMENT '参数键值',
  97 + `config_type` char(1) DEFAULT 'N' COMMENT '系统内置(Y是 N否)',
  98 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  99 + `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  100 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  101 + `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  102 + `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  103 + PRIMARY KEY (`config_id`)
  104 +) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COMMENT='参数配置表';
  105 +
  106 +-- ----------------------------
  107 +-- Records of sys_config
  108 +-- ----------------------------
  109 +BEGIN;
  110 +INSERT INTO `sys_config` VALUES (1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', '2021-01-05 17:03:48', '', NULL, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow');
  111 +INSERT INTO `sys_config` VALUES (2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', '2021-01-05 17:03:48', '', NULL, '初始化密码 123456');
  112 +INSERT INTO `sys_config` VALUES (3, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', '2021-01-05 17:03:48', '', NULL, '深色主题theme-dark,浅色主题theme-light');
  113 +COMMIT;
  114 +
  115 +-- ----------------------------
  116 +-- Table structure for sys_dept
  117 +-- ----------------------------
  118 +DROP TABLE IF EXISTS `sys_dept`;
  119 +CREATE TABLE `sys_dept` (
  120 + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '部门id',
  121 + `name` varchar(30) NOT NULL DEFAULT '' COMMENT '部门名称',
  122 + `parent_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '父部门id',
  123 + `ancestors` varchar(50) NOT NULL DEFAULT '' COMMENT '祖级列表',
  124 + `sort` int(4) NOT NULL DEFAULT '0' COMMENT '显示顺序',
  125 + `leader` varchar(20) DEFAULT NULL COMMENT '负责人',
  126 + `phone` varchar(11) DEFAULT NULL COMMENT '联系电话',
  127 + `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  128 + `status` tinyint(4) NOT NULL COMMENT '部门状态(0正常 1停用)',
  129 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  130 + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  131 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  132 + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  133 + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  134 + PRIMARY KEY (`id`) USING BTREE
  135 +) ENGINE=InnoDB AUTO_INCREMENT=200 DEFAULT CHARSET=utf8mb4 COMMENT='部门表';
  136 +
  137 +-- ----------------------------
  138 +-- Records of sys_dept
  139 +-- ----------------------------
  140 +BEGIN;
  141 +INSERT INTO `sys_dept` VALUES (100, '芋道源码', 0, '0', 0, '若依', '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-01-06 19:45:52', b'0');
  142 +INSERT INTO `sys_dept` VALUES (101, '深圳总公司', 100, '0,100', 1, '若依', '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0');
  143 +INSERT INTO `sys_dept` VALUES (102, '长沙分公司', 100, '0,100', 2, '若依', '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0');
  144 +INSERT INTO `sys_dept` VALUES (103, '研发部门', 101, '0,100,101', 1, '若依', '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0');
  145 +INSERT INTO `sys_dept` VALUES (104, '市场部门', 101, '0,100,101', 2, '若依', '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0');
  146 +INSERT INTO `sys_dept` VALUES (105, '测试部门', 101, '0,100,101', 3, '若依', '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0');
  147 +INSERT INTO `sys_dept` VALUES (106, '财务部门', 101, '0,100,101', 4, '若依', '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0');
  148 +INSERT INTO `sys_dept` VALUES (107, '运维部门', 101, '0,100,101', 5, '若依', '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0');
  149 +INSERT INTO `sys_dept` VALUES (108, '市场部门', 102, '0,100,102', 1, '若依', '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0');
  150 +INSERT INTO `sys_dept` VALUES (109, '财务部门', 102, '0,100,102', 2, '若依', '15888888888', 'ry@qq.com', 0, 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0');
  151 +COMMIT;
  152 +
  153 +-- ----------------------------
  154 +-- Table structure for sys_dict_data
  155 +-- ----------------------------
  156 +DROP TABLE IF EXISTS `sys_dict_data`;
  157 +CREATE TABLE `sys_dict_data` (
  158 + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典编码',
  159 + `sort` int(4) NOT NULL DEFAULT '0' COMMENT '字典排序',
  160 + `label` varchar(100) NOT NULL DEFAULT '' COMMENT '字典标签',
  161 + `value` varchar(100) NOT NULL DEFAULT '' COMMENT '字典键值',
  162 + `dict_type` varchar(100) NOT NULL DEFAULT '' COMMENT '字典类型',
  163 + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
  164 + `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  165 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  166 + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  167 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  168 + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  169 + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  170 + PRIMARY KEY (`id`) USING BTREE
  171 +) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COMMENT='字典数据表';
  172 +
  173 +-- ----------------------------
  174 +-- Records of sys_dict_data
  175 +-- ----------------------------
  176 +BEGIN;
  177 +INSERT INTO `sys_dict_data` VALUES (1, 1, '男', '1', 'sys_user_sex', 0, '性别男', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 05:48:53', b'0');
  178 +INSERT INTO `sys_dict_data` VALUES (2, 2, '女', '2', 'sys_user_sex', 0, '性别女', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 05:48:55', b'0');
  179 +INSERT INTO `sys_dict_data` VALUES (8, 1, '正常', '0', 'sys_job_status', 0, '正常状态', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  180 +INSERT INTO `sys_dict_data` VALUES (9, 2, '暂停', '1', 'sys_job_status', 0, '停用状态', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  181 +INSERT INTO `sys_dict_data` VALUES (10, 1, '默认', 'DEFAULT', 'sys_job_group', 0, '默认分组', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  182 +INSERT INTO `sys_dict_data` VALUES (11, 2, '系统', 'SYSTEM', 'sys_job_group', 0, '系统分组', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  183 +INSERT INTO `sys_dict_data` VALUES (12, 1, '是', 'Y', 'sys_yes_no', 0, '系统默认是', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  184 +INSERT INTO `sys_dict_data` VALUES (13, 2, '否', 'N', 'sys_yes_no', 0, '系统默认否', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  185 +INSERT INTO `sys_dict_data` VALUES (14, 1, '通知', '1', 'sys_notice_type', 0, '通知', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  186 +INSERT INTO `sys_dict_data` VALUES (15, 2, '公告', '2', 'sys_notice_type', 0, '公告', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  187 +INSERT INTO `sys_dict_data` VALUES (16, 1, '正常', '0', 'sys_notice_status', 0, '正常状态', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  188 +INSERT INTO `sys_dict_data` VALUES (17, 2, '关闭', '1', 'sys_notice_status', 0, '关闭状态', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  189 +INSERT INTO `sys_dict_data` VALUES (18, 1, '新增', '1', 'sys_oper_type', 0, '新增操作', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  190 +INSERT INTO `sys_dict_data` VALUES (19, 2, '修改', '2', 'sys_oper_type', 0, '修改操作', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  191 +INSERT INTO `sys_dict_data` VALUES (20, 3, '删除', '3', 'sys_oper_type', 0, '删除操作', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  192 +INSERT INTO `sys_dict_data` VALUES (21, 4, '授权', '4', 'sys_oper_type', 0, '授权操作', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  193 +INSERT INTO `sys_dict_data` VALUES (22, 5, '导出', '5', 'sys_oper_type', 0, '导出操作', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  194 +INSERT INTO `sys_dict_data` VALUES (23, 6, '导入', '6', 'sys_oper_type', 0, '导入操作', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  195 +INSERT INTO `sys_dict_data` VALUES (24, 7, '强退', '7', 'sys_oper_type', 0, '强退操作', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  196 +INSERT INTO `sys_dict_data` VALUES (25, 8, '生成代码', '8', 'sys_oper_type', 0, '生成操作', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  197 +INSERT INTO `sys_dict_data` VALUES (26, 9, '清空数据', '9', 'sys_oper_type', 0, '清空操作', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 00:02:28', b'0');
  198 +INSERT INTO `sys_dict_data` VALUES (27, 1, '开启', '0', 'sys_common_status', 0, '开启状态', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 02:57:12', b'0');
  199 +INSERT INTO `sys_dict_data` VALUES (28, 2, '关闭', '1', 'sys_common_status', 0, '关闭状态', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 05:48:32', b'0');
  200 +INSERT INTO `sys_dict_data` VALUES (29, 1, '目录', '1', 'sys_menu_type', 0, '目录', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 13:33:30', b'0');
  201 +INSERT INTO `sys_dict_data` VALUES (30, 2, '菜单', '2', 'sys_menu_type', 0, '菜单', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 13:33:35', b'0');
  202 +INSERT INTO `sys_dict_data` VALUES (31, 3, '按钮', '3', 'sys_menu_type', 0, '按钮', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 13:33:38', b'0');
  203 +INSERT INTO `sys_dict_data` VALUES (32, 1, '内置', '1', 'sys_role_type', 0, '内置角色', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 13:34:22', b'0');
  204 +INSERT INTO `sys_dict_data` VALUES (33, 2, '自定义', '2', 'sys_role_type', 0, '自定义角色', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 13:34:26', b'0');
  205 +INSERT INTO `sys_dict_data` VALUES (34, 1, '全部数据权限', '1', 'sys_data_scope', 0, '全部数据权限', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 19:38:02', b'0');
  206 +INSERT INTO `sys_dict_data` VALUES (35, 2, '指定部门数据权限', '2', 'sys_data_scope', 0, '指定部门数据权限', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 19:38:20', b'0');
  207 +INSERT INTO `sys_dict_data` VALUES (36, 3, '本部门数据权限', '3', 'sys_data_scope', 0, '本部门数据权限', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 19:38:29', b'0');
  208 +INSERT INTO `sys_dict_data` VALUES (37, 4, '本部门及以下数据权限', '4', 'sys_data_scope', 0, '本部门及以下数据权限', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 19:38:32', b'0');
  209 +INSERT INTO `sys_dict_data` VALUES (38, 5, '仅本人数据权限', '5', 'sys_data_scope', 0, '仅本人数据权限', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 19:38:38', b'0');
  210 +COMMIT;
  211 +
  212 +-- ----------------------------
  213 +-- Table structure for sys_dict_type
  214 +-- ----------------------------
  215 +DROP TABLE IF EXISTS `sys_dict_type`;
  216 +CREATE TABLE `sys_dict_type` (
  217 + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典主键',
  218 + `name` varchar(100) DEFAULT '' COMMENT '字典名称',
  219 + `dict_type` varchar(100) NOT NULL DEFAULT '' COMMENT '字典类型',
  220 + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
  221 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  222 + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  223 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  224 + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  225 + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除',
  226 + PRIMARY KEY (`id`) USING BTREE,
  227 + UNIQUE KEY `dict_type` (`dict_type`)
  228 +) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COMMENT='字典类型表';
  229 +
  230 +-- ----------------------------
  231 +-- Records of sys_dict_type
  232 +-- ----------------------------
  233 +BEGIN;
  234 +INSERT INTO `sys_dict_type` VALUES (1, '用户性别', 'sys_user_sex', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0');
  235 +INSERT INTO `sys_dict_type` VALUES (2, '菜单状态', 'sys_show_hide', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0');
  236 +INSERT INTO `sys_dict_type` VALUES (3, '系统开关', 'sys_normal_disable', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0');
  237 +INSERT INTO `sys_dict_type` VALUES (4, '任务状态', 'sys_job_status', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0');
  238 +INSERT INTO `sys_dict_type` VALUES (5, '任务分组', 'sys_job_group', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0');
  239 +INSERT INTO `sys_dict_type` VALUES (6, '系统是否', 'sys_yes_no', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0');
  240 +INSERT INTO `sys_dict_type` VALUES (7, '通知类型', 'sys_notice_type', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0');
  241 +INSERT INTO `sys_dict_type` VALUES (8, '通知状态', 'sys_notice_status', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0');
  242 +INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0');
  243 +INSERT INTO `sys_dict_type` VALUES (10, '系统状态', 'sys_common_status', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 17:03:48', b'0');
  244 +COMMIT;
  245 +
  246 +-- ----------------------------
  247 +-- Table structure for sys_job
  248 +-- ----------------------------
  249 +DROP TABLE IF EXISTS `sys_job`;
  250 +CREATE TABLE `sys_job` (
  251 + `job_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
  252 + `job_name` varchar(64) NOT NULL DEFAULT '' COMMENT '任务名称',
  253 + `job_group` varchar(64) NOT NULL DEFAULT 'DEFAULT' COMMENT '任务组名',
  254 + `invoke_target` varchar(500) NOT NULL COMMENT '调用目标字符串',
  255 + `cron_expression` varchar(255) DEFAULT '' COMMENT 'cron执行表达式',
  256 + `misfire_policy` varchar(20) DEFAULT '3' COMMENT '计划执行错误策略(1立即执行 2执行一次 3放弃执行)',
  257 + `concurrent` char(1) DEFAULT '1' COMMENT '是否并发执行(0允许 1禁止)',
  258 + `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1暂停)',
  259 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  260 + `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  261 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  262 + `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  263 + `remark` varchar(500) DEFAULT '' COMMENT '备注信息',
  264 + PRIMARY KEY (`job_id`,`job_name`,`job_group`)
  265 +) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COMMENT='定时任务调度表';
  266 +
  267 +-- ----------------------------
  268 +-- Records of sys_job
  269 +-- ----------------------------
  270 +BEGIN;
  271 +INSERT INTO `sys_job` VALUES (1, '系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams', '0/10 * * * * ?', '3', '1', '1', 'admin', '2021-01-05 17:03:48', '', NULL, '');
  272 +INSERT INTO `sys_job` VALUES (2, '系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(\'ry\')', '0/15 * * * * ?', '3', '1', '1', 'admin', '2021-01-05 17:03:48', '', NULL, '');
  273 +INSERT INTO `sys_job` VALUES (3, '系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)', '0/20 * * * * ?', '3', '1', '1', 'admin', '2021-01-05 17:03:48', '', NULL, '');
  274 +COMMIT;
  275 +
  276 +-- ----------------------------
  277 +-- Table structure for sys_job_log
  278 +-- ----------------------------
  279 +DROP TABLE IF EXISTS `sys_job_log`;
  280 +CREATE TABLE `sys_job_log` (
  281 + `job_log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志ID',
  282 + `job_name` varchar(64) NOT NULL COMMENT '任务名称',
  283 + `job_group` varchar(64) NOT NULL COMMENT '任务组名',
  284 + `invoke_target` varchar(500) NOT NULL COMMENT '调用目标字符串',
  285 + `job_message` varchar(500) DEFAULT NULL COMMENT '日志信息',
  286 + `status` char(1) DEFAULT '0' COMMENT '执行状态(0正常 1失败)',
  287 + `exception_info` varchar(2000) DEFAULT '' COMMENT '异常信息',
  288 + `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  289 + PRIMARY KEY (`job_log_id`)
  290 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定时任务调度日志表';
  291 +
  292 +-- ----------------------------
  293 +-- Records of sys_job_log
  294 +-- ----------------------------
  295 +BEGIN;
  296 +COMMIT;
  297 +
  298 +-- ----------------------------
  299 +-- Table structure for sys_logininfor
  300 +-- ----------------------------
  301 +DROP TABLE IF EXISTS `sys_logininfor`;
  302 +CREATE TABLE `sys_logininfor` (
  303 + `info_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '访问ID',
  304 + `user_name` varchar(50) DEFAULT '' COMMENT '用户账号',
  305 + `ipaddr` varchar(50) DEFAULT '' COMMENT '登录IP地址',
  306 + `login_location` varchar(255) DEFAULT '' COMMENT '登录地点',
  307 + `browser` varchar(50) DEFAULT '' COMMENT '浏览器类型',
  308 + `os` varchar(50) DEFAULT '' COMMENT '操作系统',
  309 + `status` char(1) DEFAULT '0' COMMENT '登录状态(0成功 1失败)',
  310 + `msg` varchar(255) DEFAULT '' COMMENT '提示消息',
  311 + `login_time` datetime DEFAULT NULL COMMENT '访问时间',
  312 + PRIMARY KEY (`info_id`)
  313 +) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COMMENT='系统访问记录';
  314 +
  315 +-- ----------------------------
  316 +-- Records of sys_logininfor
  317 +-- ----------------------------
  318 +BEGIN;
  319 +COMMIT;
  320 +
  321 +-- ----------------------------
  322 +-- Table structure for sys_menu
  323 +-- ----------------------------
  324 +DROP TABLE IF EXISTS `sys_menu`;
  325 +CREATE TABLE `sys_menu` (
  326 + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
  327 + `name` varchar(50) NOT NULL COMMENT '菜单名称',
  328 + `permission` varchar(100) NOT NULL DEFAULT '' COMMENT '权限标识',
  329 + `menu_type` tinyint(4) NOT NULL COMMENT '菜单类型(M目录 C菜单 F按钮)',
  330 + `sort` int(11) NOT NULL DEFAULT '0' COMMENT '显示顺序',
  331 + `parent_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '父菜单ID',
  332 + `path` varchar(200) DEFAULT '' COMMENT '路由地址',
  333 + `icon` varchar(100) DEFAULT '#' COMMENT '菜单图标',
  334 + `component` varchar(255) DEFAULT NULL COMMENT '组件路径',
  335 + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '菜单状态(0正常 1停用)',
  336 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  337 + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  338 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  339 + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  340 + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  341 + PRIMARY KEY (`id`) USING BTREE
  342 +) ENGINE=InnoDB AUTO_INCREMENT=1065 DEFAULT CHARSET=utf8mb4 COMMENT='菜单权限表';
  343 +
  344 +-- ----------------------------
  345 +-- Records of sys_menu
  346 +-- ----------------------------
  347 +BEGIN;
  348 +INSERT INTO `sys_menu` VALUES (1, '系统管理', '', 1, 1, 0, '/system', 'system', NULL, 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:34:28', b'0');
  349 +INSERT INTO `sys_menu` VALUES (2, '系统监控', '', 1, 2, 0, '/monitor', 'monitor', NULL, 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:34:28', b'0');
  350 +INSERT INTO `sys_menu` VALUES (3, '系统工具', '', 1, 3, 0, '/tool', 'tool', NULL, 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:34:28', b'0');
  351 +INSERT INTO `sys_menu` VALUES (4, '若依官网', '', 1, 4, 0, 'http://ruoyi.vip', 'guide', NULL, 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:34:28', b'0');
  352 +INSERT INTO `sys_menu` VALUES (100, '用户管理', 'system:user:list', 2, 1, 1, 'user', 'user', 'system/user/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  353 +INSERT INTO `sys_menu` VALUES (101, '角色管理', 'system:role:list', 2, 2, 1, 'role', 'peoples', 'system/role/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  354 +INSERT INTO `sys_menu` VALUES (102, '菜单管理', 'system:menu:list', 2, 3, 1, 'menu', 'tree-table', 'system/menu/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  355 +INSERT INTO `sys_menu` VALUES (103, '部门管理', 'system:dept:list', 2, 4, 1, 'dept', 'tree', 'system/dept/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  356 +INSERT INTO `sys_menu` VALUES (104, '岗位管理', 'system:post:list', 2, 5, 1, 'post', 'post', 'system/post/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  357 +INSERT INTO `sys_menu` VALUES (105, '字典管理', 'system:dict:list', 2, 6, 1, 'dict', 'dict', 'system/dict/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  358 +INSERT INTO `sys_menu` VALUES (106, '参数设置', 'system:config:list', 2, 7, 1, 'config', 'edit', 'system/config/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  359 +INSERT INTO `sys_menu` VALUES (107, '通知公告', 'system:notice:list', 2, 8, 1, 'notice', 'message', 'system/notice/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  360 +INSERT INTO `sys_menu` VALUES (108, '日志管理', '', 1, 9, 1, 'log', 'log', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:34:28', b'0');
  361 +INSERT INTO `sys_menu` VALUES (109, '在线用户', 'monitor:online:list', 2, 1, 2, 'online', 'online', 'monitor/online/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  362 +INSERT INTO `sys_menu` VALUES (110, '定时任务', 'monitor:job:list', 2, 2, 2, 'job', 'job', 'monitor/job/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  363 +INSERT INTO `sys_menu` VALUES (111, '数据监控', 'monitor:druid:list', 2, 3, 2, 'druid', 'druid', 'monitor/druid/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  364 +INSERT INTO `sys_menu` VALUES (112, '服务监控', 'monitor:server:list', 2, 4, 2, 'server', 'server', 'monitor/server/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  365 +INSERT INTO `sys_menu` VALUES (113, '缓存监控', 'monitor:cache:list', 2, 5, 2, 'cache', 'redis', 'monitor/cache/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  366 +INSERT INTO `sys_menu` VALUES (114, '表单构建', 'tool:build:list', 2, 1, 3, 'build', 'build', 'tool/build/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  367 +INSERT INTO `sys_menu` VALUES (115, '代码生成', 'tool:gen:list', 2, 2, 3, 'gen', 'code', 'tool/gen/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  368 +INSERT INTO `sys_menu` VALUES (116, '系统接口', 'tool:swagger:list', 2, 3, 3, 'swagger', 'swagger', 'tool/swagger/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  369 +INSERT INTO `sys_menu` VALUES (500, '操作日志', 'monitor:operlog:list', 2, 1, 108, 'operlog', 'form', 'monitor/operlog/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  370 +INSERT INTO `sys_menu` VALUES (501, '登录日志', 'monitor:logininfor:list', 2, 2, 108, 'logininfor', 'logininfor', 'monitor/logininfor/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:45', b'0');
  371 +INSERT INTO `sys_menu` VALUES (1001, '用户查询', 'system:user:query', 3, 1, 100, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  372 +INSERT INTO `sys_menu` VALUES (1002, '用户新增', 'system:user:add', 3, 2, 100, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  373 +INSERT INTO `sys_menu` VALUES (1003, '用户修改', 'system:user:edit', 3, 3, 100, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  374 +INSERT INTO `sys_menu` VALUES (1004, '用户删除', 'system:user:remove', 3, 4, 100, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  375 +INSERT INTO `sys_menu` VALUES (1005, '用户导出', 'system:user:export', 3, 5, 100, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  376 +INSERT INTO `sys_menu` VALUES (1006, '用户导入', 'system:user:import', 3, 6, 100, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  377 +INSERT INTO `sys_menu` VALUES (1007, '重置密码', 'system:user:resetPwd', 3, 7, 100, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  378 +INSERT INTO `sys_menu` VALUES (1008, '角色查询', 'system:role:query', 3, 1, 101, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  379 +INSERT INTO `sys_menu` VALUES (1009, '角色新增', 'system:role:add', 3, 2, 101, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  380 +INSERT INTO `sys_menu` VALUES (1010, '角色修改', 'system:role:edit', 3, 3, 101, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  381 +INSERT INTO `sys_menu` VALUES (1011, '角色删除', 'system:role:remove', 3, 4, 101, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  382 +INSERT INTO `sys_menu` VALUES (1012, '角色导出', 'system:role:export', 3, 5, 101, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  383 +INSERT INTO `sys_menu` VALUES (1013, '菜单查询', 'system:menu:query', 3, 1, 102, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  384 +INSERT INTO `sys_menu` VALUES (1014, '菜单新增', 'system:menu:add', 3, 2, 102, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  385 +INSERT INTO `sys_menu` VALUES (1015, '菜单修改', 'system:menu:edit', 3, 3, 102, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  386 +INSERT INTO `sys_menu` VALUES (1016, '菜单删除', 'system:menu:remove', 3, 4, 102, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  387 +INSERT INTO `sys_menu` VALUES (1017, '部门查询', 'system:dept:query', 3, 1, 103, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  388 +INSERT INTO `sys_menu` VALUES (1018, '部门新增', 'system:dept:add', 3, 2, 103, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  389 +INSERT INTO `sys_menu` VALUES (1019, '部门修改', 'system:dept:edit', 3, 3, 103, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  390 +INSERT INTO `sys_menu` VALUES (1020, '部门删除', 'system:dept:remove', 3, 4, 103, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  391 +INSERT INTO `sys_menu` VALUES (1021, '岗位查询', 'system:post:query', 3, 1, 104, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  392 +INSERT INTO `sys_menu` VALUES (1022, '岗位新增', 'system:post:add', 3, 2, 104, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  393 +INSERT INTO `sys_menu` VALUES (1023, '岗位修改', 'system:post:edit', 3, 3, 104, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  394 +INSERT INTO `sys_menu` VALUES (1024, '岗位删除', 'system:post:remove', 3, 4, 104, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  395 +INSERT INTO `sys_menu` VALUES (1025, '岗位导出', 'system:post:export', 3, 5, 104, '', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  396 +INSERT INTO `sys_menu` VALUES (1026, '字典查询', 'system:dict:query', 3, 1, 105, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  397 +INSERT INTO `sys_menu` VALUES (1027, '字典新增', 'system:dict:add', 3, 2, 105, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  398 +INSERT INTO `sys_menu` VALUES (1028, '字典修改', 'system:dict:edit', 3, 3, 105, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  399 +INSERT INTO `sys_menu` VALUES (1029, '字典删除', 'system:dict:remove', 3, 4, 105, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  400 +INSERT INTO `sys_menu` VALUES (1030, '字典导出', 'system:dict:export', 3, 5, 105, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  401 +INSERT INTO `sys_menu` VALUES (1031, '参数查询', 'system:config:query', 3, 1, 106, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  402 +INSERT INTO `sys_menu` VALUES (1032, '参数新增', 'system:config:add', 3, 2, 106, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  403 +INSERT INTO `sys_menu` VALUES (1033, '参数修改', 'system:config:edit', 3, 3, 106, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  404 +INSERT INTO `sys_menu` VALUES (1034, '参数删除', 'system:config:remove', 3, 4, 106, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  405 +INSERT INTO `sys_menu` VALUES (1035, '参数导出', 'system:config:export', 3, 5, 106, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  406 +INSERT INTO `sys_menu` VALUES (1036, '公告查询', 'system:notice:query', 3, 1, 107, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  407 +INSERT INTO `sys_menu` VALUES (1037, '公告新增', 'system:notice:add', 3, 2, 107, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  408 +INSERT INTO `sys_menu` VALUES (1038, '公告修改', 'system:notice:edit', 3, 3, 107, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  409 +INSERT INTO `sys_menu` VALUES (1039, '公告删除', 'system:notice:remove', 3, 4, 107, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  410 +INSERT INTO `sys_menu` VALUES (1040, '操作查询', 'monitor:operlog:query', 3, 1, 500, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  411 +INSERT INTO `sys_menu` VALUES (1041, '操作删除', 'monitor:operlog:remove', 3, 2, 500, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  412 +INSERT INTO `sys_menu` VALUES (1042, '日志导出', 'monitor:operlog:export', 3, 4, 500, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  413 +INSERT INTO `sys_menu` VALUES (1043, '登录查询', 'monitor:logininfor:query', 3, 1, 501, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  414 +INSERT INTO `sys_menu` VALUES (1044, '登录删除', 'monitor:logininfor:remove', 3, 2, 501, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  415 +INSERT INTO `sys_menu` VALUES (1045, '日志导出', 'monitor:logininfor:export', 3, 3, 501, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  416 +INSERT INTO `sys_menu` VALUES (1046, '在线查询', 'monitor:online:query', 3, 1, 109, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  417 +INSERT INTO `sys_menu` VALUES (1047, '批量强退', 'monitor:online:batchLogout', 3, 2, 109, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  418 +INSERT INTO `sys_menu` VALUES (1048, '单条强退', 'monitor:online:forceLogout', 3, 3, 109, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  419 +INSERT INTO `sys_menu` VALUES (1049, '任务查询', 'monitor:job:query', 3, 1, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  420 +INSERT INTO `sys_menu` VALUES (1050, '任务新增', 'monitor:job:add', 3, 2, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  421 +INSERT INTO `sys_menu` VALUES (1051, '任务修改', 'monitor:job:edit', 3, 3, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  422 +INSERT INTO `sys_menu` VALUES (1052, '任务删除', 'monitor:job:remove', 3, 4, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  423 +INSERT INTO `sys_menu` VALUES (1053, '状态修改', 'monitor:job:changeStatus', 3, 5, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  424 +INSERT INTO `sys_menu` VALUES (1054, '任务导出', 'monitor:job:export', 3, 7, 110, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  425 +INSERT INTO `sys_menu` VALUES (1055, '生成查询', 'tool:gen:query', 3, 1, 115, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  426 +INSERT INTO `sys_menu` VALUES (1056, '生成修改', 'tool:gen:edit', 3, 2, 115, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  427 +INSERT INTO `sys_menu` VALUES (1057, '生成删除', 'tool:gen:remove', 3, 3, 115, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  428 +INSERT INTO `sys_menu` VALUES (1058, '导入代码', 'tool:gen:import', 3, 2, 115, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  429 +INSERT INTO `sys_menu` VALUES (1059, '预览代码', 'tool:gen:preview', 3, 4, 115, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  430 +INSERT INTO `sys_menu` VALUES (1060, '生成代码', 'tool:gen:code', 3, 5, 115, '#', '#', '', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-05 22:36:55', b'0');
  431 +INSERT INTO `sys_menu` VALUES (1063, '设置角色菜单权限', 'system:permission:assign-role-menu', 3, 6, 101, '', '', '', 0, '', '2021-01-06 17:53:44', '', '2021-01-06 17:55:23', b'0');
  432 +INSERT INTO `sys_menu` VALUES (1064, '设置角色数据权限', 'system:permission:assign-role-data-scope', 3, 7, 101, '', '', '', 0, '', '2021-01-06 17:56:31', '', '2021-01-06 17:56:31', b'0');
  433 +COMMIT;
  434 +
  435 +-- ----------------------------
  436 +-- Table structure for sys_notice
  437 +-- ----------------------------
  438 +DROP TABLE IF EXISTS `sys_notice`;
  439 +CREATE TABLE `sys_notice` (
  440 + `notice_id` int(4) NOT NULL AUTO_INCREMENT COMMENT '公告ID',
  441 + `notice_title` varchar(50) NOT NULL COMMENT '公告标题',
  442 + `notice_type` char(1) NOT NULL COMMENT '公告类型(1通知 2公告)',
  443 + `notice_content` longblob COMMENT '公告内容',
  444 + `status` char(1) DEFAULT '0' COMMENT '公告状态(0正常 1关闭)',
  445 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  446 + `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  447 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  448 + `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  449 + `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  450 + PRIMARY KEY (`notice_id`)
  451 +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COMMENT='通知公告表';
  452 +
  453 +-- ----------------------------
  454 +-- Records of sys_notice
  455 +-- ----------------------------
  456 +BEGIN;
  457 +INSERT INTO `sys_notice` VALUES (1, '温馨提醒:2018-07-01 若依新版本发布啦', '2', 0xE696B0E78988E69CACE58685E5AEB9, '0', 'admin', '2021-01-05 17:03:48', '', NULL, '管理员');
  458 +INSERT INTO `sys_notice` VALUES (2, '维护通知:2018-07-01 若依系统凌晨维护', '1', 0xE7BBB4E68AA4E58685E5AEB9, '0', 'admin', '2021-01-05 17:03:48', '', NULL, '管理员');
  459 +COMMIT;
  460 +
  461 +-- ----------------------------
  462 +-- Table structure for sys_oper_log
  463 +-- ----------------------------
  464 +DROP TABLE IF EXISTS `sys_oper_log`;
  465 +CREATE TABLE `sys_oper_log` (
  466 + `oper_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志主键',
  467 + `title` varchar(50) DEFAULT '' COMMENT '模块标题',
  468 + `business_type` int(2) DEFAULT '0' COMMENT '业务类型(0其它 1新增 2修改 3删除)',
  469 + `method` varchar(100) DEFAULT '' COMMENT '方法名称',
  470 + `request_method` varchar(10) DEFAULT '' COMMENT '请求方式',
  471 + `operator_type` int(1) DEFAULT '0' COMMENT '操作类别(0其它 1后台用户 2手机端用户)',
  472 + `oper_name` varchar(50) DEFAULT '' COMMENT '操作人员',
  473 + `dept_name` varchar(50) DEFAULT '' COMMENT '部门名称',
  474 + `oper_url` varchar(255) DEFAULT '' COMMENT '请求URL',
  475 + `oper_ip` varchar(50) DEFAULT '' COMMENT '主机地址',
  476 + `oper_location` varchar(255) DEFAULT '' COMMENT '操作地点',
  477 + `oper_param` varchar(2000) DEFAULT '' COMMENT '请求参数',
  478 + `json_result` varchar(2000) DEFAULT '' COMMENT '返回参数',
  479 + `status` int(1) DEFAULT '0' COMMENT '操作状态(0正常 1异常)',
  480 + `error_msg` varchar(2000) DEFAULT '' COMMENT '错误消息',
  481 + `oper_time` datetime DEFAULT NULL COMMENT '操作时间',
  482 + PRIMARY KEY (`oper_id`)
  483 +) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COMMENT='操作日志记录';
  484 +
  485 +-- ----------------------------
  486 +-- Records of sys_oper_log
  487 +-- ----------------------------
  488 +BEGIN;
  489 +COMMIT;
  490 +
  491 +-- ----------------------------
  492 +-- Table structure for sys_post
  493 +-- ----------------------------
  494 +DROP TABLE IF EXISTS `sys_post`;
  495 +CREATE TABLE `sys_post` (
  496 + `post_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '岗位ID',
  497 + `post_code` varchar(64) NOT NULL COMMENT '岗位编码',
  498 + `post_name` varchar(50) NOT NULL COMMENT '岗位名称',
  499 + `post_sort` int(4) NOT NULL COMMENT '显示顺序',
  500 + `status` char(1) NOT NULL COMMENT '状态(0正常 1停用)',
  501 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  502 + `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  503 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  504 + `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  505 + `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  506 + PRIMARY KEY (`post_id`)
  507 +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='岗位信息表';
  508 +
  509 +-- ----------------------------
  510 +-- Records of sys_post
  511 +-- ----------------------------
  512 +BEGIN;
  513 +INSERT INTO `sys_post` VALUES (1, 'ceo', '董事长', 1, '0', 'admin', '2021-01-05 17:03:48', '', NULL, '');
  514 +INSERT INTO `sys_post` VALUES (2, 'se', '项目经理', 2, '0', 'admin', '2021-01-05 17:03:48', '', NULL, '');
  515 +INSERT INTO `sys_post` VALUES (3, 'hr', '人力资源', 3, '0', 'admin', '2021-01-05 17:03:48', '', NULL, '');
  516 +INSERT INTO `sys_post` VALUES (4, 'user', '普通员工', 4, '0', 'admin', '2021-01-05 17:03:48', '', NULL, '');
  517 +COMMIT;
  518 +
  519 +-- ----------------------------
  520 +-- Table structure for sys_role
  521 +-- ----------------------------
  522 +DROP TABLE IF EXISTS `sys_role`;
  523 +CREATE TABLE `sys_role` (
  524 + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
  525 + `name` varchar(30) NOT NULL COMMENT '角色名称',
  526 + `code` varchar(100) NOT NULL COMMENT '角色权限字符串',
  527 + `sort` int(4) NOT NULL COMMENT '显示顺序',
  528 + `data_scope` tinyint(4) NOT NULL DEFAULT '1' COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)',
  529 + `data_scope_dept_ids` varchar(500) NOT NULL DEFAULT '' COMMENT '数据范围(指定部门数组)',
  530 + `status` tinyint(4) NOT NULL COMMENT '角色状态(0正常 1停用)',
  531 + `type` tinyint(4) NOT NULL COMMENT '角色类型',
  532 + `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  533 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  534 + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  535 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  536 + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  537 + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  538 + PRIMARY KEY (`id`) USING BTREE
  539 +) ENGINE=InnoDB AUTO_INCREMENT=102 DEFAULT CHARSET=utf8mb4 COMMENT='角色信息表';
  540 +
  541 +-- ----------------------------
  542 +-- Records of sys_role
  543 +-- ----------------------------
  544 +BEGIN;
  545 +INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', 1, 1, '', 0, 1, '超级管理员', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 12:40:20', b'0');
  546 +INSERT INTO `sys_role` VALUES (2, '普通角色', 'common', 2, 2, '', 0, 1, '普通角色', 'admin', '2021-01-05 17:03:48', '', '2021-01-06 11:46:58', b'0');
  547 +INSERT INTO `sys_role` VALUES (101, '测试账号', 'test', 0, 2, '[103]', 0, 2, '132', '', '2021-01-06 13:49:35', '', '2021-01-06 20:36:02', b'0');
  548 +COMMIT;
  549 +
  550 +-- ----------------------------
  551 +-- Table structure for sys_role_menu
  552 +-- ----------------------------
  553 +DROP TABLE IF EXISTS `sys_role_menu`;
  554 +CREATE TABLE `sys_role_menu` (
  555 + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号',
  556 + `role_id` bigint(20) NOT NULL COMMENT '角色ID',
  557 + `menu_id` bigint(20) NOT NULL COMMENT '菜单ID',
  558 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  559 + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  560 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  561 + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  562 + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  563 + PRIMARY KEY (`id`) USING BTREE
  564 +) ENGINE=InnoDB AUTO_INCREMENT=169 DEFAULT CHARSET=utf8mb4 COMMENT='角色和菜单关联表';
  565 +
  566 +-- ----------------------------
  567 +-- Records of sys_role_menu
  568 +-- ----------------------------
  569 +BEGIN;
  570 +INSERT INTO `sys_role_menu` VALUES (1, 2, 1, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  571 +INSERT INTO `sys_role_menu` VALUES (2, 2, 2, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  572 +INSERT INTO `sys_role_menu` VALUES (3, 2, 3, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  573 +INSERT INTO `sys_role_menu` VALUES (4, 2, 4, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  574 +INSERT INTO `sys_role_menu` VALUES (5, 2, 100, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  575 +INSERT INTO `sys_role_menu` VALUES (6, 2, 101, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  576 +INSERT INTO `sys_role_menu` VALUES (7, 2, 102, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  577 +INSERT INTO `sys_role_menu` VALUES (8, 2, 103, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  578 +INSERT INTO `sys_role_menu` VALUES (9, 2, 104, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  579 +INSERT INTO `sys_role_menu` VALUES (10, 2, 105, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  580 +INSERT INTO `sys_role_menu` VALUES (11, 2, 106, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  581 +INSERT INTO `sys_role_menu` VALUES (12, 2, 107, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  582 +INSERT INTO `sys_role_menu` VALUES (13, 2, 108, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  583 +INSERT INTO `sys_role_menu` VALUES (14, 2, 109, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  584 +INSERT INTO `sys_role_menu` VALUES (15, 2, 110, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  585 +INSERT INTO `sys_role_menu` VALUES (16, 2, 111, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  586 +INSERT INTO `sys_role_menu` VALUES (17, 2, 112, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  587 +INSERT INTO `sys_role_menu` VALUES (18, 2, 113, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  588 +INSERT INTO `sys_role_menu` VALUES (19, 2, 114, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  589 +INSERT INTO `sys_role_menu` VALUES (20, 2, 115, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  590 +INSERT INTO `sys_role_menu` VALUES (21, 2, 116, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  591 +INSERT INTO `sys_role_menu` VALUES (22, 2, 500, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  592 +INSERT INTO `sys_role_menu` VALUES (23, 2, 501, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  593 +INSERT INTO `sys_role_menu` VALUES (24, 2, 1000, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  594 +INSERT INTO `sys_role_menu` VALUES (25, 2, 1001, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  595 +INSERT INTO `sys_role_menu` VALUES (26, 2, 1002, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  596 +INSERT INTO `sys_role_menu` VALUES (27, 2, 1003, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  597 +INSERT INTO `sys_role_menu` VALUES (28, 2, 1004, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  598 +INSERT INTO `sys_role_menu` VALUES (29, 2, 1005, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  599 +INSERT INTO `sys_role_menu` VALUES (30, 2, 1006, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  600 +INSERT INTO `sys_role_menu` VALUES (31, 2, 1007, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  601 +INSERT INTO `sys_role_menu` VALUES (32, 2, 1008, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  602 +INSERT INTO `sys_role_menu` VALUES (33, 2, 1009, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  603 +INSERT INTO `sys_role_menu` VALUES (34, 2, 1010, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  604 +INSERT INTO `sys_role_menu` VALUES (35, 2, 1011, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  605 +INSERT INTO `sys_role_menu` VALUES (36, 2, 1012, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  606 +INSERT INTO `sys_role_menu` VALUES (37, 2, 1013, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  607 +INSERT INTO `sys_role_menu` VALUES (38, 2, 1014, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  608 +INSERT INTO `sys_role_menu` VALUES (39, 2, 1015, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  609 +INSERT INTO `sys_role_menu` VALUES (40, 2, 1016, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  610 +INSERT INTO `sys_role_menu` VALUES (41, 2, 1017, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  611 +INSERT INTO `sys_role_menu` VALUES (42, 2, 1018, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  612 +INSERT INTO `sys_role_menu` VALUES (43, 2, 1019, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  613 +INSERT INTO `sys_role_menu` VALUES (44, 2, 1020, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  614 +INSERT INTO `sys_role_menu` VALUES (45, 2, 1021, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  615 +INSERT INTO `sys_role_menu` VALUES (46, 2, 1022, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  616 +INSERT INTO `sys_role_menu` VALUES (47, 2, 1023, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  617 +INSERT INTO `sys_role_menu` VALUES (48, 2, 1024, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  618 +INSERT INTO `sys_role_menu` VALUES (49, 2, 1025, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  619 +INSERT INTO `sys_role_menu` VALUES (50, 2, 1026, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  620 +INSERT INTO `sys_role_menu` VALUES (51, 2, 1027, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  621 +INSERT INTO `sys_role_menu` VALUES (52, 2, 1028, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  622 +INSERT INTO `sys_role_menu` VALUES (53, 2, 1029, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  623 +INSERT INTO `sys_role_menu` VALUES (54, 2, 1030, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  624 +INSERT INTO `sys_role_menu` VALUES (55, 2, 1031, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  625 +INSERT INTO `sys_role_menu` VALUES (56, 2, 1032, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  626 +INSERT INTO `sys_role_menu` VALUES (57, 2, 1033, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  627 +INSERT INTO `sys_role_menu` VALUES (58, 2, 1034, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  628 +INSERT INTO `sys_role_menu` VALUES (59, 2, 1035, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  629 +INSERT INTO `sys_role_menu` VALUES (60, 2, 1036, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  630 +INSERT INTO `sys_role_menu` VALUES (61, 2, 1037, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  631 +INSERT INTO `sys_role_menu` VALUES (62, 2, 1038, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  632 +INSERT INTO `sys_role_menu` VALUES (63, 2, 1039, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  633 +INSERT INTO `sys_role_menu` VALUES (64, 2, 1040, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  634 +INSERT INTO `sys_role_menu` VALUES (65, 2, 1041, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  635 +INSERT INTO `sys_role_menu` VALUES (66, 2, 1042, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  636 +INSERT INTO `sys_role_menu` VALUES (67, 2, 1043, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  637 +INSERT INTO `sys_role_menu` VALUES (68, 2, 1044, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  638 +INSERT INTO `sys_role_menu` VALUES (69, 2, 1045, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  639 +INSERT INTO `sys_role_menu` VALUES (70, 2, 1046, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  640 +INSERT INTO `sys_role_menu` VALUES (71, 2, 1047, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  641 +INSERT INTO `sys_role_menu` VALUES (72, 2, 1048, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  642 +INSERT INTO `sys_role_menu` VALUES (73, 2, 1049, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  643 +INSERT INTO `sys_role_menu` VALUES (74, 2, 1050, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  644 +INSERT INTO `sys_role_menu` VALUES (75, 2, 1051, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  645 +INSERT INTO `sys_role_menu` VALUES (76, 2, 1052, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  646 +INSERT INTO `sys_role_menu` VALUES (77, 2, 1053, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  647 +INSERT INTO `sys_role_menu` VALUES (78, 2, 1054, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  648 +INSERT INTO `sys_role_menu` VALUES (79, 2, 1055, '', '2021-01-06 17:28:04', '', '2021-01-06 17:48:51', b'1');
  649 +INSERT INTO `sys_role_menu` VALUES (80, 2, 1056, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  650 +INSERT INTO `sys_role_menu` VALUES (81, 2, 1057, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  651 +INSERT INTO `sys_role_menu` VALUES (82, 2, 1058, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  652 +INSERT INTO `sys_role_menu` VALUES (83, 2, 1059, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  653 +INSERT INTO `sys_role_menu` VALUES (84, 2, 1060, '', '2021-01-06 17:28:04', '', '2021-01-06 17:28:04', b'0');
  654 +INSERT INTO `sys_role_menu` VALUES (85, 101, 114, '', '2021-01-06 17:30:23', '', '2021-01-06 18:00:16', b'1');
  655 +INSERT INTO `sys_role_menu` VALUES (88, 101, 3, '', '2021-01-06 17:44:56', '', '2021-01-06 17:47:52', b'1');
  656 +INSERT INTO `sys_role_menu` VALUES (89, 101, 1056, '', '2021-01-06 17:47:52', '', '2021-01-06 17:47:59', b'1');
  657 +INSERT INTO `sys_role_menu` VALUES (90, 101, 1057, '', '2021-01-06 17:47:52', '', '2021-01-06 17:47:59', b'1');
  658 +INSERT INTO `sys_role_menu` VALUES (91, 101, 1058, '', '2021-01-06 17:47:52', '', '2021-01-06 17:47:59', b'1');
  659 +INSERT INTO `sys_role_menu` VALUES (92, 101, 1059, '', '2021-01-06 17:47:52', '', '2021-01-06 17:47:59', b'1');
  660 +INSERT INTO `sys_role_menu` VALUES (93, 101, 1060, '', '2021-01-06 17:47:52', '', '2021-01-06 17:47:59', b'1');
  661 +INSERT INTO `sys_role_menu` VALUES (94, 101, 116, '', '2021-01-06 17:47:52', '', '2021-01-06 17:49:37', b'1');
  662 +INSERT INTO `sys_role_menu` VALUES (95, 101, 1055, '', '2021-01-06 17:47:52', '', '2021-01-06 17:47:59', b'1');
  663 +INSERT INTO `sys_role_menu` VALUES (96, 101, 1055, '', '2021-01-06 17:48:04', '', '2021-01-06 17:49:37', b'1');
  664 +INSERT INTO `sys_role_menu` VALUES (97, 101, 1056, '', '2021-01-06 17:48:13', '', '2021-01-06 17:49:37', b'1');
  665 +INSERT INTO `sys_role_menu` VALUES (98, 101, 1057, '', '2021-01-06 17:48:13', '', '2021-01-06 17:49:37', b'1');
  666 +INSERT INTO `sys_role_menu` VALUES (99, 101, 1058, '', '2021-01-06 17:48:13', '', '2021-01-06 17:49:37', b'1');
  667 +INSERT INTO `sys_role_menu` VALUES (100, 101, 1059, '', '2021-01-06 17:49:29', '', '2021-01-06 17:49:37', b'1');
  668 +INSERT INTO `sys_role_menu` VALUES (101, 101, 1060, '', '2021-01-06 17:49:29', '', '2021-01-06 17:49:37', b'1');
  669 +INSERT INTO `sys_role_menu` VALUES (102, 101, 1024, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  670 +INSERT INTO `sys_role_menu` VALUES (103, 101, 1025, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  671 +INSERT INTO `sys_role_menu` VALUES (104, 101, 1026, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  672 +INSERT INTO `sys_role_menu` VALUES (105, 101, 1027, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  673 +INSERT INTO `sys_role_menu` VALUES (106, 101, 1028, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  674 +INSERT INTO `sys_role_menu` VALUES (107, 101, 4, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  675 +INSERT INTO `sys_role_menu` VALUES (108, 101, 1029, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  676 +INSERT INTO `sys_role_menu` VALUES (109, 101, 1030, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  677 +INSERT INTO `sys_role_menu` VALUES (110, 101, 1031, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  678 +INSERT INTO `sys_role_menu` VALUES (111, 101, 1032, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  679 +INSERT INTO `sys_role_menu` VALUES (112, 101, 1033, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  680 +INSERT INTO `sys_role_menu` VALUES (113, 101, 1034, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  681 +INSERT INTO `sys_role_menu` VALUES (114, 101, 1035, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  682 +INSERT INTO `sys_role_menu` VALUES (115, 101, 1036, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  683 +INSERT INTO `sys_role_menu` VALUES (116, 101, 1037, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  684 +INSERT INTO `sys_role_menu` VALUES (117, 101, 1038, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  685 +INSERT INTO `sys_role_menu` VALUES (118, 101, 1039, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  686 +INSERT INTO `sys_role_menu` VALUES (119, 101, 1040, '', '2021-01-06 18:00:10', '', '2021-01-06 18:00:16', b'1');
  687 +INSERT INTO `sys_role_menu` VALUES (120, 101, 1041, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  688 +INSERT INTO `sys_role_menu` VALUES (121, 101, 1042, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  689 +INSERT INTO `sys_role_menu` VALUES (122, 101, 1043, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  690 +INSERT INTO `sys_role_menu` VALUES (123, 101, 1044, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  691 +INSERT INTO `sys_role_menu` VALUES (124, 101, 1045, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  692 +INSERT INTO `sys_role_menu` VALUES (125, 101, 1046, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  693 +INSERT INTO `sys_role_menu` VALUES (126, 101, 1047, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  694 +INSERT INTO `sys_role_menu` VALUES (127, 101, 1048, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  695 +INSERT INTO `sys_role_menu` VALUES (128, 101, 1049, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  696 +INSERT INTO `sys_role_menu` VALUES (129, 101, 1050, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  697 +INSERT INTO `sys_role_menu` VALUES (130, 101, 1051, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  698 +INSERT INTO `sys_role_menu` VALUES (131, 101, 1052, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  699 +INSERT INTO `sys_role_menu` VALUES (132, 101, 1053, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  700 +INSERT INTO `sys_role_menu` VALUES (133, 101, 1054, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  701 +INSERT INTO `sys_role_menu` VALUES (134, 101, 1055, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  702 +INSERT INTO `sys_role_menu` VALUES (135, 101, 1056, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  703 +INSERT INTO `sys_role_menu` VALUES (136, 101, 1057, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  704 +INSERT INTO `sys_role_menu` VALUES (137, 101, 1058, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  705 +INSERT INTO `sys_role_menu` VALUES (138, 101, 1059, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  706 +INSERT INTO `sys_role_menu` VALUES (139, 101, 1060, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  707 +INSERT INTO `sys_role_menu` VALUES (140, 101, 1063, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  708 +INSERT INTO `sys_role_menu` VALUES (141, 101, 1064, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  709 +INSERT INTO `sys_role_menu` VALUES (142, 101, 1001, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  710 +INSERT INTO `sys_role_menu` VALUES (143, 101, 1002, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  711 +INSERT INTO `sys_role_menu` VALUES (144, 101, 1003, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  712 +INSERT INTO `sys_role_menu` VALUES (145, 101, 1004, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  713 +INSERT INTO `sys_role_menu` VALUES (146, 101, 1005, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  714 +INSERT INTO `sys_role_menu` VALUES (147, 101, 1006, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  715 +INSERT INTO `sys_role_menu` VALUES (148, 101, 1007, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  716 +INSERT INTO `sys_role_menu` VALUES (149, 101, 111, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  717 +INSERT INTO `sys_role_menu` VALUES (150, 101, 1008, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  718 +INSERT INTO `sys_role_menu` VALUES (151, 101, 112, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  719 +INSERT INTO `sys_role_menu` VALUES (152, 101, 1009, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  720 +INSERT INTO `sys_role_menu` VALUES (153, 101, 113, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  721 +INSERT INTO `sys_role_menu` VALUES (154, 101, 1010, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  722 +INSERT INTO `sys_role_menu` VALUES (155, 101, 1011, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  723 +INSERT INTO `sys_role_menu` VALUES (156, 101, 1012, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  724 +INSERT INTO `sys_role_menu` VALUES (157, 101, 116, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  725 +INSERT INTO `sys_role_menu` VALUES (158, 101, 1013, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  726 +INSERT INTO `sys_role_menu` VALUES (159, 101, 1014, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  727 +INSERT INTO `sys_role_menu` VALUES (160, 101, 1015, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  728 +INSERT INTO `sys_role_menu` VALUES (161, 101, 1016, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  729 +INSERT INTO `sys_role_menu` VALUES (162, 101, 1017, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  730 +INSERT INTO `sys_role_menu` VALUES (163, 101, 1018, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  731 +INSERT INTO `sys_role_menu` VALUES (164, 101, 1019, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  732 +INSERT INTO `sys_role_menu` VALUES (165, 101, 1020, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  733 +INSERT INTO `sys_role_menu` VALUES (166, 101, 1021, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  734 +INSERT INTO `sys_role_menu` VALUES (167, 101, 1022, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  735 +INSERT INTO `sys_role_menu` VALUES (168, 101, 1023, '', '2021-01-06 18:00:11', '', '2021-01-06 18:00:16', b'1');
  736 +COMMIT;
  737 +
  738 +-- ----------------------------
  739 +-- Table structure for sys_user
  740 +-- ----------------------------
  741 +DROP TABLE IF EXISTS `sys_user`;
  742 +CREATE TABLE `sys_user` (
  743 + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  744 + `username` varchar(30) NOT NULL COMMENT '用户账号',
  745 + `password` varchar(100) NOT NULL DEFAULT '' COMMENT '密码',
  746 + `nickname` varchar(30) NOT NULL COMMENT '用户昵称',
  747 + `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  748 + `dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID',
  749 + `post_ids` varchar(255) DEFAULT NULL COMMENT '岗位编号数组',
  750 + `email` varchar(50) DEFAULT '' COMMENT '用户邮箱',
  751 + `mobile` varchar(11) DEFAULT '' COMMENT '手机号码',
  752 + `sex` tinyint(4) DEFAULT '0' COMMENT '用户性别',
  753 + `avatar` varchar(100) DEFAULT '' COMMENT '头像地址',
  754 + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)',
  755 + `login_ip` varchar(50) DEFAULT '' COMMENT '最后登录IP',
  756 + `login_date` datetime DEFAULT NULL COMMENT '最后登录时间',
  757 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  758 + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  759 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  760 + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  761 + `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  762 + PRIMARY KEY (`id`) USING BTREE
  763 +) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';
  764 +
  765 +-- ----------------------------
  766 +-- Records of sys_user
  767 +-- ----------------------------
  768 +BEGIN;
  769 +INSERT INTO `sys_user` VALUES (1, 'admin', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '若依', '管理员', 103, '[1]', 'ry@163.com', '15888888888', 1, '', 0, '127.0.0.1', '2021-01-05 17:03:47', 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0');
  770 +INSERT INTO `sys_user` VALUES (2, 'ry', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '若依', '测试员', 105, '[2]', 'ry@qq.com', '15666666666', 1, '', 0, '127.0.0.1', '2021-01-05 17:03:47', 'admin', '2021-01-05 17:03:47', '', '2021-01-05 17:03:47', b'0');
  771 +COMMIT;
  772 +
  773 +-- ----------------------------
  774 +-- Table structure for sys_user_role
  775 +-- ----------------------------
  776 +DROP TABLE IF EXISTS `sys_user_role`;
  777 +CREATE TABLE `sys_user_role` (
  778 + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号',
  779 + `user_id` bigint(20) NOT NULL COMMENT '用户ID',
  780 + `role_id` bigint(20) NOT NULL COMMENT '角色ID',
  781 + `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  782 + `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  783 + `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  784 + `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  785 + `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除',
  786 + PRIMARY KEY (`id`) USING BTREE
  787 +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='用户和角色关联表';
  788 +
  789 +-- ----------------------------
  790 +-- Records of sys_user_role
  791 +-- ----------------------------
  792 +BEGIN;
  793 +INSERT INTO `sys_user_role` VALUES (1, 1, 1, '', NULL, '', NULL, b'0');
  794 +INSERT INTO `sys_user_role` VALUES (2, 2, 2, '', NULL, '', NULL, b'0');
  795 +COMMIT;
  796 +
  797 +SET FOREIGN_KEY_CHECKS = 1;
... ...
src/main/java/cn/iocoder/dashboard/framework/security/core/LoginUser.java
1 1 package cn.iocoder.dashboard.framework.security.core;
2 2  
3   -import cn.iocoder.dashboard.modules.system.enums.user.UserStatus;
  3 +import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
4 4 import com.alibaba.fastjson.annotation.JSONField;
5 5 import lombok.Data;
6 6 import org.springframework.security.core.GrantedAuthority;
... ... @@ -46,7 +46,7 @@ public class LoginUser implements UserDetails {
46 46 /**
47 47 * 状态
48 48 */
49   - private String status;
  49 + private Integer status;
50 50  
51 51 @Override
52 52 @JSONField(serialize = false) // 避免序列化
... ... @@ -63,7 +63,7 @@ public class LoginUser implements UserDetails {
63 63 @Override
64 64 @JSONField(serialize = false) // 避免序列化
65 65 public boolean isEnabled() {
66   - return UserStatus.OK.getCode().equals(status);
  66 + return CommonStatusEnum.ENABLE.getStatus().equals(status);
67 67 }
68 68  
69 69 @Override
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysRoleUpdateStatusReqVO.java
... ... @@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull;
10 10 @Data
11 11 public class SysRoleUpdateStatusReqVO {
12 12  
13   - @ApiModelProperty(value = "用户编号", required = true, example = "1024")
  13 + @ApiModelProperty(value = "角色编号", required = true, example = "1024")
14 14 @NotNull(message = "角色编号不能为空")
15 15 private Long id;
16 16  
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/SysUserController.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.user;
  2 +
  3 +public class SysUserController {
  4 +
  5 +// /**
  6 +// * 获取用户列表
  7 +// */
  8 +// @PreAuthorize("@ss.hasPermi('system:user:list')")
  9 +// @GetMapping("/list")
  10 +// public TableDataInfo list(SysUser user)
  11 +// {
  12 +// startPage();
  13 +// List<SysUser> list = userService.selectUserList(user);
  14 +// return getDataTable(list);
  15 +// }
  16 +//
  17 +// @Log(title = "用户管理", businessType = BusinessType.EXPORT)
  18 +// @PreAuthorize("@ss.hasPermi('system:user:export')")
  19 +// @GetMapping("/export")
  20 +// public AjaxResult export(SysUser user)
  21 +// {
  22 +// List<SysUser> list = userService.selectUserList(user);
  23 +// ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
  24 +// return util.exportExcel(list, "用户数据");
  25 +// }
  26 +//
  27 +// @Log(title = "用户管理", businessType = BusinessType.IMPORT)
  28 +// @PreAuthorize("@ss.hasPermi('system:user:import')")
  29 +// @PostMapping("/importData")
  30 +// public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
  31 +// {
  32 +// ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
  33 +// List<SysUser> userList = util.importExcel(file.getInputStream());
  34 +// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
  35 +// String operName = loginUser.getUsername();
  36 +// String message = userService.importUser(userList, updateSupport, operName);
  37 +// return AjaxResult.success(message);
  38 +// }
  39 +//
  40 +// @GetMapping("/importTemplate")
  41 +// public AjaxResult importTemplate()
  42 +// {
  43 +// ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
  44 +// return util.importTemplateExcel("用户数据");
  45 +// }
  46 +//
  47 +// /**
  48 +// * 根据用户编号获取详细信息
  49 +// */
  50 +// @PreAuthorize("@ss.hasPermi('system:user:query')")
  51 +// @GetMapping(value = { "/", "/{userId}" })
  52 +// public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
  53 +// {
  54 +// AjaxResult ajax = AjaxResult.success();
  55 +// List<SysRole> roles = roleService.selectRoleAll();
  56 +// ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
  57 +// ajax.put("posts", postService.selectPostAll());
  58 +// if (StringUtils.isNotNull(userId))
  59 +// {
  60 +// ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId));
  61 +// ajax.put("postIds", postService.selectPostListByUserId(userId));
  62 +// ajax.put("roleIds", roleService.selectRoleListByUserId(userId));
  63 +// }
  64 +// return ajax;
  65 +// }
  66 +//
  67 +// /**
  68 +// * 新增用户
  69 +// */
  70 +// @PreAuthorize("@ss.hasPermi('system:user:add')")
  71 +// @Log(title = "用户管理", businessType = BusinessType.INSERT)
  72 +// @PostMapping
  73 +// public AjaxResult add(@Validated @RequestBody SysUser user)
  74 +// {
  75 +// if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName())))
  76 +// {
  77 +// return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
  78 +// }
  79 +// else if (StringUtils.isNotEmpty(user.getPhonenumber())
  80 +// && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
  81 +// {
  82 +// return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
  83 +// }
  84 +// else if (StringUtils.isNotEmpty(user.getEmail())
  85 +// && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
  86 +// {
  87 +// return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
  88 +// }
  89 +// user.setCreateBy(SecurityUtils.getUsername());
  90 +// user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
  91 +// return toAjax(userService.insertUser(user));
  92 +// }
  93 +//
  94 +// /**
  95 +// * 修改用户
  96 +// */
  97 +// @PreAuthorize("@ss.hasPermi('system:user:edit')")
  98 +// @Log(title = "用户管理", businessType = BusinessType.UPDATE)
  99 +// @PutMapping
  100 +// public AjaxResult edit(@Validated @RequestBody SysUser user)
  101 +// {
  102 +// userService.checkUserAllowed(user);
  103 +// if (StringUtils.isNotEmpty(user.getPhonenumber())
  104 +// && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
  105 +// {
  106 +// return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
  107 +// }
  108 +// else if (StringUtils.isNotEmpty(user.getEmail())
  109 +// && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
  110 +// {
  111 +// return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
  112 +// }
  113 +// user.setUpdateBy(SecurityUtils.getUsername());
  114 +// return toAjax(userService.updateUser(user));
  115 +// }
  116 +//
  117 +// /**
  118 +// * 删除用户
  119 +// */
  120 +// @PreAuthorize("@ss.hasPermi('system:user:remove')")
  121 +// @Log(title = "用户管理", businessType = BusinessType.DELETE)
  122 +// @DeleteMapping("/{userIds}")
  123 +// public AjaxResult remove(@PathVariable Long[] userIds)
  124 +// {
  125 +// return toAjax(userService.deleteUserByIds(userIds));
  126 +// }
  127 +//
  128 +// /**
  129 +// * 重置密码
  130 +// */
  131 +// @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
  132 +// @Log(title = "用户管理", businessType = BusinessType.UPDATE)
  133 +// @PutMapping("/resetPwd")
  134 +// public AjaxResult resetPwd(@RequestBody SysUser user)
  135 +// {
  136 +// userService.checkUserAllowed(user);
  137 +// user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
  138 +// user.setUpdateBy(SecurityUtils.getUsername());
  139 +// return toAjax(userService.resetPwd(user));
  140 +// }
  141 +//
  142 +// /**
  143 +// * 状态修改
  144 +// */
  145 +// @PreAuthorize("@ss.hasPermi('system:user:edit')")
  146 +// @Log(title = "用户管理", businessType = BusinessType.UPDATE)
  147 +// @PutMapping("/changeStatus")
  148 +// public AjaxResult changeStatus(@RequestBody SysUser user)
  149 +// {
  150 +// userService.checkUserAllowed(user);
  151 +// user.setUpdateBy(SecurityUtils.getUsername());
  152 +// return toAjax(userService.updateUserStatus(user));
  153 +// }
  154 +
  155 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/SysUserProfileController.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.user;
  2 +
  3 +public class SysUserProfileController {
  4 +
  5 +// /**
  6 +// * 个人信息
  7 +// */
  8 +// @GetMapping
  9 +// public AjaxResult profile()
  10 +// {
  11 +// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
  12 +// SysUser user = loginUser.getUser();
  13 +// AjaxResult ajax = AjaxResult.success(user);
  14 +// ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
  15 +// ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
  16 +// return ajax;
  17 +// }
  18 +//
  19 +// /**
  20 +// * 修改用户
  21 +// */
  22 +// @Log(title = "个人信息", businessType = BusinessType.UPDATE)
  23 +// @PutMapping
  24 +// public AjaxResult updateProfile(@RequestBody SysUser user)
  25 +// {
  26 +// if (userService.updateUserProfile(user) > 0)
  27 +// {
  28 +// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
  29 +// // 更新缓存用户信息
  30 +// loginUser.getUser().setNickName(user.getNickName());
  31 +// loginUser.getUser().setPhonenumber(user.getPhonenumber());
  32 +// loginUser.getUser().setEmail(user.getEmail());
  33 +// loginUser.getUser().setSex(user.getSex());
  34 +// tokenService.setLoginUser(loginUser);
  35 +// return AjaxResult.success();
  36 +// }
  37 +// return AjaxResult.error("修改个人信息异常,请联系管理员");
  38 +// }
  39 +//
  40 +// /**
  41 +// * 重置密码
  42 +// */
  43 +// @Log(title = "个人信息", businessType = BusinessType.UPDATE)
  44 +// @PutMapping("/updatePwd")
  45 +// public AjaxResult updatePwd(String oldPassword, String newPassword)
  46 +// {
  47 +// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
  48 +// String userName = loginUser.getUsername();
  49 +// String password = loginUser.getPassword();
  50 +// if (!SecurityUtils.matchesPassword(oldPassword, password))
  51 +// {
  52 +// return AjaxResult.error("修改密码失败,旧密码错误");
  53 +// }
  54 +// if (SecurityUtils.matchesPassword(newPassword, password))
  55 +// {
  56 +// return AjaxResult.error("新密码不能与旧密码相同");
  57 +// }
  58 +// if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0)
  59 +// {
  60 +// // 更新缓存用户密码
  61 +// loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword));
  62 +// tokenService.setLoginUser(loginUser);
  63 +// return AjaxResult.success();
  64 +// }
  65 +// return AjaxResult.error("修改密码异常,请联系管理员");
  66 +// }
  67 +//
  68 +// /**
  69 +// * 头像上传
  70 +// */
  71 +// @Log(title = "用户头像", businessType = BusinessType.UPDATE)
  72 +// @PostMapping("/avatar")
  73 +// public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException
  74 +// {
  75 +// if (!file.isEmpty())
  76 +// {
  77 +// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
  78 +// String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file);
  79 +// if (userService.updateUserAvatar(loginUser.getUsername(), avatar))
  80 +// {
  81 +// AjaxResult ajax = AjaxResult.success();
  82 +// ajax.put("imgUrl", avatar);
  83 +// // 更新缓存用户头像
  84 +// loginUser.getUser().setAvatar(avatar);
  85 +// tokenService.setLoginUser(loginUser);
  86 +// return ajax;
  87 +// }
  88 +// }
  89 +// return AjaxResult.error("上传图片异常,请联系管理员");
  90 +// }
  91 +
  92 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/user/SysUserBaseVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
  2 +
  3 +import io.swagger.annotations.ApiModelProperty;
  4 +import lombok.Data;
  5 +
  6 +import javax.validation.constraints.Email;
  7 +import javax.validation.constraints.NotBlank;
  8 +import javax.validation.constraints.Size;
  9 +import java.util.Set;
  10 +
  11 +/**
  12 + * 用户 Base VO,提供给添加、修改、详细的子 VO 使用
  13 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
  14 + */
  15 +@Data
  16 +public class SysUserBaseVO {
  17 +
  18 + @ApiModelProperty(value = "用户账号", required = true, example = "yudao")
  19 + @NotBlank(message = "用户账号不能为空")
  20 + @Size(max = 30, message = "用户账号长度不能超过30个字符")
  21 + private String username;
  22 +
  23 + @ApiModelProperty(value = "用户昵称", required = true, example = "芋艿")
  24 + @Size(max = 30, message = "用户昵称长度不能超过30个字符")
  25 + private String nickname;
  26 +
  27 + @ApiModelProperty(value = "备注", example = "我是一个用户")
  28 + private String remark;
  29 +
  30 + @ApiModelProperty(value = "部门ID", example = "我是一个用户")
  31 + private Long deptId;
  32 +
  33 + @ApiModelProperty(value = "岗位编号数组", example = "1")
  34 + private Set<Long> postIds;
  35 +
  36 + @ApiModelProperty(value = "用户邮箱", example = "yudao@iocoder.cn")
  37 + @Email(message = "邮箱格式不正确")
  38 + @Size(max = 50, message = "邮箱长度不能超过50个字符")
  39 + private String email;
  40 +
  41 + @ApiModelProperty(value = "手机号码", example = "15601691300")
  42 + @Size(max = 11, message = "手机号码长度不能超过11个字符")
  43 + private String mobile;
  44 +
  45 + @ApiModelProperty(value = "用户性别", example = "1", notes = "参见 SysSexEnum 枚举类")
  46 + private Integer sex;
  47 +
  48 + @ApiModelProperty(value = "用户头像", example = "http://www.iocoder.cn/xxx.png")
  49 + private String avatar;
  50 +
  51 +
  52 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/user/SysUserCreateReqVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
  2 +
  3 +
  4 +import io.swagger.annotations.ApiModel;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +
  8 +@ApiModel("用户创建 Request VO")
  9 +@Data
  10 +@EqualsAndHashCode(callSuper = true)
  11 +public class SysUserCreateReqVO extends SysUserBaseVO {
  12 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/user/SysUserExcelRespVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
  2 +
  3 +import cn.iocoder.dashboard.framework.excel.Excel;
  4 +import cn.iocoder.dashboard.framework.excel.Excels;
  5 +import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysDeptDO;
  6 +import lombok.Data;
  7 +
  8 +import java.util.Date;
  9 +
  10 +/**
  11 + * 用户 Excel 导出响应 VO
  12 + */
  13 +@Data
  14 +public class SysUserExcelRespVO {
  15 +
  16 + @Excel(name = "用户序号", cellType = Excel.ColumnType.NUMERIC, prompt = "用户编号")
  17 + private Long id;
  18 +
  19 + /**
  20 + * 用户账号
  21 + */
  22 + @Excel(name = "登录名称")
  23 + private String username;
  24 +
  25 + /**
  26 + * 用户昵称
  27 + */
  28 + @Excel(name = "用户名称")
  29 + private String nickname;
  30 +
  31 + @Excel(name = "部门编号", type = Excel.Type.IMPORT)
  32 + private Long deptId;
  33 +
  34 + @Excel(name = "用户邮箱")
  35 + private String email;
  36 +
  37 + @Excel(name = "手机号码")
  38 + private String mobile;
  39 +
  40 + @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
  41 + private String sex;
  42 +
  43 + @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
  44 + private Integer status;
  45 +
  46 + @Excel(name = "最后登录IP", type = Excel.Type.EXPORT)
  47 + private String loginIp;
  48 +
  49 + @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
  50 + private Date loginDate;
  51 +
  52 + @Excels({
  53 + @Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT),
  54 + @Excel(name = "部门负责人", targetAttr = "leader", type = Excel.Type.EXPORT)
  55 + })
  56 + private SysDeptDO dept;
  57 +
  58 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/user/SysUserRespVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +import lombok.AllArgsConstructor;
  6 +import lombok.Data;
  7 +import lombok.EqualsAndHashCode;
  8 +import lombok.NoArgsConstructor;
  9 +
  10 +import java.util.Date;
  11 +
  12 +@ApiModel("用户信息 Response VO")
  13 +@Data
  14 +@NoArgsConstructor
  15 +@AllArgsConstructor
  16 +@EqualsAndHashCode(callSuper = true)
  17 +public class SysUserRespVO extends SysUserBaseVO {
  18 +
  19 + @ApiModelProperty(value = "用户编号", required = true, example = "1")
  20 + private Integer id;
  21 +
  22 + @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 SysCommonStatusEnum 枚举类")
  23 + private Integer status;
  24 +
  25 + @ApiModelProperty(value = "最后登陆 IP", required = true, example = "192.168.1.1")
  26 + private String loginIp;
  27 +
  28 + @ApiModelProperty(value = "最后登录时间", required = true, example = "时间戳格式")
  29 + private Date loginDate;
  30 +
  31 + @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
  32 + private Date createTime;
  33 +
  34 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/user/SysUserUpdateReqVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +
  8 +import javax.validation.constraints.NotNull;
  9 +
  10 +@ApiModel("用户更新 Request VO")
  11 +@Data
  12 +@EqualsAndHashCode(callSuper = true)
  13 +public class SysUserUpdateReqVO extends SysUserBaseVO {
  14 +
  15 + @ApiModelProperty(value = "用户编号", required = true, example = "1024")
  16 + @NotNull(message = "用户编号不能为空")
  17 + private Long id;
  18 +
  19 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/user/SysUserUpdateStatusReqVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +import lombok.Data;
  6 +
  7 +import javax.validation.constraints.NotNull;
  8 +
  9 +@ApiModel("用户更新状态 Request VO")
  10 +@Data
  11 +public class SysUserUpdateStatusReqVO {
  12 +
  13 + @ApiModelProperty(value = "用户编号", required = true, example = "1024")
  14 + @NotNull(message = "角色编号不能为空")
  15 + private Long id;
  16 +
  17 + @ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 SysCommonStatusEnum 枚举")
  18 + @NotNull(message = "状态不能为空")
  19 +// @InEnum(value = SysCommonStatusEnum.class, message = "修改状态必须是 {value}")
  20 + private Integer status;
  21 +
  22 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/user/SysUserDO.java
1 1 package cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user;
2 2  
3   -import cn.iocoder.dashboard.framework.excel.Excel;
4   -import cn.iocoder.dashboard.framework.excel.Excels;
  3 +import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
5 4 import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
6   -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysDeptDO;
7   -import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysRoleDO;
  5 +import cn.iocoder.dashboard.modules.system.enums.common.SysSexEnum;
8 6 import com.baomidou.mybatisplus.annotation.TableField;
9 7 import com.baomidou.mybatisplus.annotation.TableId;
10 8 import com.baomidou.mybatisplus.annotation.TableName;
  9 +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
11 10 import lombok.Data;
12 11 import lombok.EqualsAndHashCode;
13 12 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
14 13  
15   -import javax.validation.constraints.Email;
16   -import javax.validation.constraints.NotBlank;
17   -import javax.validation.constraints.Size;
18 14 import java.util.Date;
19   -import java.util.List;
  15 +import java.util.Set;
20 16  
21 17 /**
22 18 * 用户 DO
... ... @@ -26,118 +22,71 @@ import java.util.List;
26 22 @TableName("sys_user")
27 23 @Data
28 24 @EqualsAndHashCode(callSuper = true)
29   -// TODO 芋艿:数据库的字段默认值
30 25 public class SysUserDO extends BaseDO {
31 26  
32 27 /**
33 28 * 用户ID
34 29 */
35 30 @TableId
36   - @Excel(name = "用户序号", cellType = Excel.ColumnType.NUMERIC, prompt = "用户编号")
37   - private Long userId;
38   -
39   - /**
40   - * 部门ID
41   - */
42   - @Excel(name = "部门编号", type = Excel.Type.IMPORT)
43   - private Long deptId;
44   -
  31 + private Long id;
45 32 /**
46 33 * 用户账号
47 34 */
48   - @Excel(name = "登录名称")
49   - @NotBlank(message = "用户账号不能为空")
50   - @Size(max = 30, message = "用户账号长度不能超过30个字符")
51 35 private String username;
52   -
53 36 /**
54 37 * 加密后的密码
55 38 *
56 39 * 因为目前使用 {@link BCryptPasswordEncoder} 加密器,所以无需自己处理 salt 盐
57 40 */
58 41 private String password;
59   -
60 42 /**
61 43 * 用户昵称
62 44 */
63   - @Excel(name = "用户名称")
64   - @Size(max = 30, message = "用户昵称长度不能超过30个字符")
65 45 private String nickname;
66   -
  46 + /**
  47 + * 备注
  48 + */
  49 + private String remark;
  50 + /**
  51 + * 部门ID
  52 + */
  53 + private Long deptId;
  54 + /**
  55 + * 岗位编号数组
  56 + */
  57 + @TableField(typeHandler = FastjsonTypeHandler.class)
  58 + private Set<Long> postIds;
67 59 /**
68 60 * 用户邮箱
69 61 */
70   - @Excel(name = "用户邮箱")
71   - @Email(message = "邮箱格式不正确")
72   - @Size(max = 50, message = "邮箱长度不能超过50个字符")
73 62 private String email;
74   -
75 63 /**
76 64 * 手机号码
77 65 */
78   - @Excel(name = "手机号码")
79   - @Size(max = 11, message = "手机号码长度不能超过11个字符")
80 66 private String mobile;
81   -
82 67 /**
83 68 * 用户性别
  69 + *
  70 + * 枚举类 {@link SysSexEnum}
84 71 */
85   - @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
86   - private String sex;
87   -
  72 + private Integer sex;
88 73 /**
89 74 * 用户头像
90 75 */
91 76 private String avatar;
92   -
93 77 /**
94   - * 帐号状态(0正常 1停用)
  78 + * 帐号状态
  79 + *
  80 + * 枚举 {@link CommonStatusEnum}
95 81 */
96   - @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
97   - // TODO 芋艿:修改成枚举
98   - private String status;
99   -
  82 + private Integer status;
100 83 /**
101 84 * 最后登录IP
102 85 */
103   - @Excel(name = "最后登录IP", type = Excel.Type.EXPORT)
104 86 private String loginIp;
105   -
106 87 /**
107 88 * 最后登录时间
108 89 */
109   - @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
110 90 private Date loginDate;
111 91  
112   -
113   - // TODO FROM 芋艿:下面的字段,需要忽略
114   -
115   - /**
116   - * 部门对象
117   - */
118   - @Excels({
119   - @Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT),
120   - @Excel(name = "部门负责人", targetAttr = "leader", type = Excel.Type.EXPORT)
121   - })
122   - @TableField(exist = false)
123   - private SysDeptDO dept;
124   -
125   - /**
126   - * 角色对象
127   - */
128   - @TableField(exist = false)
129   - private List<SysRoleDO> roles;
130   -
131   - /**
132   - * 角色组
133   - */
134   - @TableField(exist = false)
135   - private Long[] roleIds;
136   -
137   - /**
138   - * 岗位组
139   - */
140   - @TableField(exist = false)
141   - private Long[] postIds;
142   -
143 92 }
... ...
src/main/java/cn/iocoder/dashboard/modules/system/enums/common/SysSexEnum.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.enums.common;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Getter;
  5 +
  6 +@Getter
  7 +@AllArgsConstructor
  8 +public enum SysSexEnum {
  9 +
  10 + MALE(1), // 男
  11 + FEMALE(2); // 女
  12 +
  13 + private final Integer SEX;
  14 +
  15 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/enums/user/UserStatus.java deleted
1   -package cn.iocoder.dashboard.modules.system.enums.user;
2   -
3   -/**
4   - * 用户状态
5   - *
6   - * @author ruoyi
7   - */
8   -public enum UserStatus
9   -{
10   - OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除");
11   -
12   - private final String code;
13   - private final String info;
14   -
15   - UserStatus(String code, String info)
16   - {
17   - this.code = code;
18   - this.info = info;
19   - }
20   -
21   - public String getCode()
22   - {
23   - return code;
24   - }
25   -
26   - public String getInfo()
27   - {
28   - return info;
29   - }
30   -}
src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysAuthServiceImpl.java
... ... @@ -8,7 +8,6 @@ import cn.iocoder.dashboard.framework.security.core.LoginUser;
8 8 import cn.iocoder.dashboard.modules.system.convert.auth.SysAuthConvert;
9 9 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.user.SysUserDO;
10 10 import cn.iocoder.dashboard.modules.system.dal.redis.dao.auth.SysLoginUserRedisDAO;
11   -import cn.iocoder.dashboard.modules.system.enums.user.UserStatus;
12 11 import cn.iocoder.dashboard.modules.system.service.auth.SysAuthService;
13 12 import cn.iocoder.dashboard.modules.system.service.auth.SysTokenService;
14 13 import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService;
... ... @@ -199,7 +198,7 @@ public class SysAuthServiceImpl implements SysAuthService {
199 198  
200 199 // 重新加载 SysUserDO 信息
201 200 SysUserDO user = userService.getUser(loginUser.getUserId());
202   - if (user == null || UserStatus.DISABLE.getCode().equals(user.getStatus())) {
  201 + if (user == null || CommonStatusEnum.DISABLE.getStatus().equals(user.getStatus())) {
203 202 throw exception(TOKEN_EXPIRED); // 校验 token 时,用户被禁用的情况下,也认为 token 过期,方便前端跳转到登陆界面
204 203 }
205 204  
... ...