新增删除菜单

This commit is contained in:
2023-06-27 17:00:31 +08:00
parent 195942a4f5
commit c8fd746540
7 changed files with 110 additions and 6 deletions
+65 -1
View File
@@ -2,6 +2,7 @@ package service
import (
"errors"
"github.com/gin-gonic/gin"
"hospital-admin-api/api/dao"
"hospital-admin-api/api/model"
"hospital-admin-api/api/requests"
@@ -172,7 +173,7 @@ func (r *MenuService) PutMenu(requestMenuId int64, PutMenuRequest requests.PutMe
}
// 删除菜单关联api
err = AdminMenuApiDao.DeleteAdminRoleMenuByMenuId(tx, adminMenu.MenuId)
err = AdminMenuApiDao.DeleteAdminMenuApiByMenuId(tx, adminMenu.MenuId)
if err != nil {
tx.Rollback()
return false, errors.New("修改失败")
@@ -205,3 +206,66 @@ func (r *MenuService) PutMenu(requestMenuId int64, PutMenuRequest requests.PutMe
return true, nil
}
// DeleteMenu 删除菜单
func (r *MenuService) DeleteMenu(c *gin.Context, DeleteMenuRequest requests.DeleteMenu) (bool, error) {
// 获取当前登陆用户角色数据
roleId := c.GetInt64("RoleId")
if roleId == 0 {
return false, errors.New("数据错误")
}
AdminMenuDao := dao.AdminMenuDao{}
AdminMenuApiDao := dao.AdminMenuApiDao{}
AdminRoleDao := dao.AdminRoleDao{}
adminRole, err := AdminRoleDao.GetAdminRoleFirstById(roleId)
if err != nil || adminRole == nil {
return false, errors.New("非法操作")
}
if adminRole.IsAdmin == 0 {
return false, errors.New("暂无权限,请联系管理员删除")
}
// 开始事务
tx := global.Db.Begin()
defer func() {
if r := recover(); r != nil {
tx.Rollback()
}
}()
for _, v := range DeleteMenuRequest.MenuIds {
// 获取菜单数据
adminMenu, _ := AdminMenuDao.GetAdminMenuById(v)
if adminMenu == nil {
tx.Rollback()
return false, errors.New("删除失败")
}
// 判断是否特殊菜单
if adminMenu.MenuId == 1 || adminMenu.ParentId == 1 {
tx.Rollback()
return false, errors.New("系统菜单,请勿删除")
}
// 删除菜单关联api
err = AdminMenuApiDao.DeleteAdminMenuApiByMenuId(tx, v)
if err != nil {
tx.Rollback()
return false, errors.New("删除失败")
}
// 删除菜单
err = AdminMenuDao.DeleteAdminMenuByMenuId(tx, v)
if err != nil {
tx.Rollback()
return false, errors.New("删除失败")
}
}
tx.Commit()
return true, nil
}
+1 -1
View File
@@ -276,7 +276,7 @@ func (r *RoleService) PutRole(c *gin.Context, requestRoleId int64, PutRoleReques
// DeleteRole 删除角色-批量
func (r *RoleService) DeleteRole(c *gin.Context, DeleteRoleRequest requests.DeleteRole) (bool, error) {
// 获取当前登陆用户数据
// 获取当前登陆用户角色数据
roleId := c.GetInt64("RoleId")
if roleId == 0 {
return false, errors.New("数据错误")