admin_role.go 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. package service
  2. // AdminRole 后台角色
  3. var AdminRole = new(sAdminRole)
  4. type sAdminRole struct{}
  5. //func (s *sAdminRole) List(ctx *gin.Context, req forms.AdminRoleListReq) serializer.Response {
  6. // var (
  7. // q = query.Use(config.AdminDB).AdminRole
  8. // m = q.WithContext(ctx)
  9. // mq = query.Use(config.AdminDB).AdminRoleMenu
  10. // pq = query.Use(config.AdminDB).AdminRolePermission
  11. // offset int64 = 0
  12. // models forms.UserAccountListRes
  13. // lists []*forms.AdminRoleListModel
  14. // )
  15. //
  16. // m = m.Order(q.Sort).Order(q.ID.Desc())
  17. //
  18. // req.Page, req.PerPage, offset = forms.CalculatePage(req.Page, req.PerPage)
  19. //
  20. // count, err := m.Count()
  21. // if err != nil {
  22. // return serializer.Err(consts.CodeParamErr, "查询出错 count", err)
  23. // }
  24. //
  25. // if count > 0 {
  26. // if err = m.Limit(int(req.PerPage)).Offset(int(offset)).Scan(&lists); err != nil {
  27. // return serializer.Err(consts.CodeParamErr, "查询出错 lists", err)
  28. // }
  29. // }
  30. //
  31. // for _, v := range lists {
  32. // if err := json.Unmarshal([]byte(cast.ToString(v.Systems)), &v.Systems); err != nil {
  33. // return serializer.Err(consts.CodeParamErr, "格式化出错 Systems", err)
  34. // }
  35. //
  36. // permissionsModels, err := pq.Where(pq.RoleID.Eq(int32(v.ID))).Find()
  37. // if err != nil {
  38. // return serializer.Err(consts.CodeParamErr, "查询出错 permissionsModels", err)
  39. // }
  40. // permissionsMap := make(map[int32][]int32)
  41. // for _, item := range permissionsModels {
  42. // if _, ok := permissionsMap[item.SystemID]; ok {
  43. // permissionsMap[item.SystemID] = append(permissionsMap[item.SystemID], item.PermissionID)
  44. // } else {
  45. // permissionsMap[item.SystemID] = []int32{item.PermissionID}
  46. // }
  47. // }
  48. // v.Permissions = permissionsMap
  49. //
  50. // pagesModels, err := mq.Where(mq.RoleID.Eq(int32(v.ID))).Find()
  51. // if err != nil {
  52. // return serializer.Err(consts.CodeParamErr, "查询出错 pagesModels", err)
  53. // }
  54. // pagesMap := make(map[int32][]int32)
  55. // for _, item := range pagesModels {
  56. // if _, ok := pagesMap[item.SystemID]; ok {
  57. // pagesMap[item.SystemID] = append(pagesMap[item.SystemID], item.PageID)
  58. // } else {
  59. // pagesMap[item.SystemID] = []int32{item.PageID}
  60. // }
  61. // }
  62. // v.Pages = pagesMap
  63. // }
  64. //
  65. // models.List = lists
  66. // models.Page = req.Page
  67. // models.PerPage = req.PerPage
  68. // models.PageCount = (count + req.PerPage - 1) / req.PerPage
  69. //
  70. // return serializer.Suc(models)
  71. //}
  72. //func (s *sAdminRole) Edit(ctx *gin.Context, req forms.AdminRoleEditReq) serializer.Response {
  73. //
  74. // q := query.Use(config.AdminDB).AdminRole
  75. // mq := query.Use(config.AdminDB).AdminRoleMenu
  76. // pq := query.Use(config.AdminDB).AdminRolePermission
  77. // uq := query.Use(config.AdminDB).AdminUser
  78. //
  79. // logrus.Warnf("req:%+v", req)
  80. //
  81. // menusModel := make([]*model.AdminRoleMenu, 0)
  82. // for sysId, menus := range req.Pages {
  83. // for _, menu := range menus {
  84. // menusModel = append(menusModel, &model.AdminRoleMenu{
  85. // SystemID: sysId,
  86. // RoleID: int32(req.ID),
  87. // PageID: menu,
  88. // })
  89. // }
  90. // }
  91. // permissionsModel := make([]*model.AdminRolePermission, 0)
  92. // for sysId, permissions := range req.Permissions {
  93. // for _, id := range permissions {
  94. // permissionsModel = append(permissionsModel, &model.AdminRolePermission{
  95. // SystemID: sysId,
  96. // RoleID: int32(req.ID),
  97. // PermissionID: id,
  98. // })
  99. // }
  100. // }
  101. //
  102. // systems, err := json.Marshal(req.Systems)
  103. // if err != nil {
  104. // return serializer.Err(consts.CodeParamErr, "格式化出错 Systems:", err)
  105. // }
  106. // // 修改
  107. // if req.ID > 0 {
  108. // update := &model.AdminRole{
  109. // Name: req.Name,
  110. // Key: req.Key,
  111. // Sort: req.Sort,
  112. // Remark: req.Remark,
  113. // Status: req.Status,
  114. // Systems: string(systems),
  115. // UpdatedAt: time.Now(),
  116. // }
  117. // queryTx := query.Use(config.AdminDB).Begin()
  118. // _, err := queryTx.AdminRole.Where(q.ID.Eq(req.ID)).Updates(update)
  119. // if err != nil {
  120. // queryTx.Rollback()
  121. // return serializer.Err(consts.CodeDBError, "更新出错", err)
  122. // }
  123. // // 删除旧的菜单权限
  124. // if _, err := queryTx.AdminRoleMenu.Where(mq.RoleID.Eq(int32(req.ID))).Delete(); err != nil {
  125. // queryTx.Rollback()
  126. // return serializer.Err(consts.CodeDBError, "更新出错", err)
  127. // }
  128. // // 插入新的菜单权限
  129. // if err := queryTx.AdminRoleMenu.Create(menusModel...); err != nil {
  130. // queryTx.Rollback()
  131. // return serializer.Err(consts.CodeDBError, "更新出错", err)
  132. // }
  133. // // 删除旧的操作权限
  134. // if _, err := queryTx.AdminRolePermission.Where(pq.RoleID.Eq(int32(req.ID))).Delete(); err != nil {
  135. // queryTx.Rollback()
  136. // return serializer.Err(consts.CodeDBError, "更新出错", err)
  137. // }
  138. // // 插入新的操作权限
  139. // if err := queryTx.AdminRolePermission.Create(permissionsModel...); err != nil {
  140. // queryTx.Rollback()
  141. // return serializer.Err(consts.CodeDBError, "更新出错", err)
  142. // }
  143. // queryTx.Commit()
  144. // // 查询该角色下的用户,清空token
  145. // users, _ := query.Use(config.AdminDB).AdminUser.Where(uq.RoleID.Eq(int32(req.ID))).Find()
  146. // for _, user := range users {
  147. // config.TokenRedis.Del(config.GetUserTokenKey(user.ID))
  148. // }
  149. // return serializer.Suc(nil)
  150. // }
  151. //
  152. // // 新增
  153. // create := &model.AdminRole{
  154. // Name: req.Name,
  155. // Key: req.Key,
  156. // Sort: req.Sort,
  157. // Systems: string(systems),
  158. // Remark: req.Remark,
  159. // Status: req.Status,
  160. // UpdatedAt: time.Now(),
  161. // CreatedAt: time.Now(),
  162. // }
  163. // queryTx := query.Use(config.AdminDB).Begin()
  164. // if err := queryTx.AdminRole.WithContext(ctx).Create(create); err != nil {
  165. // logrus.Error(err)
  166. // queryTx.Rollback()
  167. // return serializer.Err(consts.CodeDBError, "更新出错", err)
  168. // }
  169. // // 插入新的菜单权限
  170. // for _, item := range menusModel {
  171. // item.RoleID = int32(create.ID)
  172. // }
  173. // if err := queryTx.AdminRoleMenu.Create(menusModel...); err != nil {
  174. // logrus.Error(err)
  175. // queryTx.Rollback()
  176. // return serializer.Err(consts.CodeDBError, "更新出错", err)
  177. // }
  178. //
  179. // // 插入新的操作权限
  180. // for _, item := range permissionsModel {
  181. // item.RoleID = int32(create.ID)
  182. // }
  183. // if err := queryTx.AdminRolePermission.Create(permissionsModel...); err != nil {
  184. // logrus.Error(err)
  185. // queryTx.Rollback()
  186. // return serializer.Err(consts.CodeDBError, "更新出错", err)
  187. // }
  188. // queryTx.Commit()
  189. // return serializer.Suc(nil)
  190. //}
  191. //func (s *sAdminRole) GetRole(ctx *gin.Context, req forms.AdminRoleReq) (*model.AdminRole, error) {
  192. // var (
  193. // q = query.Use(config.AdminDB).AdminRole
  194. // m = q.WithContext(ctx)
  195. // )
  196. // result, err := m.Where(q.ID.Eq(req.ID)).First()
  197. // if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
  198. // return nil, err
  199. // }
  200. // return result, nil
  201. //}
  202. //func (s *sAdminRole) GetAllSystem() ([]*model.AdminSystem, error) {
  203. // var (
  204. // q = query.Use(config.AdminDB).AdminSystem
  205. // )
  206. // systems, err := q.Find()
  207. // if err != nil {
  208. // logrus.Error(err)
  209. // }
  210. // return systems, nil
  211. //}