system_permissions.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package backend
  2. import (
  3. "context"
  4. operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
  5. "gitee.com/xuyiping_admin/pkg/logger/zaplog"
  6. "gitee.com/xuyiping_admin/pkg/xerr"
  7. "go.uber.org/zap"
  8. "kpt-calf-feed/model"
  9. "net/http"
  10. )
  11. type SystemAllPermissionsList struct {
  12. MenuList []*model.SystemMenuPermissions
  13. }
  14. func (s *StoreEntry) AllPermissionsListToRolePermissions(req *SystemAllPermissionsList) *operationPb.RolePermissionsList {
  15. res := &operationPb.RolePermissionsList{
  16. Code: http.StatusOK,
  17. Msg: "ok",
  18. Data: &operationPb.RolePermissionsData{
  19. MobileList: make([]uint32, 0),
  20. MenuList: make([]uint32, 0),
  21. PastureList: make([]uint32, 0),
  22. },
  23. }
  24. for _, v := range req.MenuList {
  25. res.Data.MenuList = append(res.Data.MenuList, uint32(v.MenuId))
  26. }
  27. return res
  28. }
  29. // SystemUserMenuPermissionsUnDuplicate 角色权限去重
  30. func (s *SystemAllPermissionsList) SystemUserMenuPermissionsUnDuplicate() {
  31. newMenuList := make([]*model.SystemMenuPermissions, 0)
  32. seen := make(map[int64]bool)
  33. for _, menu := range s.MenuList {
  34. if _, ok := seen[menu.MenuId]; !ok {
  35. newMenuList = append(newMenuList, menu)
  36. }
  37. }
  38. s.MenuList = newMenuList
  39. }
  40. // GetSystemAllPermissionsList 获取用户相关权限
  41. func (s *StoreEntry) GetSystemAllPermissionsList(ctx context.Context, roleId int64) *SystemAllPermissionsList {
  42. systemAllPermissionsList := &SystemAllPermissionsList{
  43. MenuList: make([]*model.SystemMenuPermissions, 0),
  44. }
  45. menuList := make([]*model.SystemMenuPermissions, 0)
  46. if err := s.DB.Where("role_id = ? and is_show = ?", roleId, operationPb.IsShow_OK).Find(&menuList).Error; err != nil {
  47. zaplog.Error("SystemMenuPermissions", zap.Any("Err", err))
  48. }
  49. systemAllPermissionsList.MenuList = menuList
  50. return systemAllPermissionsList
  51. }
  52. // GetMenuList 获取******
  53. func (s *StoreEntry) GetMenuList(ctx context.Context, req []*model.SystemMenuPermissions) ([]*model.SystemMenu, error) {
  54. ids := make([]int64, 0)
  55. for _, v := range req {
  56. ids = append(ids, v.MenuId)
  57. }
  58. menuList := make([]*model.SystemMenu, 0)
  59. if len(ids) > 0 {
  60. if err := s.DB.Where("is_show = ?", operationPb.IsShow_OK).Find(&menuList, ids).Error; err != nil {
  61. return nil, xerr.WithStack(err)
  62. }
  63. }
  64. return menuList, nil
  65. }