mirror of https://gitee.com/stylefeng/roses
【7.6.0】【sys】【menu】更新新增菜单的校验合法性
parent
68ff3c8b01
commit
94544961b5
|
@ -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", "当前应用下菜单编码存在重复,请更换编码");
|
||||
|
||||
/**
|
||||
* 错误编码
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -27,7 +27,7 @@ public class SysMenuRequest extends BaseRequest {
|
|||
private Long menuId;
|
||||
|
||||
/**
|
||||
* 父id,顶级节点的父id是-1
|
||||
* 父id,如果没有父级,则父级id为-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;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue