Class BaseSpecification<T,TRequest>

java.lang.Object
com.bytedesk.core.base.BaseSpecification<T,TRequest>
Direct Known Subclasses:
ActionSpecification, AgentSpecification, AgentStatusSettingSpecification, AgentStatusSpecification, AgentTemplateSpecification, AiStatisticSpecification, ArticleArchiveSpecification, ArticleSpecification, AssistantSpecification, AuthoritySpecification, AutoReplyFixedSpecification, AutoReplyKeywordSpecification, BalanceSpecification, BlackSpecification, BookingSpecification, BrowseSpecification, CallCdrSpecification, CallGatewaySpecification, CallIvrSpecification, CallMrcpSpecification, CallStatisticSpecification, CallUserSpecification, CallWebRTCSpecification, CategorySpecification, ChannelAppSpecification, ChunkSpecification, ClipboardSpecification, CommentSpecification, ConsumerSpecification, CustomerSpecification, DepartmentSpecification, DouyinAppSpecification, DouyinCommentSpecification, DouyinDianSpecification, DouyinMiniSpecification, EmailMessageSpecification, EmailSpecification, EmailTemplateSpecification, FaqSpecification, FavoriteSpecification, FileSpecification, FormResultSpecification, FormSpecification, GroupInviteSpecification, GroupNoticeSpecification, GroupSpecification, HolidaySpecification, IntentionSettingsSpecification, InviteSettingsSpecification, InvoiceSpecification, IpAccessSpecification, IpBlackSpecification, IpWhiteSpecification, JanusAudioSpecification, JanusVideoSpecification, KakaoSpecification, KbaseInviteSpecification, KbaseSpecification, KbaseStatisticSpecification, LicenseSpecification, LineSpecification, LlmModelSpecification, LlmProviderSpecification, MaterialSpecification, McpServerSpecification, MemberSpecification, MenuSpecification, MessageCorrectionSpecification, MessageFeedbackSpecification, MessageLeaveSpecification, MessageParsedSpecification, MessageRatingSpecification, MessageSpecification, MessageTemplateSpecification, MessageUnansweredSpecification, MessageUnreadSpecification, MetaAppSpecification, ModuleSpecification, MomentSpecification, NoticeAccountSpecification, NoticeSpecification, OrganizationApplySpecification, OrganizationSpecification, PaymentSpecification, ProjectInviteSpecification, ProjectSpecification, PushSpecification, QualityAppealSpecification, QualityCheckSpecification, QualityFlowSpecification, QualityPlanSpecification, QualityStatisticSpecification, QuartzSpecification, QueueMemberSpecification, QueueSpecification, QuickReplySpecification, RatedownSettingsSpecification, RechargeSpecification, RelationSpecification, ReportSpecification, RobotMessageSpecification, RobotSpecification, RobotThreadSpecification, RoleSpecification, RoutingRuleSpecification, ScreenSpecification, ServerMetricsSpecification, ServerSpecification, ServiceSettingsSpecification, ServiceStatisticSpecification, ShopAppSpecification, ShoppingSpecification, SlackSpecification, StatisticTokenSpecification, TabooMessageSpecification, TabooSpecification, TagSpecification, TaskSpecification, TelegramSpecification, TextSpecification, ThreadInviteSpecification, ThreadRatingSpecification, ThreadSpecification, ThreadSummarySpecification, ThreadTransferSpecification, TicketProcessSpecification, TicketSpecification, TicketStatisticSpecification, TicketTemplateSpecification, TiktokSpecification, TodoListSpecification, TokenSpecification, TraceSpecification, TransferKeywordSpecification, TranslateSpecification, UnifiedSpecification, UploadSpecification, UrlSpecification, UserSpecification, VisitorRatingSpecification, VisitorSpecification, VisitorThreadSpecification, WebhookMessageSpecification, WebhookSpecification, WebpageSpecification, WebsiteSpecification, WeChatAccountSpecification, WeChatAppSpecification, WeChatMiniUserSpecification, WeChatMpBlackSpecification, WeChatMpDraftSpecification, WeChatMpGrouponSpecification, WeChatMpKefuSpecification, WeChatMpMediaSpecification, WeChatMpMenuSpecification, WeChatMpTagSpecification, WeChatMpUserSpecification, WeChatPaySpecification, WhatsAppSpecification, WorkflowResultSpecification, WorkflowSpecification, WorkgroupSpecification, WorktimeSettingSpecification, WorktimeSpecification, ZaloSpecification

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

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected static void
    addOrgFilterIfNotSuperUser(jakarta.persistence.criteria.Root<?> root, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, List<jakarta.persistence.criteria.Predicate> predicates, BaseRequest request, AuthService authService)
    根据超级管理员权限和orgUid添加组织过滤条件
    protected static List<jakarta.persistence.criteria.Predicate>
    getBasicPredicates(jakarta.persistence.criteria.Root<?> root, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, String orgUid)
    获取基础查询条件
    static <T, TRequest extends BaseRequest>
    org.springframework.data.jpa.domain.Specification<T>
    search(TRequest request, AuthService authService)
    通用的搜索方法,需要子类实现具体的查询逻辑
    protected static void
    检查并验证超级管理员权限 如果前端设置了superUser标志,则需要判断当前用户是否是超级管理员 如果不是超级管理员,则将superUser设置为false

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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, String orgUid)
      获取基础查询条件
      Parameters:
      root - 查询根对象
      criteriaBuilder - 条件构建器
      orgUid - 组织ID
      Returns:
      基础查询条件列表
    • validateSuperUserPermission

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

      protected static void addOrgFilterIfNotSuperUser(jakarta.persistence.criteria.Root<?> root, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, List<jakarta.persistence.criteria.Predicate> predicates, BaseRequest request, AuthService authService)
      根据超级管理员权限和orgUid添加组织过滤条件
      Parameters:
      root - 查询根对象
      criteriaBuilder - 条件构建器
      predicates - 条件列表
      request - 请求对象
      authService - 认证服务