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
public Result<String> 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<String> 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();

View File

@ -150,10 +150,10 @@ public interface SysMenuService extends IService<SysMenu> {
/**
*
*
* @param sysMenuAddModel
* @param menuId ID
* @param menuName
*
* @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
*/
@Override
public boolean checkMenuNameUnique (SysMenuAddModel sysMenuAddModel) {
public boolean checkMenuNameUnique (Long menuId, String menuName) {
LambdaQueryWrapper<SysMenu> 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;
}