bug修复

This commit is contained in:
caozehui
2025-04-08 10:10:12 +08:00
parent 42701db2d5
commit c7a45b5500
24 changed files with 170 additions and 78 deletions

View File

@@ -44,4 +44,6 @@ public interface UserValidMessage {
String LOGIN_FAILED = "登录失败,用户名或密码错误";
String FUNCTION_NAME_FORMAT_ERROR = "菜单名称格式错误只能包含字母、数字、中文、下划线、中划线、空格长度为1-32个字符";
String FUNCTION_CODE_FORMAT_ERROR = "菜单编码格式错误只能包含字母、数字、下划线、中划线、空格长度为1-32个字符";
}

View File

@@ -13,18 +13,19 @@ public enum UserResponseEnum {
USER_NAME_REPEAT("A010003", "用户名重复请检查name参数"),
REGISTER_EMAIL_FAIL("A010004", "该邮箱已被注册"),
NAME_OR_CODE_REPEAT("A010005", "名称或编码已存在"),
EXISTS_SAME_MENU_CHILDREN("A010006", "当前菜单下已存在相同的菜单"),
EXISTS_SAME_MENU_CHILDREN("A010006", "该层级下已存在相同名称或相同编码或相同路径或相同组件地址的菜单"),
EXISTS_CHILDREN_NOT_UPDATE("A010008", "该菜单下存在子节点,无法将菜单修改为按钮"),
EXISTS_CHILDREN_NOT_DELETE("A010007", "该节点下存在子节点,无法删除"),
SUPER_ADMINSTRATOR_ROLE_CANNOT_UPDATE("A010009", "禁止修改超级管理员角色"),
SUPER_ADMINSTRATOR_ROLE_CANNOT_DELETE("A010009", "禁止删除超级管理员角色"),
SUPER_ADMIN_CANNOT_DELETE("A010010", "禁止删除超级管理员用户"),
COMPONENT_NOT_BLANK("A010011", "组件地址不能为空"),
FUNCTION_PATH_FORMAT_ERROR("A010012", "路由地址格式错误"),
FUNCTION_PATH_FORMAT_ERROR("A010012", "菜单路由地址格式错误只能包含字母、数字、下划线、中划线、空格、斜线、反斜线长度为1-32个字符"),
FUNCTION_COMPONENT_FORMAT_ERROR("A010013","菜单组件地址格式错误只能包含字母、数字、下划线、中划线、空格、斜线、反斜线长度为1-32个字符" ),
SUPER_ADMIN_REPEAT("A010013","超级管理员已存在,请勿重复添加" ),
RSA_DECRYT_ERROR("A010014","RSA解密失败" ),
PASSWORD_SAME("A010015", "新密码不能与旧密码相同"),
OLD_PASSWORD_ERROR("A010016", "旧密码错误");
OLD_PASSWORD_ERROR("A010016", "旧密码错误"), ;
private String code;
private String message;

View File

@@ -25,11 +25,12 @@ public class SysFunctionParam {
@ApiModelProperty("名称")
@NotBlank(message = UserValidMessage.NAME_NOT_BLANK)
@Pattern(regexp = PatternRegex.FUNCTION_NAME, message = UserValidMessage.NAME_FORMAT_ERROR)
@Pattern(regexp = PatternRegex.FUNCTION_NAME_REGEX, message = UserValidMessage.FUNCTION_NAME_FORMAT_ERROR)
private String name;
@ApiModelProperty("编码")
@NotBlank(message = UserValidMessage.CODE_NOT_BLANK)
@Pattern(regexp = PatternRegex.FUNCTION_CODE_REGEX, message = UserValidMessage.FUNCTION_CODE_FORMAT_ERROR)
private String code;
@ApiModelProperty("路径")
@@ -58,7 +59,7 @@ public class SysFunctionParam {
@EqualsAndHashCode(callSuper = true)
public static class QueryParam extends BaseParam {
@ApiModelProperty("名称")
@Pattern(regexp = PatternRegex.FUNCTION_NAME, message = UserValidMessage.NAME_FORMAT_ERROR)
@Pattern(regexp = PatternRegex.FUNCTION_NAME_REGEX, message = UserValidMessage.FUNCTION_NAME_FORMAT_ERROR)
private String name;
}

View File

@@ -73,7 +73,7 @@ public class SysRoleParam {
@Data
public static class RoleBindFunction {
@ApiModelProperty("角色id")
@NotNull(message = UserValidMessage.ID_NOT_BLANK)
@NotBlank(message = UserValidMessage.ID_NOT_BLANK)
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = UserValidMessage.ID_FORMAT_ERROR)
private String roleId;

View File

@@ -48,6 +48,8 @@ public class SysFunctionServiceImpl extends ServiceImpl<SysFunctionMapper, SysFu
@Override
@Transactional
public boolean addFunction(SysFunctionParam functionParam) {
functionParam.setPath(functionParam.getPath().trim());
functionParam.setComponent(functionParam.getComponent().trim());
checkFunctionParam(functionParam, false);
SysFunction function = new SysFunction();
BeanUtil.copyProperties(functionParam, function);
@@ -70,6 +72,8 @@ public class SysFunctionServiceImpl extends ServiceImpl<SysFunctionMapper, SysFu
@Transactional
public boolean updateFunction(SysFunctionParam.UpdateParam param) {
boolean result = false;
param.setPath(param.getPath().trim());
param.setComponent(param.getComponent().trim());
checkFunctionParam(param, true);
SysFunction oldFunction = this.lambdaQuery().eq(SysFunction::getId, param.getId()).eq(SysFunction::getState, DataStateEnum.ENABLE.getCode()).one();
List<SysFunction> childrenList = this.lambdaQuery().eq(SysFunction::getPid, param.getId()).eq(SysFunction::getState, DataStateEnum.ENABLE.getCode()).list();
@@ -168,13 +172,23 @@ public class SysFunctionServiceImpl extends ServiceImpl<SysFunctionMapper, SysFu
if (StrUtil.isBlank(functionParam.getComponent())) {
throw new BusinessException(UserResponseEnum.COMPONENT_NOT_BLANK);
}
if (StrUtil.isBlank(functionParam.getPath()) || !Pattern.matches(PatternRegex.FUNCTION_URL, functionParam.getPath())) {
if (StrUtil.isBlank(functionParam.getPath()) || !Pattern.matches(PatternRegex.FUNCTION_PATH_REGEX, functionParam.getPath())) {
throw new BusinessException(UserResponseEnum.FUNCTION_PATH_FORMAT_ERROR);
}
if(StrUtil.isBlank(functionParam.getComponent()) || !Pattern.matches(PatternRegex.FUNCTION_COMPONENT_REGEX, functionParam.getComponent())){
throw new BusinessException(UserResponseEnum.FUNCTION_COMPONENT_FORMAT_ERROR);
}
}
LambdaQueryWrapper<SysFunction> functionLambdaQueryWrapper = new LambdaQueryWrapper<>();
// 同一个pid下名称、编码、路径、组件地址不能重复
functionLambdaQueryWrapper.eq(SysFunction::getName, functionParam.getName()).eq(SysFunction::getCode, functionParam.getCode()).eq(SysFunction::getPath, functionParam.getPath()).eq(SysFunction::getComponent, functionParam.getComponent()).eq(SysFunction::getPid, functionParam.getPid()).eq(SysFunction::getState, DataStateEnum.ENABLE.getCode());
functionLambdaQueryWrapper
.eq(SysFunction::getPid, functionParam.getPid())
.eq(SysFunction::getState, DataStateEnum.ENABLE.getCode())
.and(obj -> obj.eq(SysFunction::getName, functionParam.getName()).or()
.eq(SysFunction::getCode, functionParam.getCode()).or()
.eq(SysFunction::getPath, functionParam.getPath()).or()
.eq(SysFunction::getComponent, functionParam.getComponent())
);
//更新的时候,需排除当前记录
if (isExcludeSelf) {
if (functionParam instanceof SysFunctionParam.UpdateParam) {

View File

@@ -43,7 +43,11 @@ public class SysRoleFunctionServiceImpl extends ServiceImpl<SysRoleFunctionMappe
roleFunction.setFunctionId(functionId);
roleFunctions.add(roleFunction);
});
return this.saveBatch(roleFunctions);
if (CollectionUtil.isEmpty(roleFunctions)) {
return true;
} else {
return this.saveBatch(roleFunctions);
}
}
@Override