Files
gfast/app/controller/admin/index.go
T

135 lines
3.2 KiB
Go

package admin
import (
"gfast/app/service/admin/auth_service"
"gfast/app/service/admin/user_service"
"gfast/library/response"
"gfast/library/service"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
"github.com/gogf/gf/util/gconv"
)
type Index struct{}
// @Summary 获取登录用户信息
// @Description 获取登录用户信息
// @Tags 公共
// @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
// @Router /system/index/getInfo [get]
// @Security
func (c *Index) GetInfo(r *ghttp.Request) {
//获取用户信息
userEntity, err := user_service.GetCurrentUser(r)
if err != nil {
g.Log().Error(err)
response.FailJson(true, r, "获取当前登录用户信息失败")
}
userInfo := gconv.Map(userEntity)
rolesList := make([]string, 0, 10)
var permissions []string
if userInfo != nil {
userId := userEntity.Id
delete(userInfo, "user_password")
userInfo["roles"] = make([]string, 0)
//获取用户角色信息
allRoles, err := auth_service.GetRoleList()
if err == nil {
roles, err := user_service.GetAdminRole(userId, allRoles)
if err == nil {
name := make([]string, len(roles))
roleIds := make([]uint, len(roles))
for k, v := range roles {
name[k] = v.Name
roleIds[k] = v.Id
}
userInfo["roles"] = roles
isSuperAdmin := false
//获取无需验证权限的用户id
for _, v := range service.NotCheckAuthAdminIds {
if gconv.Uint64(v) == userId {
isSuperAdmin = true
break
}
}
if isSuperAdmin {
permissions = []string{"*/*/*"}
} else {
permissions, err = user_service.GetPermissions(roleIds)
}
rolesList = name
} else {
g.Log().Error(err)
}
} else {
g.Log().Error(err)
}
}
result := g.Map{
"user": userInfo,
"roles": rolesList,
"permissions": permissions,
}
response.SusJson(true, r, "ok", result)
}
// @Summary 获取后台菜单
// @Description 获取后台菜单
// @Tags 公共
// @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
// @Router /system/index/getRouters [get]
// @Security
func (c *Index) GetRouters(r *ghttp.Request) {
//获取用户信息
userEntity := user_service.GetLoginAdminInfo(r)
//菜单列表
var menuList g.List
isSuperAdmin := false
if userEntity != nil {
userId := userEntity.Id
//获取无需验证权限的用户id
for _, v := range service.NotCheckAuthAdminIds {
if gconv.Uint64(v) == userId {
isSuperAdmin = true
break
}
}
//获取用户角色信息
allRoles, err := auth_service.GetRoleList()
if err == nil {
roles, err := user_service.GetAdminRole(userId, allRoles)
if err == nil {
name := make([]string, len(roles))
roleIds := make([]uint, len(roles))
for k, v := range roles {
name[k] = v.Name
roleIds[k] = v.Id
}
//获取菜单信息
if isSuperAdmin {
//超管获取所有菜单
menuList, err = user_service.GetAllMenus()
} else {
menuList, err = user_service.GetAdminMenusByRoleIds(roleIds)
}
if err != nil {
g.Log().Error(err)
}
} else {
g.Log().Error(err)
}
} else {
g.Log().Error(err)
}
}
if menuList == nil {
menuList = g.List{}
}
response.SusJson(true, r, "ok", menuList)
}