admin_role.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. "sort"
  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. keys []int
  27. lists []*forms.Option
  28. )
  29. for k, _ := range config.AuthNameMap {
  30. keys = append(keys, k)
  31. }
  32. sort.Ints(keys)
  33. for _, v := range keys {
  34. lists = append(lists, &forms.Option{
  35. Value: v,
  36. Label: config.AuthNameMap[v],
  37. Name: config.AuthNameMap[v],
  38. })
  39. }
  40. c.JSON(200, serializer.Suc(lists))
  41. }
  42. func AdminRolePageOption(c *gin.Context) {
  43. var (
  44. lists []*forms.TreeOption
  45. )
  46. menuList, err := GetRoleMenuList(c)
  47. if err != nil {
  48. c.JSON(200, ErrorResponse(err))
  49. return
  50. }
  51. for _, item := range menuList {
  52. menu := &forms.TreeOption{
  53. Key: item.Id,
  54. Label: item.Meta.Title,
  55. Children: []*forms.TreeOption{},
  56. }
  57. if len(item.Children) > 0 {
  58. for _, children := range item.Children {
  59. menu.Children = append(menu.Children, &forms.TreeOption{
  60. Key: children.Id,
  61. Label: children.Meta.Title,
  62. })
  63. }
  64. }
  65. lists = append(lists, menu)
  66. }
  67. c.JSON(200, serializer.Suc(lists))
  68. }
  69. // AdminRoleOption 角色选项
  70. func AdminRoleOption(c *gin.Context) {
  71. var (
  72. q = query.Use(config.AdminDB).AdminRole
  73. m = q.WithContext(c)
  74. lists []*model.AdminRole
  75. list []forms.Option
  76. err error
  77. )
  78. if err = m.Scan(&lists); err != nil {
  79. c.JSON(200, ErrorResponse(err))
  80. return
  81. }
  82. for _, v := range lists {
  83. list = append(list, forms.Option{
  84. Value: v.ID,
  85. Label: v.Name,
  86. Name: v.Name,
  87. })
  88. }
  89. c.JSON(200, serializer.Suc(list))
  90. }
  91. func AdminRoleEdit(c *gin.Context) {
  92. var req forms.AdminRoleEditReq
  93. if err := c.ShouldBind(&req); err != nil {
  94. c.JSON(200, ErrorResponse(err))
  95. return
  96. }
  97. if err := forms.ParseParams(&req); err != nil {
  98. c.JSON(200, ErrorResponse(err))
  99. return
  100. }
  101. c.JSON(200, service.AdminRole.Edit(c, req))
  102. }