admin_role.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package api
  2. import (
  3. "gadmin/config"
  4. "gadmin/internal/admin/forms"
  5. "gadmin/internal/admin/service"
  6. "gadmin/internal/gorm/model"
  7. "gadmin/internal/gorm/query"
  8. "gadmin/utility/serializer"
  9. "github.com/gin-gonic/gin"
  10. "github.com/sirupsen/logrus"
  11. )
  12. func AdminRoleList(c *gin.Context) {
  13. var req forms.AdminRoleListReq
  14. if err := c.ShouldBind(&req); err != nil {
  15. c.JSON(200, ErrorResponse(err))
  16. return
  17. }
  18. if err := forms.ParseParams(&req); err != nil {
  19. c.JSON(200, ErrorResponse(err))
  20. return
  21. }
  22. c.JSON(200, service.AdminRole.List(c, req))
  23. }
  24. func AdminRoleAuthOption(c *gin.Context) {
  25. //var (
  26. // lists []*forms.Option
  27. //)
  28. //permissions := config.GetAllOptions()
  29. //for _, v := range permissions {
  30. // lists = append(lists, &forms.Option{
  31. // Value: v.ID,
  32. // Label: v.Name,
  33. // Name: v.Name,
  34. // })
  35. //}
  36. systems, err := service.AdminRole.GetAllSystem()
  37. if err != nil {
  38. c.JSON(200, ErrorResponse(err))
  39. return
  40. }
  41. lists := make(map[int32][]*forms.Option)
  42. for _, sys := range systems {
  43. operations, err := service.AdminRole.GetOperation(sys.ID)
  44. if err != nil {
  45. c.JSON(200, ErrorResponse(err))
  46. return
  47. }
  48. for _, it := range operations {
  49. if _, ok := lists[sys.ID]; !ok {
  50. lists[sys.ID] = []*forms.Option{
  51. {
  52. Value: it.ID,
  53. Label: it.Name,
  54. Name: it.Name,
  55. },
  56. }
  57. } else {
  58. lists[sys.ID] = append(lists[sys.ID], &forms.Option{
  59. Value: it.ID,
  60. Label: it.Name,
  61. Name: it.Name,
  62. })
  63. }
  64. }
  65. }
  66. c.JSON(200, serializer.Suc(lists))
  67. }
  68. func AdminRolePageOption(c *gin.Context) {
  69. lists := make(map[int32][]*forms.TreeOption)
  70. menuMap, err := GetAllMenuList(c)
  71. if err != nil {
  72. c.JSON(200, ErrorResponse(err))
  73. return
  74. }
  75. for systemId, items := range menuMap {
  76. for _, item := range items {
  77. if item.Meta.IsSuper {
  78. continue
  79. }
  80. menu := &forms.TreeOption{
  81. Key: item.Id,
  82. Label: item.Meta.Title,
  83. Children: []*forms.TreeOption{},
  84. }
  85. if len(item.Children) > 0 {
  86. for _, children := range item.Children {
  87. if children.Meta.IsSuper {
  88. continue
  89. }
  90. menu.Children = append(menu.Children, &forms.TreeOption{
  91. Key: children.Id,
  92. Label: children.Meta.Title,
  93. })
  94. }
  95. }
  96. if _, ok := lists[systemId]; !ok {
  97. lists[systemId] = []*forms.TreeOption{menu}
  98. } else {
  99. lists[systemId] = append(lists[systemId], menu)
  100. }
  101. }
  102. }
  103. c.JSON(200, serializer.Suc(lists))
  104. }
  105. // AdminRoleOption 角色选项
  106. func AdminRoleOption(c *gin.Context) {
  107. var (
  108. q = query.Use(config.AdminDB).AdminRole
  109. m = q.WithContext(c)
  110. lists []*model.AdminRole
  111. list []forms.Option
  112. err error
  113. )
  114. if err = m.Scan(&lists); err != nil {
  115. c.JSON(200, ErrorResponse(err))
  116. return
  117. }
  118. for _, v := range lists {
  119. list = append(list, forms.Option{
  120. Value: v.ID,
  121. Label: v.Name,
  122. Name: v.Name,
  123. })
  124. }
  125. c.JSON(200, serializer.Suc(list))
  126. }
  127. func AdminRoleEdit(c *gin.Context) {
  128. var req forms.AdminRoleEditReq
  129. if err := c.ShouldBind(&req); err != nil {
  130. logrus.Error(err)
  131. c.JSON(200, ErrorResponse(err))
  132. return
  133. }
  134. if err := forms.ParseParams(&req); err != nil {
  135. c.JSON(200, ErrorResponse(err))
  136. return
  137. }
  138. c.JSON(200, service.AdminRole.Edit(c, req))
  139. }