fix():修改菜单无法保存

boot3.0
dongzeliang 2025-03-20 12:27:18 +08:00
parent 4df7caea12
commit acb3bca308
3 changed files with 14 additions and 14 deletions

View File

@ -92,12 +92,11 @@ public class SysMenuController extends BaseController {
@PostMapping @PostMapping
public Result<String> add (@Validated @RequestBody SysMenuAddReq sysMenuAddReq) { public Result<String> add (@Validated @RequestBody SysMenuAddReq sysMenuAddReq) {
SysMenuAddModel sysMenuAddModel = SysMenuAddModel.of(sysMenuAddReq); SysMenuAddModel sysMenuAddModel = SysMenuAddModel.of(sysMenuAddReq);
if (!menuService.checkMenuNameUnique(sysMenuAddModel)) { if (menuService.checkMenuNameUnique(null, sysMenuAddModel.getMenuName())) {
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,菜单名称已存在"); return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,菜单名称已存在");
} else if (UserConstants.YES_FRAME.equals(sysMenuAddModel.getIsFrame()) && !StringUtils.ishttp(sysMenuAddModel.getPath())) { } else if (UserConstants.YES_FRAME.equals(sysMenuAddModel.getIsFrame()) && !StringUtils.ishttp(sysMenuAddModel.getPath())) {
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败地址必须以http(s)://开头"); return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败地址必须以http(s)://开头");
} }
SysMenu menu = SysMenu.buildSysMenu(sysMenuAddReq);
menuService.insertMenu(SysMenuAddModel.of(sysMenuAddReq)); menuService.insertMenu(SysMenuAddModel.of(sysMenuAddReq));
return Result.success(); return Result.success();
} }
@ -109,11 +108,11 @@ public class SysMenuController extends BaseController {
@Log(title = "菜单管理", businessType = BusinessType.UPDATE) @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public Result<String> edit (@Validated @RequestBody SysMenuUpdReq sysMenuUpdReq) { public Result<String> edit (@Validated @RequestBody SysMenuUpdReq sysMenuUpdReq) {
SysMenuAddModel sysMenuAddModel = SysMenuAddModel.buildSysMenuAddModel(sysMenuUpdReq); SysMenuUpdModel sysMenuUpdModel = SysMenuUpdModel.of(sysMenuUpdReq);
if (!menuService.checkMenuNameUnique(sysMenuAddModel)) { if (menuService.checkMenuNameUnique(sysMenuUpdReq.getMenuId(), sysMenuUpdReq.getMenuName())) {
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,菜单名称已存在"); return error("修改菜单'" + sysMenuUpdModel.getMenuName() + "'失败,菜单名称已存在");
} else if (UserConstants.YES_FRAME.equals(sysMenuAddModel.getIsFrame()) && !StringUtils.ishttp(sysMenuAddModel.getPath())) { } else if (UserConstants.YES_FRAME.equals(sysMenuUpdModel.getIsFrame()) && !StringUtils.ishttp(sysMenuUpdModel.getPath())) {
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败地址必须以http(s)://开头"); return error("修改菜单'" + sysMenuUpdModel.getMenuName() + "'失败地址必须以http(s)://开头");
} }
menuService.updateMenu(SysMenuUpdModel.of(sysMenuUpdReq)); menuService.updateMenu(SysMenuUpdModel.of(sysMenuUpdReq));
return Result.success(); return Result.success();

View File

@ -150,10 +150,10 @@ public interface SysMenuService extends IService<SysMenu> {
/** /**
* *
* *
* @param sysMenuAddModel * @param menuId ID
* @param menuName
* *
* @return * @return
*/ */
public boolean checkMenuNameUnique (SysMenuAddModel sysMenuAddModel); boolean checkMenuNameUnique(Long menuId, String menuName);
} }

View File

@ -345,15 +345,16 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
/** /**
* *
* *
* @param sysMenuAddModel * @param menuId ID
* @param menuName
* *
* @return * @return
*/ */
@Override @Override
public boolean checkMenuNameUnique (SysMenuAddModel sysMenuAddModel) { public boolean checkMenuNameUnique (Long menuId, String menuName) {
LambdaQueryWrapper<SysMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysMenu::getMenuName, sysMenuAddModel.getMenuName()); lambdaQueryWrapper.eq(SysMenu::getMenuName, menuName);
lambdaQueryWrapper.ne(sysMenuAddModel.getMenuId() != null, SysMenu::getParentId, sysMenuAddModel.getParentId()); lambdaQueryWrapper.ne(menuId != null, SysMenu::getParentId, menuId);
if (this.count(lambdaQueryWrapper) > 0) { if (this.count(lambdaQueryWrapper) > 0) {
return UserConstants.NOT_UNIQUE; return UserConstants.NOT_UNIQUE;
} }