Package com.bytedesk.core.base
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
基础Specification类
提供通用的查询条件构建方法
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static List<jakarta.persistence.criteria.Predicate>getBasicPredicates(jakarta.persistence.criteria.Root<?> root, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, BaseRequest request, AuthService authService) 获取基础查询条件protected static List<jakarta.persistence.criteria.Predicate>getBasicPredicatesNoOrg(jakarta.persistence.criteria.Root<?> root, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, BaseRequestNoOrg request, AuthService authService) 无组织实体(BaseEntityNoOrg)使用的基础查询条件:仅过滤 deleted。protected static List<jakarta.persistence.criteria.Predicate>getBasicPredicatesWithLevel(jakarta.persistence.criteria.Root<?> root, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, BaseRequest request, AuthService authService, String module) 获取带层级过滤的查询条件 根据用户权限过滤可访问的数据层级private static booleanisPlatformDefaultOrgRequest(BaseRequest request) static <T,TRequest extends BaseRequest>
org.springframework.data.jpa.domain.Specification<T>search(TRequest request, AuthService authService) 通用的搜索方法,需要子类实现具体的查询逻辑protected static voidvalidateIsSuperUserPermission(BaseRequestNoOrg request, AuthService authService) protected static voidvalidateSuperUserPermission(BaseRequest request, AuthService authService) 检查并验证超级管理员权限 如果前端设置了superUser标志,则需要判断当前用户是否是超级管理员 如果不是超级管理员,则将superUser设置为false
-
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
检查并验证超级管理员权限 如果前端设置了superUser标志,则需要判断当前用户是否是超级管理员 如果不是超级管理员,则将superUser设置为false- Parameters:
request- 请求对象,必须继承自BaseRequestauthService- 认证服务- Throws:
NotLoginException- 如果用户未登录
-
validateIsSuperUserPermission
protected static void validateIsSuperUserPermission(BaseRequestNoOrg request, AuthService authService) -
isPlatformDefaultOrgRequest
-