mirror of https://gitee.com/stylefeng/roses
【7.6.0】【sys】【menu options】更新新增菜单功能的参数校验
parent
35384ec146
commit
7c85d66986
|
@ -16,7 +16,17 @@ public enum SysMenuOptionsExceptionEnum implements AbstractExceptionEnum {
|
|||
/**
|
||||
* 查询结果不存在
|
||||
*/
|
||||
SYS_MENU_OPTIONS_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在");
|
||||
SYS_MENU_OPTIONS_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在"),
|
||||
|
||||
/**
|
||||
* 同菜单下功能编码不能重复
|
||||
*/
|
||||
OPTIONS_CODE_REPEAT(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10002", "同菜单下功能编码不能重复"),
|
||||
|
||||
/**
|
||||
* 同菜单下功能名称不能重复
|
||||
*/
|
||||
OPTIONS_NAME_REPEAT(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10003", "同菜单下功能名称不能重复");
|
||||
|
||||
/**
|
||||
* 错误编码
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.menu.factory;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenuOptions;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.enums.SysMenuOptionsExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.request.SysMenuOptionsRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuOptionsService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
|
||||
/**
|
||||
* 参数功能的校验
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/6/15 23:21
|
||||
*/
|
||||
public class MenuOptionsValidateFactory {
|
||||
|
||||
/**
|
||||
* 校验同菜单下功能名称和编码不能重复
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/6/15 23:21
|
||||
*/
|
||||
public static void validateMenuOptionsParam(SysMenuOptionsRequest sysMenuOptionsRequest) {
|
||||
|
||||
SysMenuOptionsService sysMenuOptionsService = SpringUtil.getBean(SysMenuOptionsService.class);
|
||||
|
||||
// 1. 校验同菜单下不能编码重复
|
||||
Long menuId = sysMenuOptionsRequest.getMenuId();
|
||||
|
||||
LambdaQueryWrapper<SysMenuOptions> codeWrapper = new LambdaQueryWrapper<>();
|
||||
codeWrapper.eq(SysMenuOptions::getMenuId, menuId);
|
||||
codeWrapper.eq(SysMenuOptions::getOptionCode, sysMenuOptionsRequest.getOptionCode());
|
||||
|
||||
// 如果是编辑菜单,则排除当前这个菜单的查询
|
||||
if (sysMenuOptionsRequest.getMenuOptionId() != null) {
|
||||
codeWrapper.ne(SysMenuOptions::getMenuOptionId, sysMenuOptionsRequest.getMenuOptionId());
|
||||
}
|
||||
|
||||
long alreadyCodeCount = sysMenuOptionsService.count(codeWrapper);
|
||||
if (alreadyCodeCount > 0) {
|
||||
throw new ServiceException(SysMenuOptionsExceptionEnum.OPTIONS_CODE_REPEAT);
|
||||
}
|
||||
|
||||
// 2. 校验同菜单下名称不能重复
|
||||
LambdaQueryWrapper<SysMenuOptions> nameWrapper = new LambdaQueryWrapper<>();
|
||||
nameWrapper.eq(SysMenuOptions::getMenuId, menuId);
|
||||
nameWrapper.eq(SysMenuOptions::getOptionName, sysMenuOptionsRequest.getOptionName());
|
||||
|
||||
// 如果是编辑菜单,则排除当前这个菜单的查询
|
||||
if (sysMenuOptionsRequest.getMenuOptionId() != null) {
|
||||
nameWrapper.ne(SysMenuOptions::getMenuOptionId, sysMenuOptionsRequest.getMenuOptionId());
|
||||
}
|
||||
|
||||
long alreadyNameCount = sysMenuOptionsService.count(nameWrapper);
|
||||
if (alreadyNameCount > 0) {
|
||||
throw new ServiceException(SysMenuOptionsExceptionEnum.OPTIONS_NAME_REPEAT);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -9,6 +9,7 @@ import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
|||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveMenuCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenuOptions;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.enums.SysMenuOptionsExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.factory.MenuOptionsValidateFactory;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.mapper.SysMenuOptionsMapper;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.request.SysMenuOptionsRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuOptionsService;
|
||||
|
@ -32,6 +33,12 @@ public class SysMenuOptionsServiceImpl extends ServiceImpl<SysMenuOptionsMapper,
|
|||
|
||||
@Override
|
||||
public void add(SysMenuOptionsRequest sysMenuOptionsRequest) {
|
||||
|
||||
// 同菜单下功能名称和编码不能重复
|
||||
MenuOptionsValidateFactory.validateMenuOptionsParam(sysMenuOptionsRequest);
|
||||
|
||||
// 获取菜单的应用id
|
||||
|
||||
SysMenuOptions sysMenuOptions = new SysMenuOptions();
|
||||
BeanUtil.copyProperties(sysMenuOptionsRequest, sysMenuOptions);
|
||||
this.save(sysMenuOptions);
|
||||
|
|
Loading…
Reference in New Issue