新增获取用户按钮权限
This commit is contained in:
parent
f9c9db303c
commit
b393570e86
@ -1,7 +1,6 @@
|
|||||||
package controller
|
package controller
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"hospital-admin-api/api/dao"
|
"hospital-admin-api/api/dao"
|
||||||
"hospital-admin-api/api/requests"
|
"hospital-admin-api/api/requests"
|
||||||
@ -278,7 +277,6 @@ func (r *User) GetUserMenuList(c *gin.Context) {
|
|||||||
|
|
||||||
// 获取用户角色身份
|
// 获取用户角色身份
|
||||||
isAdmin, err := roleService.GetRoleIden(c)
|
isAdmin, err := roleService.GetRoleIden(c)
|
||||||
fmt.Println(isAdmin)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
responses.FailWithMessage(err.Error(), c)
|
responses.FailWithMessage(err.Error(), c)
|
||||||
return
|
return
|
||||||
@ -298,3 +296,38 @@ func (r *User) GetUserMenuList(c *gin.Context) {
|
|||||||
|
|
||||||
responses.OkWithData(roleMenuList, c)
|
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
|
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 新增菜单
|
// AddAdminMenu 新增菜单
|
||||||
func (r *AdminMenuDao) AddAdminMenu(tx *gorm.DB, model *model.AdminMenu) (*model.AdminMenu, error) {
|
func (r *AdminMenuDao) AddAdminMenu(tx *gorm.DB, model *model.AdminMenu) (*model.AdminMenu, error) {
|
||||||
if err := tx.Create(model).Error; err != nil {
|
if err := tx.Create(model).Error; err != nil {
|
||||||
|
|||||||
@ -2,10 +2,10 @@ package model
|
|||||||
|
|
||||||
// AdminRoleMenu 后台-角色-菜单表
|
// AdminRoleMenu 后台-角色-菜单表
|
||||||
type AdminRoleMenu struct {
|
type AdminRoleMenu struct {
|
||||||
RoleID int64 `gorm:"column:role_id;type:bigint(19);primary_key;comment:权限id" json:"role_id"`
|
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"`
|
MenuID int64 `gorm:"column:menu_id;type:bigint(19);primary_key;comment:菜单id" json:"menu_id"`
|
||||||
Menu AdminMenu `gorm:"foreignKey:MenuID" json:"menu"`
|
Menu *AdminMenu `gorm:"foreignKey:MenuID" json:"menu"`
|
||||||
Role AdminRole `gorm:"foreignKey:RoleID" json:"role"`
|
Role *AdminRole `gorm:"foreignKey:RoleID" json:"role"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *AdminRoleMenu) TableName() string {
|
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("/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
|
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 {
|
func buildMenuTree(menuIds []int64, menuData []*model.AdminMenu) []*roleResponse.GetRoleMenuList {
|
||||||
menuMap := make(map[int64]*roleResponse.GetRoleMenuList)
|
menuMap := make(map[int64]*roleResponse.GetRoleMenuList)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user