Class BaseSpecification<T,TRequest>

java.lang.Object
com.bytedesk.core.base.BaseSpecification<T,TRequest>
Direct Known Subclasses:
ActionSpecification, AgentSettingsSpecification, AgentSpecification, AgentStatusSettingSpecification, AgentStatusSpecification, AiStatisticSpecification, AnnouncementSpecification, ArticleArchiveSpecification, ArticleSpecification, AssetSpecification, AssistantSpecification, AuthoritySpecification, AutoReplyFixedSpecification, AutoReplyKeywordSpecification, BalanceSpecification, BlackSpecification, BlogSpecification, BookingSpecification, BrowseSpecification, CalendarSpecification, CallMrcpSpecification, CallStatisticSpecification, CategorySpecification, ChannelAppSpecification, ChunkSpecification, ClipboardSpecification, ComplaintSpecification, ConnectionSpecification, ConsumerSpecification, ContractSpecification, CustomerSpecification, DepartmentSpecification, DocumentSpecification, DouyinAppSpecification, DouyinCommentSpecification, DouyinDianSpecification, DouyinMiniSpecification, EmailMessageSpecification, EmailSpecification, EmailTemplateSpecification, FaqSpecification, FavoriteSpecification, FeedbackSpecification, FileSpecification, FormResultSpecification, FormSpecification, GoodsSpecification, GroupInviteSpecification, GroupNoticeSpecification, GroupSpecification, HolidaySpecification, IntentionSettingsSpecification, IntentionSpecification, InviteSettingsSpecification, InvoiceSpecification, IpAccessSpecification, IpBlackSpecification, IpWhiteSpecification, JanusAudioSpecification, JanusVideoSpecification, KakaoSpecification, KbaseCommentSpecification, KbaseInviteSpecification, KbaseSpecification, KbaseStatisticSpecification, LicenseSpecification, LineSpecification, LlmModelSpecification, LlmProviderSpecification, MaterialSpecification, McpClientSpecification, McpServerSpecification, MemberSpecification, MenuSpecification, MessageCorrectionSpecification, MessageFeedbackSpecification, MessageLeaveSpecification, MessageParsedSpecification, MessageRatingSpecification, MessageSpecification, MessageTemplateSpecification, MessageUnansweredSpecification, MessageUnreadSpecification, MetaAppSpecification, ModuleSpecification, MomentSpecification, NoteSpecification, NoticeAccountSpecification, NoticeSpecification, OpenPlatformSpecification, OpinionSpecification, OrderSpecification, OrganizationApplySpecification, OrganizationSpecification, PaymentSpecification, ProcessSpecification, ProjectInviteSpecification, ProjectSpecification, PromptSpecification, PushSpecification, QualityAppealSpecification, QualityCheckSpecification, QualityFlowSpecification, QualityPlanSpecification, QualityStatisticSpecification, QuartzTaskSpecification, QueueMemberSpecification, QueueSpecification, QuickButtonSpecification, QuickReplySpecification, RatedownSettingsSpecification, RechargeSpecification, RecommendationSpecification, RelationSpecification, ReportSpecification, RobotMessageSpecification, RobotSettingsSpecification, RobotSpecification, RobotThreadSpecification, RoleSpecification, RoutingQueueSpecification, RoutingRuleSpecification, ScheduleSpecification, ScreenSpecification, ServerMetricsSpecification, ServerSpecification, ServiceStatisticSpecification, SettingsSpecification, ShopAppSpecification, SlackSpecification, SmsProviderSpecification, SmsSpecification, SmsTemplateSpecification, StatisticTokenSpecification, SubscriptionSpecification, TabooMessageSpecification, TabooSpecification, TagSpecification, TaskCommentSpecification, TaskListSpecification, TaskSpecification, TelegramSpecification, TextSpecification, ThreadEmotionSpecification, ThreadIntentionSpecification, ThreadInviteSpecification, ThreadRatingSpecification, ThreadSpecification, ThreadSummarySpecification, ThreadTransferSpecification, TicketRatingSpecification, TicketSettingsSpecification, TicketSpecification, TicketStatisticSpecification, TiktokSpecification, TodoListSpecification, TokenSpecification, TraceSpecification, TransferKeywordSpecification, TranslateSpecification, TriggerSpecification, UnifiedSpecification, UploadSpecification, UrlSpecification, UserSpecification, VisitorRatingSpecification, VisitorSpecification, VisitorThreadSpecification, VisitorTokenSpecification, VocCommentSpecification, WebhookMessageSpecification, WebhookSpecification, WebpageSpecification, WebsiteSpecification, WeChatAccountSpecification, WeChatAppSpecification, WeChatMiniUserSpecification, WeChatMpBlackSpecification, WeChatMpDraftSpecification, WeChatMpGrouponSpecification, WeChatMpKefuSpecification, WeChatMpMediaSpecification, WeChatMpMenuSpecification, WeChatMpTagSpecification, WeChatMpUserSpecification, WeChatPaySpecification, WhatsAppSpecification, WorkflowEdgeSpecification, WorkflowLogSpecification, WorkflowNodeSpecification, WorkflowSpecification, WorkgroupRoutingSpecification, WorkgroupSettingsSpecification, WorkgroupSpecification, ZaloSpecification

public abstract class BaseSpecification<T,TRequest> extends Object
基础Specification类 提供通用的查询条件构建方法
  • Constructor Details

    • BaseSpecification

      public BaseSpecification()
  • Method Details

    • search

      public static <T, TRequest extends BaseRequest> org.springframework.data.jpa.domain.Specification<T> search(TRequest request, AuthService authService)
      通用的搜索方法,需要子类实现具体的查询逻辑
      Parameters:
      request - 请求对象
      authService - 认证服务
      Returns:
      Specification对象
    • getBasicPredicates

      protected static List<jakarta.persistence.criteria.Predicate> getBasicPredicates(jakarta.persistence.criteria.Root<?> root, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, BaseRequest request, AuthService authService)
      获取基础查询条件
      Parameters:
      root - 查询根对象
      criteriaBuilder - 条件构建器
      request - 请求对象
      authService - 认证服务
      Returns:
      基础查询条件列表
    • getBasicPredicatesNoOrg

      protected static List<jakarta.persistence.criteria.Predicate> getBasicPredicatesNoOrg(jakarta.persistence.criteria.Root<?> root, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, BaseRequestNoOrg request, AuthService authService)
      无组织实体(BaseEntityNoOrg)使用的基础查询条件:仅过滤 deleted。 允许不传 orgUid,避免 org 维度校验导致的查询失败。
    • getBasicPredicatesWithLevel

      protected static List<jakarta.persistence.criteria.Predicate> getBasicPredicatesWithLevel(jakarta.persistence.criteria.Root<?> root, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, BaseRequest request, AuthService authService, String module)
      获取带层级过滤的查询条件 根据用户权限过滤可访问的数据层级
      Parameters:
      root - 查询根对象
      criteriaBuilder - 条件构建器
      request - 请求对象
      authService - 认证服务
      module - 模块名称,如 TAG, QUICKREPLY 等
      Returns:
      基础查询条件列表
    • validateSuperUserPermission

      protected static void validateSuperUserPermission(BaseRequest request, AuthService authService)
      检查并验证超级管理员权限 如果前端设置了superUser标志,则需要判断当前用户是否是超级管理员 如果不是超级管理员,则将superUser设置为false
      Parameters:
      request - 请求对象,必须继承自BaseRequest
      authService - 认证服务
      Throws:
      NotLoginException - 如果用户未登录
    • validateIsSuperUserPermission

      protected static void validateIsSuperUserPermission(BaseRequestNoOrg request, AuthService authService)
    • isPlatformDefaultOrgRequest

      private static boolean isPlatformDefaultOrgRequest(BaseRequest request)