package service import ( "context" "gofaster/internal/auth/model" "gofaster/internal/auth/repository" ) type PermissionService struct { permissionRepo repository.PermissionRepository } func NewPermissionService(permissionRepo repository.PermissionRepository) *PermissionService { return &PermissionService{ permissionRepo: permissionRepo, } } // GetPermissionByID 根据ID获取权限 func (s *PermissionService) GetPermissionByID(ctx context.Context, id uint) (*model.Permission, error) { return s.permissionRepo.GetByID(ctx, id) } // ListPermissions 获取权限列表 func (s *PermissionService) ListPermissions(ctx context.Context, offset, limit int) ([]*model.Permission, int64, error) { return s.permissionRepo.List(ctx, offset, limit) } // GetPermissionsByBackendRoute 根据后端路由获取权限 func (s *PermissionService) GetPermissionsByBackendRoute(ctx context.Context, backendRoute string) ([]*model.Permission, error) { return s.permissionRepo.GetByBackendRoute(ctx, backendRoute) } // GetPermissionsByMenuID 根据菜单ID获取权限 func (s *PermissionService) GetPermissionsByMenuID(ctx context.Context, menuID uint) ([]*model.Permission, error) { return s.permissionRepo.GetByMenuID(ctx, menuID) } // GetPermissionsByMenuGroupID 根据菜单分组ID获取权限 func (s *PermissionService) GetPermissionsByMenuGroupID(ctx context.Context, menuGroupID uint) ([]*model.Permission, error) { return s.permissionRepo.GetByMenuGroupID(ctx, menuGroupID) } // GetPermissionsByAuthResourceID 根据认证资源ID获取权限 func (s *PermissionService) GetPermissionsByAuthResourceID(ctx context.Context, authResourceID uint) ([]*model.Permission, error) { return s.permissionRepo.GetByAuthResourceID(ctx, authResourceID) } // GetUserPermissions 获取用户权限 func (s *PermissionService) GetUserPermissions(ctx context.Context, userID uint) ([]*model.Permission, error) { return s.permissionRepo.GetByUserID(ctx, userID) }