package backend import ( "context" "kpt-pasture/model" operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation" "gitee.com/xuyiping_admin/pkg/logger/zaplog" "gitee.com/xuyiping_admin/pkg/xerr" "go.uber.org/zap" ) type SystemAllPermissionsList struct { MenuList []*model.SystemRoleMenu } // SystemUserMenuPermissionsUnDuplicate 角色权限去重 func (s *SystemAllPermissionsList) SystemUserMenuPermissionsUnDuplicate() { newMenuList := make([]*model.SystemRoleMenu, 0) seen := make(map[int64]bool) for _, menu := range s.MenuList { if _, ok := seen[menu.MenuId]; !ok { newMenuList = append(newMenuList, menu) } } s.MenuList = newMenuList } // GetSystemRoleMenuList 获取角色相关菜单 func (s *StoreEntry) GetSystemRoleMenuList(ctx context.Context, roleId int64) []*model.SystemRoleMenu { menuList := make([]*model.SystemRoleMenu, 0) if err := s.DB.Where("role_id = ?", roleId).Find(&menuList).Error; err != nil { zaplog.Error("GetSystemRoleMenuList", zap.Any("Err", err)) } return menuList } // GetMenuList 获取****** func (s *StoreEntry) GetMenuList(ctx context.Context, req []*model.SystemRoleMenu) ([]*model.SystemMenu, error) { ids := make([]int64, 0) for _, v := range req { ids = append(ids, v.MenuId) } menuList := make([]*model.SystemMenu, 0) if len(ids) > 0 { if err := s.DB.Where("is_show = ?", operationPb.IsShow_OK).Find(&menuList, ids).Error; err != nil { return nil, xerr.WithStack(err) } } return menuList, nil }