mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-11-04 10:57:10 +08:00 
			
		
		
		
	优化:基于阿里巴巴 Java 开发手册(黄山版)优化部分变量和方法命名
1.编程规约>命名风格>第14条:
【推荐】在常量与变量命名时,表示类型的名词放在词尾,以提升辨识度。
正例:startTime / workQueue / nameList / TERMINATED_THREAD_COUNT
反例:startedAt / QueueOfWork / listName / COUNT_TERMINATED_THREAD
2.编程规约>命名风格>第19条:
【参考】各层命名规约:
  A)Service / DAO 层方法命名规约:
  1)获取单个对象的方法用 get 做前缀。
  2)获取多个对象的方法用 list 做前缀,复数结尾,如:listObjects
  3)获取统计值的方法用 count 做前缀。
  4)插入的方法用 save / insert 做前缀。
  5)删除的方法用 remove / delete 做前缀。
  6)修改的方法用 update 做前缀。
个人理解及应用 🔥:
  1)在变量命名方面:
    a)方法体内局部变量,命名时表示类型的名词放在词尾,以提升辨识度;
      正例:nameList、nameArr。
    b)方法声明上参数(局部变量),命名时尽量采用复数形式,以和方法名保持一致;
      正例:List<String> listNameByIds(List<Long> ids);
    c)成员变量,命名时尽量采用复数形式。
  2)在方法命名方面:
    a)CRUD 类方法可以简化命名;
      正例:UserService:page、list、add、update、delete...;
      说明:UserService 是围绕 User 为核心的业务接口,简化命名的方法也很容易理解操作的是什么。
    b)其他方法,查询信息名词采用单数(与其纠结单数、复数,那就用单数,简单粗暴一点),以上述第2条要求为命名前缀。
      正例:RoleService:listNameByIds(根据 ID 查询名称列表)
           RoleService:listRoleCodeByUserId(根据用户 ID 查询角色编码列表)
           UserRoleService:listRoleIdByUserId(根据用户 ID 查询角色 ID 列表)
           UserService:getByUsername(根据用户名查询用户)
			
			
This commit is contained in:
		@@ -30,15 +30,20 @@ import cn.hutool.core.text.StrPool;
 | 
				
			|||||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
 | 
					@NoArgsConstructor(access = AccessLevel.PRIVATE)
 | 
				
			||||||
public class StringConsts implements StrPool {
 | 
					public class StringConsts implements StrPool {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 空字符串
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static final String EMPTY = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 分号
 | 
					     * 分号
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static final String SEMICOLON = ";";
 | 
					    public static final String SEMICOLON = ";";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 空字符串
 | 
					     * 中文逗号
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static final String EMPTY = "";
 | 
					    public static final String CHINESE_COMMA = ",";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 标准日期时间格式
 | 
					     * 标准日期时间格式
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,9 @@ public interface CommonUserService {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 根据 ID 查询昵称
 | 
					     * 根据 ID 查询昵称
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param userId
 | 
					     * @param id
 | 
				
			||||||
     *            用户 ID
 | 
					     *            ID
 | 
				
			||||||
     * @return 昵称
 | 
					     * @return 昵称
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    String getNicknameById(Long userId);
 | 
					    String getNicknameById(Long id);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -157,5 +157,4 @@ public class ExceptionUtils {
 | 
				
			|||||||
         */
 | 
					         */
 | 
				
			||||||
        T get() throws Exception;
 | 
					        T get() throws Exception;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -53,5 +53,5 @@ public class LogProperties {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 脱敏字段
 | 
					     * 脱敏字段
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private List<String> desensitize = new ArrayList<>();
 | 
					    private List<String> desensitizeFields = new ArrayList<>();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -258,7 +258,7 @@ public class LogInterceptor implements HandlerInterceptor {
 | 
				
			|||||||
                return desensitizeDataStr;
 | 
					                return desensitizeDataStr;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (String desensitizeProperty : operationLogProperties.getDesensitize()) {
 | 
					            for (String desensitizeProperty : operationLogProperties.getDesensitizeFields()) {
 | 
				
			||||||
                waitDesensitizeData.computeIfPresent(desensitizeProperty, (k, v) -> ENCRYPT_SYMBOL);
 | 
					                waitDesensitizeData.computeIfPresent(desensitizeProperty, (k, v) -> ENCRYPT_SYMBOL);
 | 
				
			||||||
                waitDesensitizeData.computeIfPresent(desensitizeProperty.toLowerCase(), (k, v) -> ENCRYPT_SYMBOL);
 | 
					                waitDesensitizeData.computeIfPresent(desensitizeProperty.toLowerCase(), (k, v) -> ENCRYPT_SYMBOL);
 | 
				
			||||||
                waitDesensitizeData.computeIfPresent(desensitizeProperty.toUpperCase(), (k, v) -> ENCRYPT_SYMBOL);
 | 
					                waitDesensitizeData.computeIfPresent(desensitizeProperty.toUpperCase(), (k, v) -> ENCRYPT_SYMBOL);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -74,10 +74,10 @@ public class LogServiceImpl implements LogService {
 | 
				
			|||||||
        QueryWrapper<LogDO> queryWrapper = QueryHelper.build(query);
 | 
					        QueryWrapper<LogDO> queryWrapper = QueryHelper.build(query);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 限定查询信息
 | 
					        // 限定查询信息
 | 
				
			||||||
        String[] fieldsName = ReflectUtils.getNonStaticFieldsName(OperationLogVO.class);
 | 
					        String[] fieldNameArr = ReflectUtils.getNonStaticFieldsName(OperationLogVO.class);
 | 
				
			||||||
        List<String> columns = Arrays.stream(fieldsName).map(StrUtil::toUnderlineCase)
 | 
					        List<String> columnNameList = Arrays.stream(fieldNameArr).map(StrUtil::toUnderlineCase)
 | 
				
			||||||
            .filter(n -> !n.endsWith("string")).collect(Collectors.toList());
 | 
					            .filter(n -> !n.endsWith("string")).collect(Collectors.toList());
 | 
				
			||||||
        queryWrapper.select(columns);
 | 
					        queryWrapper.select(columnNameList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 分页查询
 | 
					        // 分页查询
 | 
				
			||||||
        IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper);
 | 
					        IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper);
 | 
				
			||||||
@@ -100,10 +100,10 @@ public class LogServiceImpl implements LogService {
 | 
				
			|||||||
            .like(LogDO::getRequestUrl, SysConsts.LOGOUT_URI));
 | 
					            .like(LogDO::getRequestUrl, SysConsts.LOGOUT_URI));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 限定查询信息
 | 
					        // 限定查询信息
 | 
				
			||||||
        String[] fieldsName = ReflectUtils.getNonStaticFieldsName(LoginLogVO.class);
 | 
					        String[] fieldNameArr = ReflectUtils.getNonStaticFieldsName(LoginLogVO.class);
 | 
				
			||||||
        List<String> columns = Arrays.stream(fieldsName).map(StrUtil::toUnderlineCase)
 | 
					        List<String> columnNameList = Arrays.stream(fieldNameArr).map(StrUtil::toUnderlineCase)
 | 
				
			||||||
            .filter(n -> !n.endsWith("string")).collect(Collectors.toList());
 | 
					            .filter(n -> !n.endsWith("string")).collect(Collectors.toList());
 | 
				
			||||||
        queryWrapper.select(columns);
 | 
					        queryWrapper.select(columnNameList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 分页查询
 | 
					        // 分页查询
 | 
				
			||||||
        IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper);
 | 
					        IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper);
 | 
				
			||||||
@@ -119,10 +119,10 @@ public class LogServiceImpl implements LogService {
 | 
				
			|||||||
        QueryWrapper<LogDO> queryWrapper = QueryHelper.build(query);
 | 
					        QueryWrapper<LogDO> queryWrapper = QueryHelper.build(query);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 限定查询信息
 | 
					        // 限定查询信息
 | 
				
			||||||
        String[] fieldsName = ReflectUtils.getNonStaticFieldsName(SystemLogVO.class);
 | 
					        String[] fieldNameArr = ReflectUtils.getNonStaticFieldsName(SystemLogVO.class);
 | 
				
			||||||
        List<String> columns = Arrays.stream(fieldsName).map(StrUtil::toUnderlineCase)
 | 
					        List<String> columnNameList = Arrays.stream(fieldNameArr).map(StrUtil::toUnderlineCase)
 | 
				
			||||||
            .filter(n -> !n.endsWith("string")).collect(Collectors.toList());
 | 
					            .filter(n -> !n.endsWith("string")).collect(Collectors.toList());
 | 
				
			||||||
        queryWrapper.select(columns);
 | 
					        queryWrapper.select(columnNameList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 分页查询
 | 
					        // 分页查询
 | 
				
			||||||
        IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper);
 | 
					        IPage<LogDO> page = logMapper.selectPage(pageQuery.toPage(), queryWrapper);
 | 
				
			||||||
@@ -134,13 +134,13 @@ public class LogServiceImpl implements LogService {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public SystemLogDetailVO get(Long logId) {
 | 
					    public SystemLogDetailVO get(Long id) {
 | 
				
			||||||
        LogDO logDO = logMapper.selectById(logId);
 | 
					        LogDO logDO = logMapper.selectById(id);
 | 
				
			||||||
        CheckUtils.throwIfNull(logDO, String.format("ID为 [%s] 的日志已不存在", logId));
 | 
					        CheckUtils.throwIfNull(logDO, String.format("ID为 [%s] 的日志已不存在", id));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        SystemLogDetailVO systemLogDetailVO = BeanUtil.copyProperties(logDO, SystemLogDetailVO.class);
 | 
					        SystemLogDetailVO detailVO = BeanUtil.copyProperties(logDO, SystemLogDetailVO.class);
 | 
				
			||||||
        this.fill(systemLogDetailVO);
 | 
					        this.fill(detailVO);
 | 
				
			||||||
        return systemLogDetailVO;
 | 
					        return detailVO;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,7 +33,7 @@ public interface PermissionService {
 | 
				
			|||||||
     *            用户 ID
 | 
					     *            用户 ID
 | 
				
			||||||
     * @return 权限码集合
 | 
					     * @return 权限码集合
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    Set<String> listPermissionsByUserId(Long userId);
 | 
					    Set<String> listPermissionByUserId(Long userId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 根据用户 ID 查询角色编码
 | 
					     * 根据用户 ID 查询角色编码
 | 
				
			||||||
@@ -42,5 +42,5 @@ public interface PermissionService {
 | 
				
			|||||||
     *            用户 ID
 | 
					     *            用户 ID
 | 
				
			||||||
     * @return 角色编码集合
 | 
					     * @return 角色编码集合
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    Set<String> listRoleCodesByUserId(Long userId);
 | 
					    Set<String> listRoleCodeByUserId(Long userId);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,8 +60,8 @@ public class LoginServiceImpl implements LoginService {
 | 
				
			|||||||
        // 登录
 | 
					        // 登录
 | 
				
			||||||
        LoginUser loginUser = BeanUtil.copyProperties(userDO, LoginUser.class);
 | 
					        LoginUser loginUser = BeanUtil.copyProperties(userDO, LoginUser.class);
 | 
				
			||||||
        loginUser.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(loginUser.getDeptId()).getDeptName()));
 | 
					        loginUser.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(loginUser.getDeptId()).getDeptName()));
 | 
				
			||||||
        loginUser.setPermissions(permissionService.listPermissionsByUserId(userId));
 | 
					        loginUser.setPermissions(permissionService.listPermissionByUserId(userId));
 | 
				
			||||||
        loginUser.setRoles(permissionService.listRoleCodesByUserId(userId));
 | 
					        loginUser.setRoles(permissionService.listRoleCodeByUserId(userId));
 | 
				
			||||||
        LoginHelper.login(loginUser);
 | 
					        LoginHelper.login(loginUser);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 返回令牌
 | 
					        // 返回令牌
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -43,17 +43,17 @@ public class PermissionServiceImpl implements PermissionService {
 | 
				
			|||||||
    private final RoleService roleService;
 | 
					    private final RoleService roleService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public Set<String> listPermissionsByUserId(Long userId) {
 | 
					    public Set<String> listPermissionByUserId(Long userId) {
 | 
				
			||||||
        Set<String> roleCodeSet = this.listRoleCodesByUserId(userId);
 | 
					        Set<String> roleCodeSet = this.listRoleCodeByUserId(userId);
 | 
				
			||||||
        // 超级管理员赋予全部权限
 | 
					        // 超级管理员赋予全部权限
 | 
				
			||||||
        if (roleCodeSet.contains(SysConsts.SUPER_ADMIN)) {
 | 
					        if (roleCodeSet.contains(SysConsts.SUPER_ADMIN)) {
 | 
				
			||||||
            return CollUtil.newHashSet(SysConsts.ALL_PERMISSION);
 | 
					            return CollUtil.newHashSet(SysConsts.ALL_PERMISSION);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return menuService.listPermissionsByUserId(userId);
 | 
					        return menuService.listPermissionByUserId(userId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public Set<String> listRoleCodesByUserId(Long userId) {
 | 
					    public Set<String> listRoleCodeByUserId(Long userId) {
 | 
				
			||||||
        return roleService.listRoleCodesByUserId(userId);
 | 
					        return roleService.listRoleCodeByUserId(userId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,5 +38,5 @@ public interface MenuMapper extends BaseMapper<MenuDO> {
 | 
				
			|||||||
     *            用户 ID
 | 
					     *            用户 ID
 | 
				
			||||||
     * @return 权限码集合
 | 
					     * @return 权限码集合
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    Set<String> selectPermissionsByUserId(@Param("userId") Long userId);
 | 
					    Set<String> selectPermissionByUserId(@Param("userId") Long userId);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -40,5 +40,5 @@ public interface RoleDeptMapper extends BaseMapper<RoleDeptDO> {
 | 
				
			|||||||
     * @return 部门 ID 列表
 | 
					     * @return 部门 ID 列表
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @Select("SELECT `dept_id` FROM `sys_role_dept` WHERE `role_id` = #{roleId}")
 | 
					    @Select("SELECT `dept_id` FROM `sys_role_dept` WHERE `role_id` = #{roleId}")
 | 
				
			||||||
    List<Long> selectDeptIdsByRoleId(@Param("roleId") Long roleId);
 | 
					    List<Long> selectDeptIdByRoleId(@Param("roleId") Long roleId);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,5 +36,5 @@ public interface RoleMenuMapper extends BaseMapper<RoleMenuDO> {
 | 
				
			|||||||
     *            角色 ID 列表
 | 
					     *            角色 ID 列表
 | 
				
			||||||
     * @return 菜单 ID 列表
 | 
					     * @return 菜单 ID 列表
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    List<Long> selectMenuIdsByRoleIds(List<Long> roleIds);
 | 
					    List<Long> selectMenuIdByRoleIds(List<Long> roleIds);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -40,5 +40,5 @@ public interface UserRoleMapper extends BaseMapper<UserRoleDO> {
 | 
				
			|||||||
     * @return 角色 ID 列表
 | 
					     * @return 角色 ID 列表
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @Select("SELECT `role_id` FROM `sys_user_role` WHERE `user_id` = #{userId}")
 | 
					    @Select("SELECT `role_id` FROM `sys_user_role` WHERE `user_id` = #{userId}")
 | 
				
			||||||
    List<Long> selectRoleIdsByUserId(@Param("userId") Long userId);
 | 
					    List<Long> selectRoleIdByUserId(@Param("userId") Long userId);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,5 +38,5 @@ public interface MenuService extends BaseService<MenuVO, MenuVO, MenuQuery, Menu
 | 
				
			|||||||
     *            用户 ID
 | 
					     *            用户 ID
 | 
				
			||||||
     * @return 权限码集合
 | 
					     * @return 权限码集合
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    Set<String> listPermissionsByUserId(Long userId);
 | 
					    Set<String> listPermissionByUserId(Long userId);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,13 +44,13 @@ public interface RoleService extends BaseService<RoleVO, RoleDetailVO, RoleQuery
 | 
				
			|||||||
    List<LabelValueVO<Long>> buildDict(List<RoleVO> list);
 | 
					    List<LabelValueVO<Long>> buildDict(List<RoleVO> list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 根据角色 ID 列表查询
 | 
					     * 根据 ID 列表查询
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param roleIds
 | 
					     * @param ids
 | 
				
			||||||
     *            角色 ID 列表
 | 
					     *            ID 列表
 | 
				
			||||||
     * @return 角色名称列表
 | 
					     * @return 名称列表
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    List<String> listRoleNamesByRoleIds(List<Long> roleIds);
 | 
					    List<String> listNameByIds(List<Long> ids);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 根据用户 ID 查询角色编码
 | 
					     * 根据用户 ID 查询角色编码
 | 
				
			||||||
@@ -59,5 +59,5 @@ public interface RoleService extends BaseService<RoleVO, RoleDetailVO, RoleQuery
 | 
				
			|||||||
     *            用户 ID
 | 
					     *            用户 ID
 | 
				
			||||||
     * @return 角色编码集合
 | 
					     * @return 角色编码集合
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    Set<String> listRoleCodesByUserId(Long userId);
 | 
					    Set<String> listRoleCodeByUserId(Long userId);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -52,5 +52,5 @@ public interface UserRoleService {
 | 
				
			|||||||
     *            用户 ID
 | 
					     *            用户 ID
 | 
				
			||||||
     * @return 角色 ID 列表
 | 
					     * @return 角色 ID 列表
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    List<Long> listRoleIdsByUserId(Long userId);
 | 
					    List<Long> listRoleIdByUserId(Long userId);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -41,11 +41,11 @@ public interface UserService extends BaseService<UserVO, UserDetailVO, UserQuery
 | 
				
			|||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param avatar
 | 
					     * @param avatar
 | 
				
			||||||
     *            头像文件
 | 
					     *            头像文件
 | 
				
			||||||
     * @param userId
 | 
					     * @param id
 | 
				
			||||||
     *            用户 ID
 | 
					     *            ID
 | 
				
			||||||
     * @return 新头像路径
 | 
					     * @return 新头像路径
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    String uploadAvatar(MultipartFile avatar, Long userId);
 | 
					    String uploadAvatar(MultipartFile avatar, Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 修改密码
 | 
					     * 修改密码
 | 
				
			||||||
@@ -54,10 +54,10 @@ public interface UserService extends BaseService<UserVO, UserDetailVO, UserQuery
 | 
				
			|||||||
     *            当前密码
 | 
					     *            当前密码
 | 
				
			||||||
     * @param newPassword
 | 
					     * @param newPassword
 | 
				
			||||||
     *            新密码
 | 
					     *            新密码
 | 
				
			||||||
     * @param userId
 | 
					     * @param id
 | 
				
			||||||
     *            用户 ID
 | 
					     *            ID
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    void updatePassword(String oldPassword, String newPassword, Long userId);
 | 
					    void updatePassword(String oldPassword, String newPassword, Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 修改邮箱
 | 
					     * 修改邮箱
 | 
				
			||||||
@@ -66,28 +66,28 @@ public interface UserService extends BaseService<UserVO, UserDetailVO, UserQuery
 | 
				
			|||||||
     *            新邮箱
 | 
					     *            新邮箱
 | 
				
			||||||
     * @param currentPassword
 | 
					     * @param currentPassword
 | 
				
			||||||
     *            当前密码
 | 
					     *            当前密码
 | 
				
			||||||
     * @param userId
 | 
					     * @param id
 | 
				
			||||||
     *            用户ID
 | 
					     *            ID
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    void updateEmail(String newEmail, String currentPassword, Long userId);
 | 
					    void updateEmail(String newEmail, String currentPassword, Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 重置密码
 | 
					     * 重置密码
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param userId
 | 
					     * @param id
 | 
				
			||||||
     *            用户 ID
 | 
					     *            ID
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    void resetPassword(Long userId);
 | 
					    void resetPassword(Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 修改角色
 | 
					     * 修改角色
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param request
 | 
					     * @param request
 | 
				
			||||||
     *            修改信息
 | 
					     *            修改信息
 | 
				
			||||||
     * @param userId
 | 
					     * @param id
 | 
				
			||||||
     *            用户 ID
 | 
					     *            ID
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    void updateUserRole(UpdateUserRoleRequest request, Long userId);
 | 
					    void updateRole(UpdateUserRoleRequest request, Long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 根据用户名查询
 | 
					     * 根据用户名查询
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -73,8 +73,8 @@ public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuVO,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public Set<String> listPermissionsByUserId(Long userId) {
 | 
					    public Set<String> listPermissionByUserId(Long userId) {
 | 
				
			||||||
        return baseMapper.selectPermissionsByUserId(userId);
 | 
					        return baseMapper.selectPermissionByUserId(userId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -56,6 +56,6 @@ public class RoleDeptServiceImpl implements RoleDeptService {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public List<Long> listDeptIdByRoleId(Long roleId) {
 | 
					    public List<Long> listDeptIdByRoleId(Long roleId) {
 | 
				
			||||||
        return roleDeptMapper.selectDeptIdsByRoleId(roleId);
 | 
					        return roleDeptMapper.selectDeptIdByRoleId(roleId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,6 +60,6 @@ public class RoleMenuServiceImpl implements RoleMenuService {
 | 
				
			|||||||
        if (CollUtil.isEmpty(roleIds)) {
 | 
					        if (CollUtil.isEmpty(roleIds)) {
 | 
				
			||||||
            return new ArrayList<>(0);
 | 
					            return new ArrayList<>(0);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return roleMenuMapper.selectMenuIdsByRoleIds(roleIds);
 | 
					        return roleMenuMapper.selectMenuIdByRoleIds(roleIds);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -130,15 +130,14 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public List<String> listRoleNamesByRoleIds(List<Long> roleIds) {
 | 
					    public List<String> listNameByIds(List<Long> ids) {
 | 
				
			||||||
        List<RoleDO> roleList =
 | 
					        List<RoleDO> roleList = baseMapper.lambdaQuery().select(RoleDO::getRoleName).in(RoleDO::getRoleId, ids).list();
 | 
				
			||||||
            baseMapper.lambdaQuery().select(RoleDO::getRoleName).in(RoleDO::getRoleId, roleIds).list();
 | 
					 | 
				
			||||||
        return roleList.stream().map(RoleDO::getRoleName).collect(Collectors.toList());
 | 
					        return roleList.stream().map(RoleDO::getRoleName).collect(Collectors.toList());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public Set<String> listRoleCodesByUserId(Long userId) {
 | 
					    public Set<String> listRoleCodeByUserId(Long userId) {
 | 
				
			||||||
        List<Long> roleIds = userRoleService.listRoleIdsByUserId(userId);
 | 
					        List<Long> roleIds = userRoleService.listRoleIdByUserId(userId);
 | 
				
			||||||
        List<RoleDO> roleList =
 | 
					        List<RoleDO> roleList =
 | 
				
			||||||
            baseMapper.lambdaQuery().select(RoleDO::getRoleCode).in(RoleDO::getRoleId, roleIds).list();
 | 
					            baseMapper.lambdaQuery().select(RoleDO::getRoleCode).in(RoleDO::getRoleId, roleIds).list();
 | 
				
			||||||
        return roleList.stream().map(RoleDO::getRoleCode).collect(Collectors.toSet());
 | 
					        return roleList.stream().map(RoleDO::getRoleCode).collect(Collectors.toSet());
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,7 +60,7 @@ public class UserRoleServiceImpl implements UserRoleService {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public List<Long> listRoleIdsByUserId(Long userId) {
 | 
					    public List<Long> listRoleIdByUserId(Long userId) {
 | 
				
			||||||
        return userRoleMapper.selectRoleIdsByUserId(userId);
 | 
					        return userRoleMapper.selectRoleIdByUserId(userId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -35,6 +35,7 @@ import cn.hutool.core.util.StrUtil;
 | 
				
			|||||||
import top.charles7c.cnadmin.common.base.BaseServiceImpl;
 | 
					import top.charles7c.cnadmin.common.base.BaseServiceImpl;
 | 
				
			||||||
import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties;
 | 
					import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties;
 | 
				
			||||||
import top.charles7c.cnadmin.common.constant.FileConsts;
 | 
					import top.charles7c.cnadmin.common.constant.FileConsts;
 | 
				
			||||||
 | 
					import top.charles7c.cnadmin.common.constant.StringConsts;
 | 
				
			||||||
import top.charles7c.cnadmin.common.constant.SysConsts;
 | 
					import top.charles7c.cnadmin.common.constant.SysConsts;
 | 
				
			||||||
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
					import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
 | 
				
			||||||
import top.charles7c.cnadmin.common.model.dto.LoginUser;
 | 
					import top.charles7c.cnadmin.common.model.dto.LoginUser;
 | 
				
			||||||
@@ -108,22 +109,22 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
 | 
				
			|||||||
        if (detailObj instanceof UserDetailVO) {
 | 
					        if (detailObj instanceof UserDetailVO) {
 | 
				
			||||||
            UserDetailVO detailVO = (UserDetailVO)detailObj;
 | 
					            UserDetailVO detailVO = (UserDetailVO)detailObj;
 | 
				
			||||||
            detailVO.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(detailVO.getDeptId()).getDeptName()));
 | 
					            detailVO.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(detailVO.getDeptId()).getDeptName()));
 | 
				
			||||||
            List<Long> roleIds = userRoleService.listRoleIdsByUserId(detailVO.getUserId());
 | 
					            List<Long> roleIdList = userRoleService.listRoleIdByUserId(detailVO.getUserId());
 | 
				
			||||||
            detailVO.setRoleIds(roleIds);
 | 
					            detailVO.setRoleIds(roleIdList);
 | 
				
			||||||
            detailVO.setRoleNames(String.join(",", roleService.listRoleNamesByRoleIds(roleIds)));
 | 
					            detailVO.setRoleNames(String.join(StringConsts.CHINESE_COMMA, roleService.listNameByIds(roleIdList)));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    @Transactional(rollbackFor = Exception.class)
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
    public String uploadAvatar(MultipartFile avatarFile, Long userId) {
 | 
					    public String uploadAvatar(MultipartFile avatarFile, Long id) {
 | 
				
			||||||
        Long avatarMaxSizeInMb = localStorageProperties.getAvatarMaxSizeInMb();
 | 
					        Long avatarMaxSizeInMb = localStorageProperties.getAvatarMaxSizeInMb();
 | 
				
			||||||
        CheckUtils.throwIf(() -> avatarFile.getSize() > avatarMaxSizeInMb * 1024 * 1024,
 | 
					        CheckUtils.throwIf(() -> avatarFile.getSize() > avatarMaxSizeInMb * 1024 * 1024,
 | 
				
			||||||
            String.format("请上传小于 %s MB 的图片", avatarMaxSizeInMb));
 | 
					            String.format("请上传小于 %s MB 的图片", avatarMaxSizeInMb));
 | 
				
			||||||
        String avatarImageType = FileNameUtil.extName(avatarFile.getOriginalFilename());
 | 
					        String avatarImageType = FileNameUtil.extName(avatarFile.getOriginalFilename());
 | 
				
			||||||
        String[] avatarSupportImgTypes = FileConsts.AVATAR_SUPPORTED_IMG_TYPES;
 | 
					        String[] avatarSupportImgTypes = FileConsts.AVATAR_SUPPORTED_IMG_TYPES;
 | 
				
			||||||
        CheckUtils.throwIf(() -> !StrUtil.equalsAnyIgnoreCase(avatarImageType, avatarSupportImgTypes),
 | 
					        CheckUtils.throwIf(() -> !StrUtil.equalsAnyIgnoreCase(avatarImageType, avatarSupportImgTypes),
 | 
				
			||||||
            String.format("头像仅支持 %s 格式的图片", String.join(",", avatarSupportImgTypes)));
 | 
					            String.format("头像仅支持 %s 格式的图片", String.join(StringConsts.CHINESE_COMMA, avatarSupportImgTypes)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 上传新头像
 | 
					        // 上传新头像
 | 
				
			||||||
        String avatarPath = localStorageProperties.getPath().getAvatar();
 | 
					        String avatarPath = localStorageProperties.getPath().getAvatar();
 | 
				
			||||||
@@ -133,7 +134,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // 更新用户头像
 | 
					        // 更新用户头像
 | 
				
			||||||
        String newAvatar = newAvatarFile.getName();
 | 
					        String newAvatar = newAvatarFile.getName();
 | 
				
			||||||
        baseMapper.lambdaUpdate().set(UserDO::getAvatar, newAvatar).eq(UserDO::getUserId, userId).update();
 | 
					        baseMapper.lambdaUpdate().set(UserDO::getAvatar, newAvatar).eq(UserDO::getUserId, id).update();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 删除原头像
 | 
					        // 删除原头像
 | 
				
			||||||
        LoginUser loginUser = LoginHelper.getLoginUser();
 | 
					        LoginUser loginUser = LoginHelper.getLoginUser();
 | 
				
			||||||
@@ -150,15 +151,15 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    @Transactional(rollbackFor = Exception.class)
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
    public void updatePassword(String oldPassword, String newPassword, Long userId) {
 | 
					    public void updatePassword(String oldPassword, String newPassword, Long id) {
 | 
				
			||||||
        CheckUtils.throwIfEqual(newPassword, oldPassword, "新密码不能与当前密码相同");
 | 
					        CheckUtils.throwIfEqual(newPassword, oldPassword, "新密码不能与当前密码相同");
 | 
				
			||||||
        UserDO userDO = super.getById(userId);
 | 
					        UserDO userDO = super.getById(id);
 | 
				
			||||||
        CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(oldPassword, userId.toString()), userDO.getPassword(), "当前密码错误");
 | 
					        CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(oldPassword, id.toString()), userDO.getPassword(), "当前密码错误");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 更新密码和密码重置时间
 | 
					        // 更新密码和密码重置时间
 | 
				
			||||||
        LocalDateTime now = LocalDateTime.now();
 | 
					        LocalDateTime now = LocalDateTime.now();
 | 
				
			||||||
        baseMapper.lambdaUpdate().set(UserDO::getPassword, SecureUtils.md5Salt(newPassword, userId.toString()))
 | 
					        baseMapper.lambdaUpdate().set(UserDO::getPassword, SecureUtils.md5Salt(newPassword, id.toString()))
 | 
				
			||||||
            .set(UserDO::getPwdResetTime, now).eq(UserDO::getUserId, userId).update();
 | 
					            .set(UserDO::getPwdResetTime, now).eq(UserDO::getUserId, id).update();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 更新登录用户信息
 | 
					        // 更新登录用户信息
 | 
				
			||||||
        LoginUser loginUser = LoginHelper.getLoginUser();
 | 
					        LoginUser loginUser = LoginHelper.getLoginUser();
 | 
				
			||||||
@@ -168,16 +169,15 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    @Transactional(rollbackFor = Exception.class)
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
    public void updateEmail(String newEmail, String currentPassword, Long userId) {
 | 
					    public void updateEmail(String newEmail, String currentPassword, Long id) {
 | 
				
			||||||
        UserDO userDO = super.getById(userId);
 | 
					        UserDO userDO = super.getById(id);
 | 
				
			||||||
        CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(currentPassword, userId.toString()), userDO.getPassword(),
 | 
					        CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(currentPassword, id.toString()), userDO.getPassword(), "当前密码错误");
 | 
				
			||||||
            "当前密码错误");
 | 
					 | 
				
			||||||
        Long count = baseMapper.lambdaQuery().eq(UserDO::getEmail, newEmail).count();
 | 
					        Long count = baseMapper.lambdaQuery().eq(UserDO::getEmail, newEmail).count();
 | 
				
			||||||
        CheckUtils.throwIf(() -> count > 0, "邮箱已绑定其他账号,请更换其他邮箱");
 | 
					        CheckUtils.throwIf(() -> count > 0, "邮箱已绑定其他账号,请更换其他邮箱");
 | 
				
			||||||
        CheckUtils.throwIfEqual(newEmail, userDO.getEmail(), "新邮箱不能与当前邮箱相同");
 | 
					        CheckUtils.throwIfEqual(newEmail, userDO.getEmail(), "新邮箱不能与当前邮箱相同");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 更新邮箱
 | 
					        // 更新邮箱
 | 
				
			||||||
        baseMapper.lambdaUpdate().set(UserDO::getEmail, newEmail).eq(UserDO::getUserId, userId).update();
 | 
					        baseMapper.lambdaUpdate().set(UserDO::getEmail, newEmail).eq(UserDO::getUserId, id).update();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 更新登录用户信息
 | 
					        // 更新登录用户信息
 | 
				
			||||||
        LoginUser loginUser = LoginHelper.getLoginUser();
 | 
					        LoginUser loginUser = LoginHelper.getLoginUser();
 | 
				
			||||||
@@ -186,18 +186,18 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void resetPassword(Long userId) {
 | 
					    public void resetPassword(Long id) {
 | 
				
			||||||
        UserDO userDO = super.getById(userId);
 | 
					        UserDO userDO = super.getById(id);
 | 
				
			||||||
        userDO.setPassword(SecureUtils.md5Salt(SysConsts.DEFAULT_PASSWORD, userId.toString()));
 | 
					        userDO.setPassword(SecureUtils.md5Salt(SysConsts.DEFAULT_PASSWORD, id.toString()));
 | 
				
			||||||
        userDO.setPwdResetTime(LocalDateTime.now());
 | 
					        userDO.setPwdResetTime(LocalDateTime.now());
 | 
				
			||||||
        baseMapper.updateById(userDO);
 | 
					        baseMapper.updateById(userDO);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void updateUserRole(UpdateUserRoleRequest request, Long userId) {
 | 
					    public void updateRole(UpdateUserRoleRequest request, Long id) {
 | 
				
			||||||
        super.getById(userId);
 | 
					        super.getById(id);
 | 
				
			||||||
        // 保存用户和角色关联
 | 
					        // 保存用户和角色关联
 | 
				
			||||||
        userRoleService.save(request.getRoleIds(), userId);
 | 
					        userRoleService.save(request.getRoleIds(), id);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
@@ -211,8 +211,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public String getNicknameById(Long userId) {
 | 
					    public String getNicknameById(Long id) {
 | 
				
			||||||
        return super.getById(userId).getNickname();
 | 
					        return super.getById(id).getNickname();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8" ?>
 | 
					<?xml version="1.0" encoding="UTF-8" ?>
 | 
				
			||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 | 
					<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 | 
				
			||||||
<mapper namespace="top.charles7c.cnadmin.system.mapper.MenuMapper">
 | 
					<mapper namespace="top.charles7c.cnadmin.system.mapper.MenuMapper">
 | 
				
			||||||
    <select id="selectPermissionsByUserId" resultType="java.lang.String">
 | 
					    <select id="selectPermissionByUserId" resultType="java.lang.String">
 | 
				
			||||||
        SELECT DISTINCT m.`permission`
 | 
					        SELECT DISTINCT m.`permission`
 | 
				
			||||||
        FROM `sys_menu` m
 | 
					        FROM `sys_menu` m
 | 
				
			||||||
                 LEFT JOIN `sys_role_menu` rm ON rm.`menu_id` = m.`menu_id`
 | 
					                 LEFT JOIN `sys_role_menu` rm ON rm.`menu_id` = m.`menu_id`
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8" ?>
 | 
					<?xml version="1.0" encoding="UTF-8" ?>
 | 
				
			||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 | 
					<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 | 
				
			||||||
<mapper namespace="top.charles7c.cnadmin.system.mapper.RoleMenuMapper">
 | 
					<mapper namespace="top.charles7c.cnadmin.system.mapper.RoleMenuMapper">
 | 
				
			||||||
    <select id="selectMenuIdsByRoleIds" resultType="java.lang.Long">
 | 
					    <select id="selectMenuIdByRoleIds" resultType="java.lang.Long">
 | 
				
			||||||
        SELECT
 | 
					        SELECT
 | 
				
			||||||
            `menu_id`
 | 
					            `menu_id`
 | 
				
			||||||
        FROM `sys_role_menu`
 | 
					        FROM `sys_role_menu`
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -81,8 +81,8 @@ public class CommonController {
 | 
				
			|||||||
    @GetMapping("/dict/role")
 | 
					    @GetMapping("/dict/role")
 | 
				
			||||||
    public R<List<LabelValueVO<Long>>> listRoleDict(@Validated RoleQuery query, @Validated SortQuery sortQuery) {
 | 
					    public R<List<LabelValueVO<Long>>> listRoleDict(@Validated RoleQuery query, @Validated SortQuery sortQuery) {
 | 
				
			||||||
        List<RoleVO> list = roleService.list(query, sortQuery);
 | 
					        List<RoleVO> list = roleService.list(query, sortQuery);
 | 
				
			||||||
        List<LabelValueVO<Long>> dictList = roleService.buildDict(list);
 | 
					        List<LabelValueVO<Long>> labelValueVOList = roleService.buildDict(list);
 | 
				
			||||||
        return R.ok(dictList);
 | 
					        return R.ok(labelValueVOList);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Operation(summary = "查询枚举字典", description = "查询枚举字典列表")
 | 
					    @Operation(summary = "查询枚举字典", description = "查询枚举字典列表")
 | 
				
			||||||
@@ -98,10 +98,10 @@ public class CommonController {
 | 
				
			|||||||
        // 转换枚举为字典列表
 | 
					        // 转换枚举为字典列表
 | 
				
			||||||
        Class<?> enumClass = first.get();
 | 
					        Class<?> enumClass = first.get();
 | 
				
			||||||
        Object[] enumConstants = enumClass.getEnumConstants();
 | 
					        Object[] enumConstants = enumClass.getEnumConstants();
 | 
				
			||||||
        List<LabelValueVO> dictList = Arrays.stream(enumConstants).map(e -> {
 | 
					        List<LabelValueVO> labelValueVOList = Arrays.stream(enumConstants).map(e -> {
 | 
				
			||||||
            BaseEnum<Integer, String> baseEnum = (BaseEnum<Integer, String>)e;
 | 
					            BaseEnum<Integer, String> baseEnum = (BaseEnum<Integer, String>)e;
 | 
				
			||||||
            return new LabelValueVO(baseEnum.getDescription(), baseEnum.getValue());
 | 
					            return new LabelValueVO<>(baseEnum.getDescription(), baseEnum.getValue());
 | 
				
			||||||
        }).collect(Collectors.toList());
 | 
					        }).collect(Collectors.toList());
 | 
				
			||||||
        return R.ok(dictList);
 | 
					        return R.ok(labelValueVOList);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -80,9 +80,9 @@ public class LogController {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Log(module = "系统日志")
 | 
					    @Log(module = "系统日志")
 | 
				
			||||||
    @Operation(summary = "查看系统日志详情")
 | 
					    @Operation(summary = "查看系统日志详情")
 | 
				
			||||||
    @GetMapping("/system/{logId}")
 | 
					    @GetMapping("/system/{id}")
 | 
				
			||||||
    public R<SystemLogDetailVO> get(@PathVariable Long logId) {
 | 
					    public R<SystemLogDetailVO> get(@PathVariable Long id) {
 | 
				
			||||||
        SystemLogDetailVO detailVO = logService.get(logId);
 | 
					        SystemLogDetailVO detailVO = logService.get(id);
 | 
				
			||||||
        return R.ok(detailVO);
 | 
					        return R.ok(detailVO);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,17 +60,17 @@ public class UserController extends BaseController<UserService, UserVO, UserDeta
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Operation(summary = "重置密码", description = "重置用户登录密码为默认密码")
 | 
					    @Operation(summary = "重置密码", description = "重置用户登录密码为默认密码")
 | 
				
			||||||
    @SaCheckPermission("system:user:password:reset")
 | 
					    @SaCheckPermission("system:user:password:reset")
 | 
				
			||||||
    @PatchMapping("/{userId}/password")
 | 
					    @PatchMapping("/{id}/password")
 | 
				
			||||||
    public R resetPassword(@PathVariable Long userId) {
 | 
					    public R resetPassword(@PathVariable Long id) {
 | 
				
			||||||
        baseService.resetPassword(userId);
 | 
					        baseService.resetPassword(id);
 | 
				
			||||||
        return R.ok(String.format("重置密码成功,请牢记默认密码:%s", SysConsts.DEFAULT_PASSWORD));
 | 
					        return R.ok(String.format("重置密码成功,请牢记默认密码:%s", SysConsts.DEFAULT_PASSWORD));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Operation(summary = "分配角色", description = "为用户新增或移除角色")
 | 
					    @Operation(summary = "分配角色", description = "为用户新增或移除角色")
 | 
				
			||||||
    @SaCheckPermission("system:user:role:update")
 | 
					    @SaCheckPermission("system:user:role:update")
 | 
				
			||||||
    @PatchMapping("/{userId}/role")
 | 
					    @PatchMapping("/{id}/role")
 | 
				
			||||||
    public R updateUserRole(@PathVariable Long userId, @Validated @RequestBody UpdateUserRoleRequest request) {
 | 
					    public R updateRole(@PathVariable Long id, @Validated @RequestBody UpdateUserRoleRequest request) {
 | 
				
			||||||
        baseService.updateUserRole(request, userId);
 | 
					        baseService.updateRole(request, id);
 | 
				
			||||||
        return R.ok("分配成功");
 | 
					        return R.ok("分配成功");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,7 +41,7 @@ logging:
 | 
				
			|||||||
    #excludeMethods:
 | 
					    #excludeMethods:
 | 
				
			||||||
    #  - GET
 | 
					    #  - GET
 | 
				
			||||||
    # 脱敏字段
 | 
					    # 脱敏字段
 | 
				
			||||||
    desensitize:
 | 
					    desensitizeFields:
 | 
				
			||||||
      - password
 | 
					      - password
 | 
				
			||||||
      - Authorization
 | 
					      - Authorization
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user