index.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package admin
  2. import (
  3. "gfast/app/service/admin/auth_service"
  4. "gfast/app/service/admin/user_service"
  5. "gfast/library/response"
  6. "gfast/library/service"
  7. "github.com/gogf/gf/frame/g"
  8. "github.com/gogf/gf/net/ghttp"
  9. "github.com/gogf/gf/util/gconv"
  10. "strings"
  11. )
  12. type Index struct{}
  13. //后台首页接口数据
  14. func (c *Index) Index(r *ghttp.Request) {
  15. //获取用户信息
  16. userEntity := user_service.GetLoginAdminInfo(r)
  17. userInfo := gconv.Map(userEntity)
  18. //菜单列表
  19. var menuList g.List
  20. isSuperAdmin := false
  21. if userInfo != nil {
  22. userId := userEntity.Id
  23. delete(userInfo, "user_password")
  24. //获取无需验证权限的用户id
  25. for _, v := range service.NotCheckAuthAdminIds {
  26. if v == userId {
  27. isSuperAdmin = true
  28. break
  29. }
  30. }
  31. //获取用户角色信息
  32. allRoles, err := auth_service.GetRoleList()
  33. if err == nil {
  34. roles, err := user_service.GetAdminRole(userId, allRoles)
  35. if err == nil {
  36. name := make([]string, len(roles))
  37. roleIds := make([]int, len(roles))
  38. for k, v := range roles {
  39. name[k] = v.Name
  40. roleIds[k] = v.Id
  41. }
  42. userInfo["roles"] = strings.Join(name, ",")
  43. //获取菜单信息
  44. if isSuperAdmin {
  45. //超管获取所有菜单
  46. menuList, err = user_service.GetAllMenus()
  47. } else {
  48. menuList, err = user_service.GetAdminMenusByRoleIds(roleIds)
  49. }
  50. if err != nil {
  51. g.Log().Error(err)
  52. }
  53. } else {
  54. g.Log().Error(err)
  55. userInfo["roles"] = ""
  56. }
  57. } else {
  58. g.Log().Error(err)
  59. userInfo["roles"] = ""
  60. }
  61. }
  62. result := g.Map{
  63. "userInfo": userInfo,
  64. "menuList": menuList,
  65. }
  66. response.SusJson(true, r, "ok", result)
  67. }