【7.6.0】【sys】【menu】更新新增菜单的校验合法性

pull/55/MERGE
fengshuonan 2023-06-14 23:21:00 +08:00
parent 68ff3c8b01
commit 94544961b5
4 changed files with 62 additions and 3 deletions

View File

@ -16,7 +16,12 @@ public enum SysMenuExceptionEnum implements AbstractExceptionEnum {
/**
*
*/
SYS_MENU_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在");
SYS_MENU_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在"),
/**
*
*/
MENU_CODE_REPEAT(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10002", "当前应用下菜单编码存在重复,请更换编码");
/**
*

View File

@ -0,0 +1,46 @@
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.SysMenu;
import cn.stylefeng.roses.kernel.sys.modular.menu.enums.SysMenuExceptionEnum;
import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.request.SysMenuRequest;
import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
/**
*
*
* @author fengshuonan
* @since 2023/6/14 23:09
*/
public class MenuValidateFactory {
/**
*
*
* @author fengshuonan
* @since 2023/6/14 23:10
*/
public static void validateAddMenuParam(SysMenuRequest sysMenuRequest) {
SysMenuService sysMenuService = SpringUtil.getBean(SysMenuService.class);
// 同应用下菜单编码不能重复
Long menuId = sysMenuRequest.getMenuId();
// 如果是新增菜单
if (menuId == null) {
String menuCode = sysMenuRequest.getMenuCode();
LambdaQueryWrapper<SysMenu> sysMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysMenuLambdaQueryWrapper.eq(SysMenu::getMenuCode, menuCode);
long alreadyCount = sysMenuService.count(sysMenuLambdaQueryWrapper);
if (alreadyCount > 0) {
throw new ServiceException(SysMenuExceptionEnum.MENU_CODE_REPEAT);
}
}
}
}

View File

@ -27,7 +27,7 @@ public class SysMenuRequest extends BaseRequest {
private Long menuId;
/**
* idid-1
* idid-1
*/
@NotNull(message = "父id顶级节点的父id是-1不能为空", groups = {add.class, edit.class})
@ChineseDescription("父id顶级节点的父id是-1")
@ -71,7 +71,7 @@ public class SysMenuRequest extends BaseRequest {
* 1-2-
*/
@ChineseDescription("状态1-启用2-禁用")
private Integer statusFlag;
private Integer statusFlag = 1;
/**
*

View File

@ -8,6 +8,7 @@ import cn.stylefeng.roses.kernel.sys.modular.app.service.SysAppService;
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenu;
import cn.stylefeng.roses.kernel.sys.modular.menu.enums.SysMenuExceptionEnum;
import cn.stylefeng.roses.kernel.sys.modular.menu.factory.MenuFactory;
import cn.stylefeng.roses.kernel.sys.modular.menu.factory.MenuValidateFactory;
import cn.stylefeng.roses.kernel.sys.modular.menu.mapper.SysMenuMapper;
import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.request.SysMenuRequest;
import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.response.AppGroupDetail;
@ -36,8 +37,15 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
@Override
public void add(SysMenuRequest sysMenuRequest) {
// 校验参数合法性
MenuValidateFactory.validateAddMenuParam(sysMenuRequest);
SysMenu sysMenu = new SysMenu();
BeanUtil.copyProperties(sysMenuRequest, sysMenu);
// 组装pids集合
this.save(sysMenu);
}