Browse Source

初始化

LIJIAN 1 month ago
parent
commit
c983532e98

+ 6 - 1
ema-admin/src/main/java/com/ema/admin/modules/system/controller/SysUserController.java

@@ -5,9 +5,11 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.mybatisflex.core.paginate.Page;
 import com.ema.admin.modules.system.converter.SysUserConverter;
+import com.ema.admin.modules.system.entity.SysDepartment;
 import com.ema.admin.modules.system.entity.SysRole;
 import com.ema.admin.modules.system.entity.SysUser;
 import com.ema.admin.modules.system.service.SysAuthService;
+import com.ema.admin.modules.system.service.SysDepartmentService;
 import com.ema.admin.modules.system.service.SysRoleService;
 import com.ema.admin.modules.system.service.SysUserService;
 import com.ema.admin.modules.system.vo.SysUserInfoVo;
@@ -41,6 +43,8 @@ public class SysUserController {
     private SysAuthService sysAuthService;
     @Autowired
     private SysRoleService sysRoleService;
+    @Autowired
+    private SysDepartmentService sysDepartmentService;
 
     /**
      * 添加系统用户信息表。
@@ -113,7 +117,8 @@ public class SysUserController {
     public SysUserInfoVo getInfo(@PathVariable @ApiParam("系统用户信息表主键") String id) {
         SysUser sysUser = sysUserService.getById(id);
         List<SysRole> roleList = sysRoleService.getRoleByUserId(id);
-        return sysUserConverter.toSysUserInfoVo(sysUser,roleList);
+        SysDepartment dept = sysDepartmentService.getById(sysUser.getDeptId());
+        return sysUserConverter.toSysUserInfoVo(sysUser, dept, roleList);
     }
 
     /**

+ 4 - 1
ema-admin/src/main/java/com/ema/admin/modules/system/converter/SysUserConverter.java

@@ -1,6 +1,8 @@
 package com.ema.admin.modules.system.converter;
 
 
+import cn.hutool.core.util.StrUtil;
+import com.ema.admin.modules.system.entity.SysDepartment;
 import com.ema.admin.modules.system.entity.SysRole;
 import com.ema.admin.modules.system.entity.SysUser;
 import com.ema.admin.modules.system.vo.SysUserInfoVo;
@@ -21,9 +23,10 @@ public interface SysUserConverter {
 
     SysUserInfoVo toSysUserInfoVo(SysUser sysUser);
 
-    default SysUserInfoVo toSysUserInfoVo(SysUser sysUser, List<SysRole> roleList) {
+    default SysUserInfoVo toSysUserInfoVo(SysUser sysUser, SysDepartment dept, List<SysRole> roleList) {
         SysUserInfoVo sysUserInfoVo = toSysUserInfoVo(sysUser);
         sysUserInfoVo.setRoleList(roleList);
+        sysUserInfoVo.setDeptName(dept != null ? dept.getDeptName() : null);
         return sysUserInfoVo;
     }
 }

+ 6 - 0
ema-admin/src/main/java/com/ema/admin/modules/system/entity/SysUser.java

@@ -82,4 +82,10 @@ public class SysUser extends BaseEntity implements Serializable {
     @ApiModelProperty("备注")
     private String remark;
 
+    /**
+     * 部门ID
+     */
+    @ApiModelProperty("部门ID")
+    private String deptId;
+
 }

+ 4 - 1
ema-admin/src/main/java/com/ema/admin/modules/system/service/impl/SysAuthServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.ema.admin.modules.system.converter.SysMenuConverter;
 import com.ema.admin.modules.system.converter.SysUserConverter;
+import com.ema.admin.modules.system.entity.SysDepartment;
 import com.ema.admin.modules.system.entity.SysMenu;
 import com.ema.admin.modules.system.entity.SysRole;
 import com.ema.admin.modules.system.entity.SysUser;
@@ -34,7 +35,7 @@ public class SysAuthServiceImpl implements SysAuthService {
     @Resource
     private SysMenuService sysMenuService;
     @Resource
-    private SysUserRoleService sysUserRoleService;
+    private SysDepartmentService sysDepartmentService;
     @Resource
     private SysEmailService sysEmailService;
     @Resource
@@ -89,6 +90,8 @@ public class SysAuthServiceImpl implements SysAuthService {
         //获取登录后的token
         userVo.setToken(StpUtil.getTokenValue());
         StpUtil.getSession().set(userVo.getToken(), userVo); // 缓存 userVo 对象
+        SysDepartment dept = sysDepartmentService.getById(sysUser.getDeptId());
+        userVo.setDeptName(dept != null ? dept.getDeptName() : null);
 
         //查询用户角色
         List<SysRole> sysRoles = sysRoleService.getRoleByUserId(userVo.getId());

+ 8 - 2
ema-admin/src/main/java/com/ema/admin/modules/system/service/impl/SysUserServiceImpl.java

@@ -6,10 +6,12 @@ import com.mybatisflex.core.paginate.Page;
 import com.mybatisflex.core.query.QueryWrapper;
 import com.mybatisflex.spring.service.impl.ServiceImpl;
 import com.ema.admin.modules.system.converter.SysUserConverter;
+import com.ema.admin.modules.system.entity.SysDepartment;
 import com.ema.admin.modules.system.entity.SysRole;
 import com.ema.admin.modules.system.entity.SysUser;
 import com.ema.admin.modules.system.entity.SysUserRole;
 import com.ema.admin.modules.system.mapper.SysUserMapper;
+import com.ema.admin.modules.system.service.SysDepartmentService;
 import com.ema.admin.modules.system.service.SysRoleService;
 import com.ema.admin.modules.system.service.SysUserRoleService;
 import com.ema.admin.modules.system.service.SysUserService;
@@ -38,6 +40,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>  imp
     private SysUserConverter sysUserConverter;
     @Autowired
     private SysRoleService sysRoleService;
+    @Autowired
+    private SysDepartmentService sysDepartmentService;
 
     @Override
     public SysUser getByAccount(String account) {
@@ -58,9 +62,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>  imp
         Page<SysUser> userPage = pageSysUser(queryVo);
         List<SysUserInfoVo> voList = userPage.getRecords().stream().map(sysUser -> {
             List<SysRole> roleList = sysRoleService.getRoleByUserId(sysUser.getId());
-            return sysUserConverter.toSysUserInfoVo(sysUser,roleList);
+            SysDepartment dept = sysDepartmentService.getById(sysUser.getDeptId());
+            return sysUserConverter.toSysUserInfoVo(sysUser, dept, roleList);
         }).collect(Collectors.toList());
-        return new Page(voList,  userPage.getPageNumber(), userPage.getPageSize(), userPage.getTotalRow());
+        return new Page<>(voList,  userPage.getPageNumber(), userPage.getPageSize(), userPage.getTotalRow());
     }
 
     @Override
@@ -71,6 +76,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>  imp
         queryWrapper.like(SysUser::getPhone, queryVo.getPhone(), StrUtil.isNotBlank(queryVo.getPhone()));
         queryWrapper.like(SysUser::getEmail, queryVo.getEmail(), StrUtil.isNotBlank(queryVo.getEmail()));
         queryWrapper.eq(SysUser::getStatus, queryVo.getStatus(), StrUtil.isNotBlank(queryVo.getStatus()));
+        queryWrapper.eq(SysUser::getDeptId, queryVo.getDeptId(), StrUtil.isNotBlank(queryVo.getDeptId()));
         return this.page(new Page<>(queryVo.getPageNumber(), queryVo.getPageSize()), queryWrapper);
     }
 

+ 12 - 0
ema-admin/src/main/java/com/ema/admin/modules/system/vo/SysUserInfoVo.java

@@ -80,6 +80,18 @@ public class SysUserInfoVo implements Serializable {
     @ApiModelProperty("备注")
     private String remark;
 
+    /**
+     * 部门ID
+     */
+    @ApiModelProperty("部门ID")
+    private String deptId;
+
+    /**
+     * 部门名称
+     */
+    @ApiModelProperty("部门名称")
+    private String deptName;
+
     @ApiModelProperty(value = "创建时间")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")

+ 6 - 0
ema-admin/src/main/java/com/ema/admin/modules/system/vo/SysUserQueryVo.java

@@ -83,4 +83,10 @@ public class SysUserQueryVo implements Serializable {
      */
     @ApiModelProperty("邀请人邀请码")
     private String inviterCode;
+
+    /**
+     * 部门ID
+     */
+    @ApiModelProperty("部门ID")
+    private String deptId;
 }

+ 6 - 0
ema-admin/src/main/java/com/ema/admin/modules/system/vo/SysUserSaveVo.java

@@ -79,6 +79,12 @@ public class SysUserSaveVo implements Serializable {
     @ApiModelProperty("备注")
     private String remark;
 
+    /**
+     * 部门ID
+     */
+    @ApiModelProperty("部门ID")
+    private String deptId;
+
     /**
      * 角色ID列表
      */

+ 12 - 0
ema-admin/src/main/java/com/ema/admin/modules/system/vo/SysUserVo.java

@@ -76,6 +76,18 @@ public class SysUserVo implements Serializable {
     @ApiModelProperty("备注")
     private String remark;
 
+    /**
+     * 部门ID
+     */
+    @ApiModelProperty("部门ID")
+    private String deptId;
+
+    /**
+     * 部门名称
+     */
+    @ApiModelProperty("部门名称")
+    private String deptName;
+
     @ApiModelProperty(value = "创建时间")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")

+ 36 - 2
ema-admin/src/main/resources/web/pages/user/user_form.html

@@ -48,6 +48,15 @@
                 <input type="text" name="email" placeholder="请输入邮箱" class="layui-input">
             </div>
         </div>
+
+        <div class="layui-form-item">
+            <label class="layui-form-label">部门</label>
+            <div class="layui-input-block">
+                <select name="deptId" id="deptSelect" class="layui-select">
+                    <option value="">请选择部门</option>
+                </select>
+            </div>
+        </div>
         
     <!--    <div class="layui-form-item">
             <label class="layui-form-label">头像</label>
@@ -107,6 +116,9 @@
             
             // 加载角色列表
             loadRoles();
+
+            // 加载部门列表
+            loadDepartments();
             
             // 加载用户数据
             if (isEdit) {
@@ -133,6 +145,26 @@
                     }
                 });
             }
+
+            function loadDepartments() {
+                Common.get(Config.api.department.list, function(res) {
+                    if (res.code === 200 && res.data) {
+                        var depts = res.data || [];
+                        var html = '<option value="">请选择部门</option>';
+                        depts.forEach(function(dept) {
+                            html += '<option value="' + dept.id + '">' + dept.deptName + '</option>';
+                        });
+                        $('#deptSelect').html(html);
+                        form.render('select');
+
+                        // 部门加载完成后,如果有用户数据则回显部门
+                        if (userData && userData.deptId) {
+                            $('#deptSelect').val(userData.deptId);
+                            form.render('select');
+                        }
+                    }
+                });
+            }
             
             function echoRoles(roleList) {
                 if (roleList && roleList.length > 0) {
@@ -156,9 +188,11 @@
                             email: data.email,
                             avatar: data.avatar,
                             status: data.status,
-                            remark: data.remark
+                            remark: data.remark,
+                            deptId: data.deptId
                         });
-                        
+                        form.render('select');
+
                         // 回显角色
                         echoRoles(data.roleList);
                     }

+ 25 - 0
ema-admin/src/main/resources/web/pages/user/user_list.html

@@ -46,6 +46,14 @@
                         </select>
                     </div>
                 </div>
+                <div class="layui-inline">
+                    <label class="layui-form-label">部门</label>
+                    <div class="layui-input-inline">
+                        <select name="deptId" id="deptSelect" class="layui-select">
+                            <option value="">全部</option>
+                        </select>
+                    </div>
+                </div>
                 <div class="layui-inline">
                     <button type="button" class="layui-btn" id="btnSearch"><i class="layui-icon layui-icon-search"></i> 搜索</button>
                     <button type="reset" class="layui-btn layui-btn-primary">重置</button>
@@ -106,6 +114,7 @@
                     { type: 'checkbox', fixed: 'left' },
                     { field: 'account', title: '账号', width: 120 },
                     { field: 'name', title: '姓名', width: 100 },
+                    { field: 'deptName', title: '部门', width: 120 },
                     { field: 'phone', title: '手机号', width: 120 },
                     { field: 'email', title: '邮箱', width: 150 },
                     { field: 'status', title: '状态', width: 80, templet: '#statusTpl' },
@@ -115,6 +124,22 @@
                     { fixed: 'right', title: '操作', width: 200,  align: 'center', toolbar: '#toolbar' }
                 ]]
             });
+
+            // 加载部门列表
+            function loadDepartments() {
+                Common.get(Config.api.department.list, function(res) {
+                    if (res.code === 200 && res.data) {
+                        var depts = res.data || [];
+                        var html = '<option value="">全部</option>';
+                        depts.forEach(function(dept) {
+                            html += '<option value="' + dept.id + '">' + dept.deptName + '</option>';
+                        });
+                        $('#deptSelect').html(html);
+                        form.render('select');
+                    }
+                });
+            }
+            loadDepartments();
             
             // 搜索
             $('#btnSearch').click(function() {