优化:优化校验工具类的使用及部分模板文本写法

1.优化校验工具类,支持传入 {} 模板文本
2.校验工具类增加 throwIf 重载方法,适合于 boolean 类型参数的情况
3.优化一些模板文本的写法
4.优化一些其他细节
This commit is contained in:
2023-03-20 20:44:52 +08:00
parent 139cb337d7
commit 6d3ba478e9
13 changed files with 265 additions and 177 deletions

View File

@@ -67,7 +67,7 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO,
public Long add(DeptRequest request) {
String name = request.getName();
boolean isExists = this.checkNameExists(name, request.getParentId(), null);
CheckUtils.throwIf(() -> isExists, String.format("新增失败,'%s' 已存在", name));
CheckUtils.throwIf(isExists, "新增失败,[{}] 已存在", name);
request.setAncestors(this.getAncestors(request.getParentId()));
request.setStatus(DisEnableStatusEnum.ENABLE);
@@ -79,20 +79,21 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO,
public void update(DeptRequest request, Long id) {
String name = request.getName();
boolean isExists = this.checkNameExists(name, request.getParentId(), id);
CheckUtils.throwIf(() -> isExists, String.format("修改失败,'%s' 已存在", name));
DeptDO oldDept = this.getById(id);
CheckUtils.throwIf(
() -> DisEnableStatusEnum.DISABLE.equals(request.getStatus())
&& DataTypeEnum.SYSTEM.equals(oldDept.getType()),
String.format("'%s' 是系统内置部门,不允许禁用", oldDept.getName()));
CheckUtils.throwIf(isExists, "修改失败,[{}] 已存在", name);
DeptDO oldDept = super.getById(id);
if (DataTypeEnum.SYSTEM.equals(oldDept.getType())) {
CheckUtils.throwIf(DisEnableStatusEnum.DISABLE.equals(request.getStatus()), "[{}] 是系统内置部门,不允许禁用",
oldDept.getName());
CheckUtils.throwIf(ObjectUtil.notEqual(oldDept.getParentId(), request.getParentId()),
"[{}] 是系统内置部门,不允许变更上级部门", oldDept.getName());
}
// 变更上级部门
if (ObjectUtil.notEqual(oldDept.getParentId(), request.getParentId())) {
CheckUtils.throwIf(() -> DataTypeEnum.SYSTEM.equals(oldDept.getType()),
String.format("'%s' 是系统内置部门,不允许变更上级部门", oldDept.getName()));
// 更新祖级列表
String newAncestors = this.getAncestors(request.getParentId());
request.setAncestors(newAncestors);
// 更新子级的祖级列表
this.updateChildrenAncestors(newAncestors, oldDept.getAncestors(), id);
}
super.update(request, id);
@@ -104,9 +105,9 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO,
List<DeptDO> list =
baseMapper.lambdaQuery().select(DeptDO::getName, DeptDO::getType).in(DeptDO::getId, ids).list();
Optional<DeptDO> isSystemData = list.stream().filter(d -> DataTypeEnum.SYSTEM.equals(d.getType())).findFirst();
CheckUtils.throwIf(isSystemData::isPresent,
String.format("所选部门 '%s' 是系统内置部门,不允许删除", isSystemData.orElseGet(DeptDO::new).getName()));
CheckUtils.throwIf(() -> userService.countByDeptIds(ids) > 0, "所选部门存在用户关联,请解除关联后重试");
CheckUtils.throwIf(isSystemData::isPresent, "所选部门 [{}] 是系统内置部门,不允许删除",
isSystemData.orElseGet(DeptDO::new).getName());
CheckUtils.throwIf(userService.countByDeptIds(ids) > 0, "所选部门存在用户关联,请解除关联后重试");
// 删除部门
super.delete(ids);

View File

@@ -51,7 +51,7 @@ public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuVO,
public Long add(MenuRequest request) {
String title = request.getTitle();
boolean isExists = this.checkNameExists(title, request.getParentId(), null);
CheckUtils.throwIf(() -> isExists, String.format("新增失败,'%s'已存在", title));
CheckUtils.throwIf(isExists, "新增失败,[{}] 已存在", title);
request.setStatus(DisEnableStatusEnum.ENABLE);
return super.add(request);
@@ -62,7 +62,7 @@ public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuVO,
public void update(MenuRequest request, Long id) {
String title = request.getTitle();
boolean isExists = this.checkNameExists(title, request.getParentId(), id);
CheckUtils.throwIf(() -> isExists, String.format("修改失败,'%s'已存在", title));
CheckUtils.throwIf(isExists, "修改失败,[{}] 已存在", title);
super.update(request, id);
}

View File

@@ -63,9 +63,9 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO,
@Transactional(rollbackFor = Exception.class)
public Long add(RoleRequest request) {
String name = request.getName();
CheckUtils.throwIf(() -> this.checkNameExists(name, null), String.format("新增失败,'%s'已存在", name));
CheckUtils.throwIf(this.checkNameExists(name, null), "新增失败,[{}] 已存在", name);
String code = request.getCode();
CheckUtils.throwIf(() -> this.checkCodeExists(code, null), String.format("新增失败,'%s'已存在", code));
CheckUtils.throwIf(this.checkCodeExists(code, null), "新增失败,[{}] 已存在", code);
// 新增信息
request.setStatus(DisEnableStatusEnum.ENABLE);
@@ -81,17 +81,17 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO,
@Transactional(rollbackFor = Exception.class)
public void update(RoleRequest request, Long id) {
String name = request.getName();
CheckUtils.throwIf(() -> this.checkNameExists(name, id), String.format("修改失败,'%s'已存在", name));
CheckUtils.throwIf(this.checkNameExists(name, id), "修改失败,[{}] 已存在", name);
String code = request.getCode();
CheckUtils.throwIf(() -> this.checkCodeExists(code, id), String.format("修改失败,'%s'已存在", code));
RoleDO oldRole = this.getById(id);
CheckUtils.throwIf(this.checkCodeExists(code, id), "修改失败,[{}] 已存在", code);
RoleDO oldRole = super.getById(id);
if (DataTypeEnum.SYSTEM.equals(oldRole.getType())) {
CheckUtils.throwIf(() -> DisEnableStatusEnum.DISABLE.equals(request.getStatus()),
String.format("'%s' 是系统内置角色,不允许禁用", oldRole.getName()));
CheckUtils.throwIfNotEqual(request.getCode(), oldRole.getCode(),
String.format("'%s' 是系统内置角色,不允许修改角色编码", oldRole.getName()));
CheckUtils.throwIfNotEqual(request.getDataScope(), oldRole.getDataScope(),
String.format("'%s' 是系统内置角色,不允许修改角色数据权限", oldRole.getName()));
CheckUtils.throwIf(DisEnableStatusEnum.DISABLE.equals(request.getStatus()), "[{}] 是系统内置角色,不允许禁用",
oldRole.getName());
CheckUtils.throwIfNotEqual(request.getCode(), oldRole.getCode(), "[{}] 是系统内置角色,不允许修改角色编码",
oldRole.getName());
CheckUtils.throwIfNotEqual(request.getDataScope(), oldRole.getDataScope(), "[{}] 是系统内置角色,不允许修改角色数据权限",
oldRole.getName());
}
// 更新信息
@@ -110,9 +110,9 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO,
List<RoleDO> list =
baseMapper.lambdaQuery().select(RoleDO::getName, RoleDO::getType).in(RoleDO::getId, ids).list();
Optional<RoleDO> isSystemData = list.stream().filter(r -> DataTypeEnum.SYSTEM.equals(r.getType())).findFirst();
CheckUtils.throwIf(isSystemData::isPresent,
String.format("所选角色 '%s' 是系统内置角色,不允许删除", isSystemData.orElseGet(RoleDO::new).getName()));
CheckUtils.throwIf(() -> userRoleService.countByRoleIds(ids) > 0, "所选角色存在用户关联,请解除关联后重试");
CheckUtils.throwIf(isSystemData::isPresent, "所选角色 [{}] 是系统内置角色,不允许删除",
isSystemData.orElseGet(RoleDO::new).getName());
CheckUtils.throwIf(userRoleService.countByRoleIds(ids) > 0, "所选角色存在用户关联,请解除关联后重试");
// 删除角色
super.delete(ids);

View File

@@ -80,7 +80,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
public Long add(UserRequest request) {
String username = request.getUsername();
boolean isExists = this.checkNameExists(username, null);
CheckUtils.throwIf(() -> isExists, String.format("新增失败,'%s'已存在", username));
CheckUtils.throwIf(isExists, "新增失败,[{}] 已存在", username);
// 新增信息
request.setStatus(DisEnableStatusEnum.ENABLE);
@@ -98,16 +98,16 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
public void update(UserRequest request, Long id) {
String username = request.getUsername();
boolean isExists = this.checkNameExists(username, id);
CheckUtils.throwIf(() -> isExists, String.format("修改失败,'%s'已存在", username));
CheckUtils.throwIf(isExists, "修改失败,[{}] 已存在", username);
UserDO oldUser = super.getById(id);
if (DataTypeEnum.SYSTEM.equals(oldUser.getType())) {
CheckUtils.throwIf(() -> DisEnableStatusEnum.DISABLE.equals(request.getStatus()),
String.format("'%s' 是系统内置用户,不允许禁用", oldUser.getNickname()));
CheckUtils.throwIf(DisEnableStatusEnum.DISABLE.equals(request.getStatus()), "[{}] 是系统内置用户,不允许禁用",
oldUser.getNickname());
List<Long> oldRoleIdList =
userRoleService.listRoleIdByUserId(id).stream().sorted().collect(Collectors.toList());
List<Long> newRoleIdList = request.getRoleIds().stream().sorted().collect(Collectors.toList());
CheckUtils.throwIf(() -> !CollUtil.isEqualList(newRoleIdList, oldRoleIdList),
String.format("'%s' 是系统内置用户,不允许变更所属角色", oldUser.getNickname()));
CheckUtils.throwIf(!CollUtil.isEqualList(newRoleIdList, oldRoleIdList), "[{}] 是系统内置用户,不允许变更所属角色",
oldUser.getNickname());
}
// 更新信息
@@ -122,8 +122,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
List<UserDO> list =
baseMapper.lambdaQuery().select(UserDO::getNickname, UserDO::getType).in(UserDO::getId, ids).list();
Optional<UserDO> isSystemData = list.stream().filter(u -> DataTypeEnum.SYSTEM.equals(u.getType())).findFirst();
CheckUtils.throwIf(isSystemData::isPresent,
String.format("所选用户 '%s' 是系统内置用户,不允许删除", isSystemData.orElseGet(UserDO::new).getNickname()));
CheckUtils.throwIf(isSystemData::isPresent, "所选用户 [{}] 是系统内置用户,不允许删除",
isSystemData.orElseGet(UserDO::new).getNickname());
// 删除用户
super.delete(ids);
@@ -147,12 +147,11 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
@Transactional(rollbackFor = Exception.class)
public String uploadAvatar(MultipartFile avatarFile, Long id) {
Long avatarMaxSizeInMb = localStorageProperties.getAvatarMaxSizeInMb();
CheckUtils.throwIf(() -> avatarFile.getSize() > avatarMaxSizeInMb * 1024 * 1024,
String.format("请上传小于 %s MB 的图片", avatarMaxSizeInMb));
CheckUtils.throwIf(avatarFile.getSize() > avatarMaxSizeInMb * 1024 * 1024, "请上传小于 {}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(StringConsts.CHINESE_COMMA, avatarSupportImgTypes)));
CheckUtils.throwIf(!StrUtil.equalsAnyIgnoreCase(avatarImageType, avatarSupportImgTypes), "头像仅支持 {} 格式的图片",
String.join(StringConsts.CHINESE_COMMA, avatarSupportImgTypes));
// 上传新头像
String avatarPath = localStorageProperties.getPath().getAvatar();
@@ -201,7 +200,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
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.throwIf(count > 0, "邮箱已绑定其他账号,请更换其他邮箱");
CheckUtils.throwIfEqual(newEmail, userDO.getEmail(), "新邮箱不能与当前邮箱相同");
// 更新邮箱