Kaynağa Gözat

【CHG】修改系统管理显示不全的问题

ZhaoMn 4 yıl önce
ebeveyn
işleme
b50cdd8a1f

+ 5 - 0
railway-common/src/main/java/com/railway/common/core/domain/entity/SysUser.java

@@ -187,6 +187,11 @@ public class SysUser extends BaseEntity {
   })
   private SysDept dept = new SysDept();
 
+  /**
+   * 角色名,以逗号分隔多个角色名
+   */
+  private String roleName;
+
   private List<SysRole> roles;
 
   /**

+ 1 - 1
railway-system/src/main/java/com/railway/system/mapper/SysDeptMapper.java

@@ -28,7 +28,7 @@ public interface SysDeptMapper {
    * @param deptCheckStrictly 部门树选择项是否关联显示
    * @return 选中部门列表
    */
-  List<Integer> selectDeptListByRoleId(@Param("roleId") Long roleId,
+  List<Long> selectDeptListByRoleId(@Param("roleId") Long roleId,
       @Param("deptCheckStrictly") boolean deptCheckStrictly);
 
   /**

+ 1 - 1
railway-system/src/main/java/com/railway/system/service/ISysDeptService.java

@@ -48,7 +48,7 @@ public interface ISysDeptService {
    * @param roleId 角色ID
    * @return 选中部门列表
    */
-  List<Integer> selectDeptListByRoleId(Long roleId);
+  List<Long> selectDeptListByRoleId(Long roleId);
 
   /**
    * 根据部门ID查询信息

+ 2 - 6
railway-system/src/main/java/com/railway/system/service/impl/SysDeptServiceImpl.java

@@ -62,11 +62,7 @@ public class SysDeptServiceImpl implements ISysDeptService {
   @Override
   @DataScope(deptAlias = "d")
   public List<SysDept> selectDeptList(SysDept dept) {
-    List<SysDept> deptList = deptMapper.selectDeptList(dept);
-    for(SysDept sysDept : deptList){
-      sysDept.setUserCount(userMapper.countUserByDeptId(sysDept.getDeptId()));
-    }
-    return deptList;
+    return deptMapper.selectDeptList(dept);
   }
 
   /**
@@ -116,7 +112,7 @@ public class SysDeptServiceImpl implements ISysDeptService {
    * @return 选中部门列表
    */
   @Override
-  public List<Integer> selectDeptListByRoleId(Long roleId) {
+  public List<Long> selectDeptListByRoleId(Long roleId) {
     SysRole role = roleMapper.selectRoleById(roleId);
     return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly());
   }

+ 13 - 2
railway-system/src/main/java/com/railway/system/service/impl/SysUserServiceImpl.java

@@ -20,7 +20,9 @@ import com.railway.system.service.ISysConfigService;
 import com.railway.system.service.ISysUserService;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -61,7 +63,16 @@ public class SysUserServiceImpl implements ISysUserService {
   @Override
   @DataScope(deptAlias = "d", userAlias = "u")
   public List<SysUser> selectUserList(SysUser user) {
-    return userMapper.selectUserList(user);
+    List<SysUser> users = userMapper.selectUserList(user);
+    for (SysUser sysUser : users) {
+      if (CollectionUtils.isNotEmpty(sysUser.getRoles())) {
+        // 把多个角色名以逗号分隔拼接
+        String roleName = sysUser.getRoles().stream().map(SysRole::getRoleName)
+            .collect(Collectors.joining(","));
+        sysUser.setRoleName(roleName);
+      }
+    }
+    return users;
   }
 
   /**
@@ -232,7 +243,7 @@ public class SysUserServiceImpl implements ISysUserService {
   @Transactional(rollbackFor = Exception.class)
   public int insertUser(SysUser user) {
     String password = user.getPassword();
-    if(StringUtils.isEmpty(password)){
+    if (StringUtils.isEmpty(password)) {
       password = configService.selectConfigByKey("sys.user.initPassword");
     }
     user.setPassword(SecurityUtils.encryptPassword(password));

+ 8 - 6
railway-system/src/main/resources/mapper/system/SysDeptMapper.xml

@@ -21,35 +21,37 @@
     <result property="updateBy" column="update_by"/>
     <result property="updateTime" column="update_time"/>
     <result property="remark" column="remark"/>
+    <result property="userCount" column="user_count"/>
   </resultMap>
 
   <sql id="selectDeptVo">
     select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone,
-    d.email, d.status, d.del_flag, d.create_by, d.create_time, d.remark
+    d.email, d.status, d.del_flag, d.create_by, d.create_time, d.remark, t.user_count
     from sys_dept d
+    left join (select dept_id, count(*) as user_count from sys_user where del_flag = '0' group by dept_id) t on t.dept_id = d.dept_id
   </sql>
 
   <select id="selectDeptList" parameterType="SysDept" resultMap="SysDeptResult">
     <include refid="selectDeptVo"/>
     where d.del_flag = '0'
     <if test="deptId != null and deptId != 0">
-      AND dept_id = #{deptId}
+      AND d.dept_id = #{deptId}
     </if>
     <if test="parentId != null and parentId != 0">
-      AND parent_id = #{parentId}
+      AND d.parent_id = #{parentId}
     </if>
     <if test="deptName != null and deptName != ''">
-      AND dept_name like concat('%', #{deptName}, '%')
+      AND d.dept_name like concat('%', #{deptName}, '%')
     </if>
     <if test="status != null and status != ''">
-      AND status = #{status}
+      AND d.status = #{status}
     </if>
     <!-- 数据范围过滤 -->
     ${params.dataScope}
     order by d.parent_id, d.order_num
   </select>
 
-  <select id="selectDeptListByRoleId" resultType="Integer">
+  <select id="selectDeptListByRoleId" resultType="Long">
     select d.dept_id
     from sys_dept d
     left join sys_role_dept rd on d.dept_id = rd.dept_id

+ 3 - 1
railway-system/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -19,16 +19,18 @@
     <result property="updateBy" column="update_by"/>
     <result property="updateTime" column="update_time"/>
     <result property="remark" column="remark"/>
+    <result property="userCount" column="user_count"/>
   </resultMap>
 
   <sql id="selectRoleVo">
     select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope,
     r.menu_check_strictly, r.dept_check_strictly,
-    r.status, r.del_flag, r.create_time, r.remark
+    r.status, r.del_flag, r.create_time, r.update_by, r.update_time, r.remark, t.user_count
     from sys_role r
     left join sys_user_role ur on ur.role_id = r.role_id
     left join sys_user u on u.user_id = ur.user_id
     left join sys_dept d on u.dept_id = d.dept_id
+    left join (select role_id, count(1) as user_count from sys_user_role where del_flag = '0' group by role_id) t on t.role_id = r.role_id
   </sql>
 
   <select id="selectRoleList" parameterType="SysRole" resultMap="SysRoleResult">

+ 1 - 1
railway-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -66,7 +66,7 @@
   <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
     select u.user_id, u.dept_id, u.nick_name, u.user_name, u.real_name, u.email, u.avatar, u.phone, u.wechat,
     u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time,
-    u.birthday, u.remark, d.dept_name, d.leader, u.post, dict.dict_label
+    u.birthday, u.remark, d.dept_name, d.leader, u.post, dict.dict_label as post_text
     from sys_user u
     left join sys_dept d on u.dept_id = d.dept_id
     LEFT JOIN sys_dict_data dict ON (u.post = dict.dict_value AND dict.dict_type = 'postType')