fix():修改菜单无法保存
parent
4df7caea12
commit
acb3bca308
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue