diff --git a/src/modules/system/controller/sys_menu.go b/src/modules/system/controller/sys_menu.go index 6e75ee73..5dfd4e41 100644 --- a/src/modules/system/controller/sys_menu.go +++ b/src/modules/system/controller/sys_menu.go @@ -79,7 +79,7 @@ func (s *SysMenuController) Add(c *gin.Context) { // 目录和菜单检查地址唯一 if menu.TYPE_DIR == body.MenuType || menu.TYPE_MENU == body.MenuType { - uniqueNenuPath := s.sysMenuService.CheckUniqueMenuPath(body.Path, "") + uniqueNenuPath := s.sysMenuService.CheckUniqueMenuPath(body.Path, body.ParentID, "") if !uniqueNenuPath { msg := fmt.Sprintf("菜单新增【%s】失败,菜单路由地址已存在", body.MenuName) c.JSON(200, result.ErrMsg(msg)) @@ -151,7 +151,7 @@ func (s *SysMenuController) Edit(c *gin.Context) { // 目录和菜单检查地址唯一 if menu.TYPE_DIR == body.MenuType || menu.TYPE_MENU == body.MenuType { - uniqueNenuPath := s.sysMenuService.CheckUniqueMenuPath(body.Path, body.MenuID) + uniqueNenuPath := s.sysMenuService.CheckUniqueMenuPath(body.Path, body.ParentID, body.MenuID) if !uniqueNenuPath { msg := fmt.Sprintf("菜单修改【%s】失败,菜单路由地址已存在", body.MenuName) c.JSON(200, result.ErrMsg(msg)) diff --git a/src/modules/system/service/sys_menu.go b/src/modules/system/service/sys_menu.go index 10374be1..e4fbd5e5 100644 --- a/src/modules/system/service/sys_menu.go +++ b/src/modules/system/service/sys_menu.go @@ -44,7 +44,7 @@ type ISysMenu interface { CheckUniqueMenuName(menuName, parentId, menuId string) bool // CheckUniqueMenuPath 校验路由地址是否唯一(针对目录和菜单) - CheckUniqueMenuPath(path, menuId string) bool + CheckUniqueMenuPath(path, parentId, menuId string) bool // BuildRouteMenus 构建前端路由所需要的菜单 BuildRouteMenus(sysMenus []model.SysMenu, prefix string) []vo.Router diff --git a/src/modules/system/service/sys_menu.impl.go b/src/modules/system/service/sys_menu.impl.go index 1dd1d837..6d4d5c2b 100644 --- a/src/modules/system/service/sys_menu.impl.go +++ b/src/modules/system/service/sys_menu.impl.go @@ -124,9 +124,10 @@ func (r *SysMenuImpl) CheckUniqueMenuName(menuName, parentId, menuId string) boo } // CheckUniqueMenuPath 校验路由地址是否唯一(针对目录和菜单) -func (r *SysMenuImpl) CheckUniqueMenuPath(path, menuId string) bool { +func (r *SysMenuImpl) CheckUniqueMenuPath(path, parentId, menuId string) bool { uniqueId := r.sysMenuRepository.CheckUniqueMenu(model.SysMenu{ - Path: path, + Path: path, + ParentID: parentId, }) if uniqueId == menuId { return true