优化:基于阿里巴巴 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:
2023-03-04 23:03:33 +08:00
parent 25f6e3402b
commit 47fa1422bb
29 changed files with 114 additions and 111 deletions

View File

@@ -33,7 +33,7 @@ public interface PermissionService {
* 用户 ID
* @return 权限码集合
*/
Set<String> listPermissionsByUserId(Long userId);
Set<String> listPermissionByUserId(Long userId);
/**
* 根据用户 ID 查询角色编码
@@ -42,5 +42,5 @@ public interface PermissionService {
* 用户 ID
* @return 角色编码集合
*/
Set<String> listRoleCodesByUserId(Long userId);
Set<String> listRoleCodeByUserId(Long userId);
}

View File

@@ -60,8 +60,8 @@ public class LoginServiceImpl implements LoginService {
// 登录
LoginUser loginUser = BeanUtil.copyProperties(userDO, LoginUser.class);
loginUser.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(loginUser.getDeptId()).getDeptName()));
loginUser.setPermissions(permissionService.listPermissionsByUserId(userId));
loginUser.setRoles(permissionService.listRoleCodesByUserId(userId));
loginUser.setPermissions(permissionService.listPermissionByUserId(userId));
loginUser.setRoles(permissionService.listRoleCodeByUserId(userId));
LoginHelper.login(loginUser);
// 返回令牌

View File

@@ -43,17 +43,17 @@ public class PermissionServiceImpl implements PermissionService {
private final RoleService roleService;
@Override
public Set<String> listPermissionsByUserId(Long userId) {
Set<String> roleCodeSet = this.listRoleCodesByUserId(userId);
public Set<String> listPermissionByUserId(Long userId) {
Set<String> roleCodeSet = this.listRoleCodeByUserId(userId);
// 超级管理员赋予全部权限
if (roleCodeSet.contains(SysConsts.SUPER_ADMIN)) {
return CollUtil.newHashSet(SysConsts.ALL_PERMISSION);
}
return menuService.listPermissionsByUserId(userId);
return menuService.listPermissionByUserId(userId);
}
@Override
public Set<String> listRoleCodesByUserId(Long userId) {
return roleService.listRoleCodesByUserId(userId);
public Set<String> listRoleCodeByUserId(Long userId) {
return roleService.listRoleCodeByUserId(userId);
}
}

View File

@@ -38,5 +38,5 @@ public interface MenuMapper extends BaseMapper<MenuDO> {
* 用户 ID
* @return 权限码集合
*/
Set<String> selectPermissionsByUserId(@Param("userId") Long userId);
Set<String> selectPermissionByUserId(@Param("userId") Long userId);
}

View File

@@ -40,5 +40,5 @@ public interface RoleDeptMapper extends BaseMapper<RoleDeptDO> {
* @return 部门 ID 列表
*/
@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);
}

View File

@@ -36,5 +36,5 @@ public interface RoleMenuMapper extends BaseMapper<RoleMenuDO> {
* 角色 ID 列表
* @return 菜单 ID 列表
*/
List<Long> selectMenuIdsByRoleIds(List<Long> roleIds);
List<Long> selectMenuIdByRoleIds(List<Long> roleIds);
}

View File

@@ -40,5 +40,5 @@ public interface UserRoleMapper extends BaseMapper<UserRoleDO> {
* @return 角色 ID 列表
*/
@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);
}

View File

@@ -38,5 +38,5 @@ public interface MenuService extends BaseService<MenuVO, MenuVO, MenuQuery, Menu
* 用户 ID
* @return 权限码集合
*/
Set<String> listPermissionsByUserId(Long userId);
Set<String> listPermissionByUserId(Long userId);
}

View File

@@ -44,13 +44,13 @@ public interface RoleService extends BaseService<RoleVO, RoleDetailVO, RoleQuery
List<LabelValueVO<Long>> buildDict(List<RoleVO> list);
/**
* 根据角色 ID 列表查询
* 根据 ID 列表查询
*
* @param roleIds
* 角色 ID 列表
* @return 角色名称列表
* @param ids
* ID 列表
* @return 名称列表
*/
List<String> listRoleNamesByRoleIds(List<Long> roleIds);
List<String> listNameByIds(List<Long> ids);
/**
* 根据用户 ID 查询角色编码
@@ -59,5 +59,5 @@ public interface RoleService extends BaseService<RoleVO, RoleDetailVO, RoleQuery
* 用户 ID
* @return 角色编码集合
*/
Set<String> listRoleCodesByUserId(Long userId);
Set<String> listRoleCodeByUserId(Long userId);
}

View File

@@ -52,5 +52,5 @@ public interface UserRoleService {
* 用户 ID
* @return 角色 ID 列表
*/
List<Long> listRoleIdsByUserId(Long userId);
List<Long> listRoleIdByUserId(Long userId);
}

View File

@@ -41,11 +41,11 @@ public interface UserService extends BaseService<UserVO, UserDetailVO, UserQuery
*
* @param avatar
* 头像文件
* @param userId
* 用户 ID
* @param id
* ID
* @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 userId
* 用户 ID
* @param 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 userId
* 用户ID
* @param id
* ID
*/
void updateEmail(String newEmail, String currentPassword, Long userId);
void updateEmail(String newEmail, String currentPassword, Long id);
/**
* 重置密码
*
* @param userId
* 用户 ID
* @param id
* ID
*/
void resetPassword(Long userId);
void resetPassword(Long id);
/**
* 修改角色
*
* @param request
* 修改信息
* @param userId
* 用户 ID
* @param id
* ID
*/
void updateUserRole(UpdateUserRoleRequest request, Long userId);
void updateRole(UpdateUserRoleRequest request, Long id);
/**
* 根据用户名查询

View File

@@ -73,8 +73,8 @@ public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuVO,
}
@Override
public Set<String> listPermissionsByUserId(Long userId) {
return baseMapper.selectPermissionsByUserId(userId);
public Set<String> listPermissionByUserId(Long userId) {
return baseMapper.selectPermissionByUserId(userId);
}
/**

View File

@@ -56,6 +56,6 @@ public class RoleDeptServiceImpl implements RoleDeptService {
@Override
public List<Long> listDeptIdByRoleId(Long roleId) {
return roleDeptMapper.selectDeptIdsByRoleId(roleId);
return roleDeptMapper.selectDeptIdByRoleId(roleId);
}
}

View File

@@ -60,6 +60,6 @@ public class RoleMenuServiceImpl implements RoleMenuService {
if (CollUtil.isEmpty(roleIds)) {
return new ArrayList<>(0);
}
return roleMenuMapper.selectMenuIdsByRoleIds(roleIds);
return roleMenuMapper.selectMenuIdByRoleIds(roleIds);
}
}

View File

@@ -130,15 +130,14 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO,
}
@Override
public List<String> listRoleNamesByRoleIds(List<Long> roleIds) {
List<RoleDO> roleList =
baseMapper.lambdaQuery().select(RoleDO::getRoleName).in(RoleDO::getRoleId, roleIds).list();
public List<String> listNameByIds(List<Long> ids) {
List<RoleDO> roleList = baseMapper.lambdaQuery().select(RoleDO::getRoleName).in(RoleDO::getRoleId, ids).list();
return roleList.stream().map(RoleDO::getRoleName).collect(Collectors.toList());
}
@Override
public Set<String> listRoleCodesByUserId(Long userId) {
List<Long> roleIds = userRoleService.listRoleIdsByUserId(userId);
public Set<String> listRoleCodeByUserId(Long userId) {
List<Long> roleIds = userRoleService.listRoleIdByUserId(userId);
List<RoleDO> roleList =
baseMapper.lambdaQuery().select(RoleDO::getRoleCode).in(RoleDO::getRoleId, roleIds).list();
return roleList.stream().map(RoleDO::getRoleCode).collect(Collectors.toSet());

View File

@@ -60,7 +60,7 @@ public class UserRoleServiceImpl implements UserRoleService {
}
@Override
public List<Long> listRoleIdsByUserId(Long userId) {
return userRoleMapper.selectRoleIdsByUserId(userId);
public List<Long> listRoleIdByUserId(Long userId) {
return userRoleMapper.selectRoleIdByUserId(userId);
}
}

View File

@@ -35,6 +35,7 @@ import cn.hutool.core.util.StrUtil;
import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties;
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.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.model.dto.LoginUser;
@@ -108,22 +109,22 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
if (detailObj instanceof UserDetailVO) {
UserDetailVO detailVO = (UserDetailVO)detailObj;
detailVO.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(detailVO.getDeptId()).getDeptName()));
List<Long> roleIds = userRoleService.listRoleIdsByUserId(detailVO.getUserId());
detailVO.setRoleIds(roleIds);
detailVO.setRoleNames(String.join(",", roleService.listRoleNamesByRoleIds(roleIds)));
List<Long> roleIdList = userRoleService.listRoleIdByUserId(detailVO.getUserId());
detailVO.setRoleIds(roleIdList);
detailVO.setRoleNames(String.join(StringConsts.CHINESE_COMMA, roleService.listNameByIds(roleIdList)));
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public String uploadAvatar(MultipartFile avatarFile, Long userId) {
public String uploadAvatar(MultipartFile avatarFile, Long id) {
Long avatarMaxSizeInMb = localStorageProperties.getAvatarMaxSizeInMb();
CheckUtils.throwIf(() -> avatarFile.getSize() > avatarMaxSizeInMb * 1024 * 1024,
String.format("请上传小于 %s MB 的图片", avatarMaxSizeInMb));
String avatarImageType = FileNameUtil.extName(avatarFile.getOriginalFilename());
String[] avatarSupportImgTypes = FileConsts.AVATAR_SUPPORTED_IMG_TYPES;
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();
@@ -133,7 +134,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
// 更新用户头像
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();
@@ -150,15 +151,15 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
@Override
@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, "新密码不能与当前密码相同");
UserDO userDO = super.getById(userId);
CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(oldPassword, userId.toString()), userDO.getPassword(), "当前密码错误");
UserDO userDO = super.getById(id);
CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(oldPassword, id.toString()), userDO.getPassword(), "当前密码错误");
// 更新密码和密码重置时间
LocalDateTime now = LocalDateTime.now();
baseMapper.lambdaUpdate().set(UserDO::getPassword, SecureUtils.md5Salt(newPassword, userId.toString()))
.set(UserDO::getPwdResetTime, now).eq(UserDO::getUserId, userId).update();
baseMapper.lambdaUpdate().set(UserDO::getPassword, SecureUtils.md5Salt(newPassword, id.toString()))
.set(UserDO::getPwdResetTime, now).eq(UserDO::getUserId, id).update();
// 更新登录用户信息
LoginUser loginUser = LoginHelper.getLoginUser();
@@ -168,16 +169,15 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
@Override
@Transactional(rollbackFor = Exception.class)
public void updateEmail(String newEmail, String currentPassword, Long userId) {
UserDO userDO = super.getById(userId);
CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(currentPassword, userId.toString()), userDO.getPassword(),
"当前密码错误");
public void updateEmail(String newEmail, String currentPassword, Long id) {
UserDO userDO = super.getById(id);
CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(currentPassword, id.toString()), userDO.getPassword(), "当前密码错误");
Long count = baseMapper.lambdaQuery().eq(UserDO::getEmail, newEmail).count();
CheckUtils.throwIf(() -> count > 0, "邮箱已绑定其他账号,请更换其他邮箱");
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();
@@ -186,18 +186,18 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
}
@Override
public void resetPassword(Long userId) {
UserDO userDO = super.getById(userId);
userDO.setPassword(SecureUtils.md5Salt(SysConsts.DEFAULT_PASSWORD, userId.toString()));
public void resetPassword(Long id) {
UserDO userDO = super.getById(id);
userDO.setPassword(SecureUtils.md5Salt(SysConsts.DEFAULT_PASSWORD, id.toString()));
userDO.setPwdResetTime(LocalDateTime.now());
baseMapper.updateById(userDO);
}
@Override
public void updateUserRole(UpdateUserRoleRequest request, Long userId) {
super.getById(userId);
public void updateRole(UpdateUserRoleRequest request, Long id) {
super.getById(id);
// 保存用户和角色关联
userRoleService.save(request.getRoleIds(), userId);
userRoleService.save(request.getRoleIds(), id);
}
@Override
@@ -211,8 +211,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
}
@Override
public String getNicknameById(Long userId) {
return super.getById(userId).getNickname();
public String getNicknameById(Long id) {
return super.getById(id).getNickname();
}
/**

View File

@@ -1,7 +1,7 @@
<?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" >
<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`
FROM `sys_menu` m
LEFT JOIN `sys_role_menu` rm ON rm.`menu_id` = m.`menu_id`

View File

@@ -1,7 +1,7 @@
<?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" >
<mapper namespace="top.charles7c.cnadmin.system.mapper.RoleMenuMapper">
<select id="selectMenuIdsByRoleIds" resultType="java.lang.Long">
<select id="selectMenuIdByRoleIds" resultType="java.lang.Long">
SELECT
`menu_id`
FROM `sys_role_menu`