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;
|
private Long menuId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 父id,顶级节点的父id是-1
|
* 父id,如果没有父级,则父级id为-1
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "父id,顶级节点的父id是-1不能为空", groups = {add.class, edit.class})
|
@NotNull(message = "父id,顶级节点的父id是-1不能为空", groups = {add.class, edit.class})
|
||||||
@ChineseDescription("父id,顶级节点的父id是-1")
|
@ChineseDescription("父id,顶级节点的父id是-1")
|
||||||
|
@ -71,7 +71,7 @@ public class SysMenuRequest extends BaseRequest {
|
||||||
* 状态:1-启用,2-禁用
|
* 状态:1-启用,2-禁用
|
||||||
*/
|
*/
|
||||||
@ChineseDescription("状态: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.entity.SysMenu;
|
||||||
import cn.stylefeng.roses.kernel.sys.modular.menu.enums.SysMenuExceptionEnum;
|
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.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.mapper.SysMenuMapper;
|
||||||
import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.request.SysMenuRequest;
|
import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.request.SysMenuRequest;
|
||||||
import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.response.AppGroupDetail;
|
import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.response.AppGroupDetail;
|
||||||
|
@ -36,8 +37,15 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(SysMenuRequest sysMenuRequest) {
|
public void add(SysMenuRequest sysMenuRequest) {
|
||||||
|
|
||||||
|
// 校验参数合法性
|
||||||
|
MenuValidateFactory.validateAddMenuParam(sysMenuRequest);
|
||||||
|
|
||||||
SysMenu sysMenu = new SysMenu();
|
SysMenu sysMenu = new SysMenu();
|
||||||
BeanUtil.copyProperties(sysMenuRequest, sysMenu);
|
BeanUtil.copyProperties(sysMenuRequest, sysMenu);
|
||||||
|
|
||||||
|
// 组装pids集合
|
||||||
|
|
||||||
this.save(sysMenu);
|
this.save(sysMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue