1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package backend
- import (
- "context"
- 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"
- "kpt-calf-feed/model"
- "net/http"
- )
- type SystemAllPermissionsList struct {
- MenuList []*model.SystemMenuPermissions
- }
- func (s *StoreEntry) AllPermissionsListToRolePermissions(req *SystemAllPermissionsList) *operationPb.RolePermissionsList {
- res := &operationPb.RolePermissionsList{
- Code: http.StatusOK,
- Msg: "ok",
- Data: &operationPb.RolePermissionsData{
- MobileList: make([]uint32, 0),
- MenuList: make([]uint32, 0),
- PastureList: make([]uint32, 0),
- },
- }
- for _, v := range req.MenuList {
- res.Data.MenuList = append(res.Data.MenuList, uint32(v.MenuId))
- }
- return res
- }
- // SystemUserMenuPermissionsUnDuplicate 角色权限去重
- func (s *SystemAllPermissionsList) SystemUserMenuPermissionsUnDuplicate() {
- newMenuList := make([]*model.SystemMenuPermissions, 0)
- seen := make(map[int64]bool)
- for _, menu := range s.MenuList {
- if _, ok := seen[menu.MenuId]; !ok {
- newMenuList = append(newMenuList, menu)
- }
- }
- s.MenuList = newMenuList
- }
- // GetSystemAllPermissionsList 获取用户相关权限
- func (s *StoreEntry) GetSystemAllPermissionsList(ctx context.Context, roleId int64) *SystemAllPermissionsList {
- systemAllPermissionsList := &SystemAllPermissionsList{
- MenuList: make([]*model.SystemMenuPermissions, 0),
- }
- menuList := make([]*model.SystemMenuPermissions, 0)
- if err := s.DB.Where("role_id = ? and is_show = ?", roleId, operationPb.IsShow_OK).Find(&menuList).Error; err != nil {
- zaplog.Error("SystemMenuPermissions", zap.Any("Err", err))
- }
- systemAllPermissionsList.MenuList = menuList
- return systemAllPermissionsList
- }
- // GetMenuList 获取******
- func (s *StoreEntry) GetMenuList(ctx context.Context, req []*model.SystemMenuPermissions) ([]*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
- }
|