diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java index 88e7f2f..ff37363 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java @@ -92,12 +92,11 @@ public class SysMenuController extends BaseController { @PostMapping public Result add (@Validated @RequestBody SysMenuAddReq sysMenuAddReq) { SysMenuAddModel sysMenuAddModel = SysMenuAddModel.of(sysMenuAddReq); - if (!menuService.checkMenuNameUnique(sysMenuAddModel)) { + if (menuService.checkMenuNameUnique(null, sysMenuAddModel.getMenuName())) { return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,菜单名称已存在"); } else if (UserConstants.YES_FRAME.equals(sysMenuAddModel.getIsFrame()) && !StringUtils.ishttp(sysMenuAddModel.getPath())) { return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,地址必须以http(s)://开头"); } - SysMenu menu = SysMenu.buildSysMenu(sysMenuAddReq); menuService.insertMenu(SysMenuAddModel.of(sysMenuAddReq)); return Result.success(); } @@ -109,11 +108,11 @@ public class SysMenuController extends BaseController { @Log(title = "菜单管理", businessType = BusinessType.UPDATE) @PutMapping public Result edit (@Validated @RequestBody SysMenuUpdReq sysMenuUpdReq) { - SysMenuAddModel sysMenuAddModel = SysMenuAddModel.buildSysMenuAddModel(sysMenuUpdReq); - if (!menuService.checkMenuNameUnique(sysMenuAddModel)) { - return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,菜单名称已存在"); - } else if (UserConstants.YES_FRAME.equals(sysMenuAddModel.getIsFrame()) && !StringUtils.ishttp(sysMenuAddModel.getPath())) { - return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,地址必须以http(s)://开头"); + SysMenuUpdModel sysMenuUpdModel = SysMenuUpdModel.of(sysMenuUpdReq); + if (menuService.checkMenuNameUnique(sysMenuUpdReq.getMenuId(), sysMenuUpdReq.getMenuName())) { + return error("修改菜单'" + sysMenuUpdModel.getMenuName() + "'失败,菜单名称已存在"); + } else if (UserConstants.YES_FRAME.equals(sysMenuUpdModel.getIsFrame()) && !StringUtils.ishttp(sysMenuUpdModel.getPath())) { + return error("修改菜单'" + sysMenuUpdModel.getMenuName() + "'失败,地址必须以http(s)://开头"); } menuService.updateMenu(SysMenuUpdModel.of(sysMenuUpdReq)); return Result.success(); diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java index a99bace..21e0111 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java @@ -150,10 +150,10 @@ public interface SysMenuService extends IService { /** * 校验菜单名称是否唯一 * - * @param sysMenuAddModel 菜单信息 + * @param menuId 菜单ID + * @param menuName 菜单名称 * * @return 结果 */ - public boolean checkMenuNameUnique (SysMenuAddModel sysMenuAddModel); - + boolean checkMenuNameUnique(Long menuId, String menuName); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java index cd60bde..059d574 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java @@ -345,15 +345,16 @@ public class SysMenuServiceImpl extends ServiceImpl impl /** * 校验菜单名称是否唯一 * - * @param sysMenuAddModel 菜单信息 + * @param menuId 菜单ID + * @param menuName 菜单名称 * * @return 结果 */ @Override - public boolean checkMenuNameUnique (SysMenuAddModel sysMenuAddModel) { + public boolean checkMenuNameUnique (Long menuId, String menuName) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(SysMenu::getMenuName, sysMenuAddModel.getMenuName()); - lambdaQueryWrapper.ne(sysMenuAddModel.getMenuId() != null, SysMenu::getParentId, sysMenuAddModel.getParentId()); + lambdaQueryWrapper.eq(SysMenu::getMenuName, menuName); + lambdaQueryWrapper.ne(menuId != null, SysMenu::getParentId, menuId); if (this.count(lambdaQueryWrapper) > 0) { return UserConstants.NOT_UNIQUE; }