system_permissions.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package backend
  2. import (
  3. "context"
  4. "kpt-pasture/model"
  5. operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
  6. "gitee.com/xuyiping_admin/pkg/logger/zaplog"
  7. "gitee.com/xuyiping_admin/pkg/xerr"
  8. "go.uber.org/zap"
  9. )
  10. type SystemAllPermissionsList struct {
  11. MenuList []*model.SystemRoleMenu
  12. }
  13. // SystemUserMenuPermissionsUnDuplicate 角色权限去重
  14. func (s *SystemAllPermissionsList) SystemUserMenuPermissionsUnDuplicate() {
  15. newMenuList := make([]*model.SystemRoleMenu, 0)
  16. seen := make(map[int64]bool)
  17. for _, menu := range s.MenuList {
  18. if _, ok := seen[menu.MenuId]; !ok {
  19. newMenuList = append(newMenuList, menu)
  20. }
  21. }
  22. s.MenuList = newMenuList
  23. }
  24. // GetSystemRoleMenuList 获取角色相关菜单
  25. func (s *StoreEntry) GetSystemRoleMenuList(ctx context.Context, roleId int64) []*model.SystemRoleMenu {
  26. menuList := make([]*model.SystemRoleMenu, 0)
  27. if err := s.DB.Where("role_id = ?", roleId).Find(&menuList).Error; err != nil {
  28. zaplog.Error("GetSystemRoleMenuList", zap.Any("Err", err))
  29. }
  30. return menuList
  31. }
  32. // GetMenuList 获取******
  33. func (s *StoreEntry) GetMenuList(ctx context.Context, req []*model.SystemRoleMenu) ([]*model.SystemMenu, error) {
  34. ids := make([]int64, 0)
  35. for _, v := range req {
  36. ids = append(ids, v.MenuId)
  37. }
  38. menuList := make([]*model.SystemMenu, 0)
  39. if len(ids) > 0 {
  40. if err := s.DB.Where("is_show = ?", operationPb.IsShow_OK).Find(&menuList, ids).Error; err != nil {
  41. return nil, xerr.WithStack(err)
  42. }
  43. }
  44. return menuList, nil
  45. }