新增获取用户按钮权限
This commit is contained in:
parent
f9c9db303c
commit
b393570e86
@ -1,7 +1,6 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"hospital-admin-api/api/dao"
|
||||
"hospital-admin-api/api/requests"
|
||||
@ -278,7 +277,6 @@ func (r *User) GetUserMenuList(c *gin.Context) {
|
||||
|
||||
// 获取用户角色身份
|
||||
isAdmin, err := roleService.GetRoleIden(c)
|
||||
fmt.Println(isAdmin)
|
||||
if err != nil {
|
||||
responses.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
@ -298,3 +296,38 @@ func (r *User) GetUserMenuList(c *gin.Context) {
|
||||
|
||||
responses.OkWithData(roleMenuList, c)
|
||||
}
|
||||
|
||||
// GetUserButtonList 获取用户按钮列表
|
||||
func (r *User) GetUserButtonList(c *gin.Context) {
|
||||
roleId := c.GetInt64("RoleId")
|
||||
if roleId == 0 {
|
||||
responses.Fail(c)
|
||||
return
|
||||
}
|
||||
|
||||
roleService := service.RoleService{}
|
||||
|
||||
// 获取用户角色身份
|
||||
isAdmin, err := roleService.GetRoleIden(c)
|
||||
if err != nil {
|
||||
responses.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
var buttons []string
|
||||
if isAdmin {
|
||||
// 管理员
|
||||
buttons = append(buttons, "*")
|
||||
responses.OkWithData(buttons, c)
|
||||
return
|
||||
}
|
||||
|
||||
// 获取角色菜单按钮
|
||||
buttons, err = roleService.GetRoleMenuButtonList(roleId)
|
||||
if err != nil {
|
||||
responses.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
responses.OkWithData(buttons, c)
|
||||
}
|
||||
|
||||
@ -54,6 +54,15 @@ func (r *AdminMenuDao) GetAdminMenuListNonButtonNormalSortOrderNum() (m []*model
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetAdminMenuListButtonNormalSortOrderNum 获取全部正常按钮菜单列表-排序
|
||||
func (r *AdminMenuDao) GetAdminMenuListButtonNormalSortOrderNum() (m []*model.AdminMenu, err error) {
|
||||
err = global.Db.Where("menu_status = ?", 1).Where("menu_type = ?", 3).Order("order_num asc").Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// AddAdminMenu 新增菜单
|
||||
func (r *AdminMenuDao) AddAdminMenu(tx *gorm.DB, model *model.AdminMenu) (*model.AdminMenu, error) {
|
||||
if err := tx.Create(model).Error; err != nil {
|
||||
|
||||
@ -2,10 +2,10 @@ package model
|
||||
|
||||
// AdminRoleMenu 后台-角色-菜单表
|
||||
type AdminRoleMenu struct {
|
||||
RoleID int64 `gorm:"column:role_id;type:bigint(19);primary_key;comment:权限id" json:"role_id"`
|
||||
MenuID int64 `gorm:"column:menu_id;type:bigint(19);primary_key;comment:菜单id" json:"menu_id"`
|
||||
Menu AdminMenu `gorm:"foreignKey:MenuID" json:"menu"`
|
||||
Role AdminRole `gorm:"foreignKey:RoleID" json:"role"`
|
||||
RoleID int64 `gorm:"column:role_id;type:bigint(19);primary_key;comment:权限id" json:"role_id"`
|
||||
MenuID int64 `gorm:"column:menu_id;type:bigint(19);primary_key;comment:菜单id" json:"menu_id"`
|
||||
Menu *AdminMenu `gorm:"foreignKey:MenuID" json:"menu"`
|
||||
Role *AdminRole `gorm:"foreignKey:RoleID" json:"role"`
|
||||
}
|
||||
|
||||
func (m *AdminRoleMenu) TableName() string {
|
||||
|
||||
@ -151,6 +151,9 @@ func privateRouter(r *gin.Engine, api controller.Api) {
|
||||
|
||||
// 获取用户菜单列表
|
||||
userGroup.GET("/menu", api.User.GetUserMenuList)
|
||||
|
||||
// 获取用户按钮列表
|
||||
userGroup.GET("/button", api.User.GetUserButtonList)
|
||||
}
|
||||
|
||||
// 接口
|
||||
|
||||
@ -53,6 +53,32 @@ func (r *RoleService) GetRoleMenuList(roleId int64, isAdmin bool) ([]*roleRespon
|
||||
return getRoleMenuListResponse, nil
|
||||
}
|
||||
|
||||
// GetRoleMenuButtonList 获取角色菜单按钮
|
||||
func (r *RoleService) GetRoleMenuButtonList(roleId int64) ([]string, error) {
|
||||
// 获取角色菜单
|
||||
adminRoleMenuDao := dao.AdminRoleMenuDao{}
|
||||
var buttons []string
|
||||
|
||||
adminRoleMenus, err := adminRoleMenuDao.GetAdminRoleMenuListWithMenuByRoleId(roleId)
|
||||
if err != nil {
|
||||
return buttons, nil
|
||||
}
|
||||
|
||||
if adminRoleMenus != nil {
|
||||
for _, v := range adminRoleMenus {
|
||||
if v.Menu != nil {
|
||||
if v.Menu.MenuType != 3 {
|
||||
continue
|
||||
}
|
||||
|
||||
buttons = append(buttons, v.Menu.Permission)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return buttons, nil
|
||||
}
|
||||
|
||||
// 获取角色菜单-构建菜单树
|
||||
func buildMenuTree(menuIds []int64, menuData []*model.AdminMenu) []*roleResponse.GetRoleMenuList {
|
||||
menuMap := make(map[int64]*roleResponse.GetRoleMenuList)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user