Class TicketSettingsRestService
java.lang.Object
com.bytedesk.core.base.BaseRestService<T,TRequest,TResponse>
com.bytedesk.core.base.BaseRestServiceWithExport<TicketSettingsEntity,TicketSettingsRequest,TicketSettingsResponse,TicketSettingsExcel>
com.bytedesk.ticket.ticket_settings.TicketSettingsRestService
@Service
public class TicketSettingsRestService
extends BaseRestServiceWithExport<TicketSettingsEntity,TicketSettingsRequest,TicketSettingsResponse,TicketSettingsExcel>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AuthServiceprivate final TicketSettingsBindingRepositoryprivate final FormRepositoryprivate final org.modelmapper.ModelMapperprivate final ProcessRepositoryprivate final TicketSettingsRepositoryprivate final UidUtils -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidapplyBasicSettingsRequest(TicketBasicSettingsEntity target, TicketBasicSettingsRequest request) voidbindWorkgroups(String ticketSettingsUid, String orgUid, List<String> workgroupUids) 批量绑定工作组到指定 TicketSettings。convertToExcel(TicketSettingsEntity entity) 转换为Excel对象 子类必须实现此方法private voidcopyBasicSettings(TicketBasicSettingsEntity source, TicketBasicSettingsEntity target) private CategorySettingsDatacreate(TicketSettingsRequest request) private TicketBasicSettingsEntitycreateBasicSettingsEntity(TicketBasicSettingsRequest request, String orgUid) protected org.springframework.data.jpa.domain.Specification<TicketSettingsEntity>createSpecification(TicketSettingsRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现voiddelete(TicketSettingsRequest request) voiddeleteByUid(String uid) protected TicketSettingsEntitydoSave(TicketSettingsEntity entity) 子类实现具体的保存逻辑private voidensureSingleDefault(String orgUid, String type, TicketSettingsEntity target) 保证同一个 orgUid 下仅有一个 isDefault=true(参考 WorkgroupSettingsRestService)protected org.springframework.data.domain.Page<TicketSettingsEntity>executePageQuery(org.springframework.data.jpa.domain.Specification<TicketSettingsEntity> spec, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现existsByUid(String uid) findByNameAndOrgUid(String name, String orgUid, String type) getOrCreateDefault(String orgUid) 获取或创建组织默认 TicketSettings(发布+草稿齐全,保证并发唯一)getOrCreateDefault(String orgUid, String rawType) getOrDefaultByWorkgroup(String orgUid, String workgroupUid) 根据 org + workgroup 获取设置;若未绑定则创建/获取组织默认设置并自动绑定该工作组。getOrDefaultByWorkgroup(String orgUid, String workgroupUid, String rawType) handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, TicketSettingsEntity entity) listBindings(String ticketSettingsUid) private TicketBasicSettingsResponseprivate TicketCategorySettingsResponseprivate FormResponsemapForm(FormEntity entity) private ProcessResponsemapProcess(ProcessEntity entity) private FormTypeEnummapTicketTypeToFormType(String normalizedType) private ProcessTypeEnummapTicketTypeToProcessType(String normalizedType) 发布草稿配置到正式配置,参考 WorkgroupSettings 的 publish 逻辑。publishByWorkgroup(String orgUid, String workgroupUid) 按 orgUid + workgroupUid 发布对应 TicketSettings(便于前端直接在工作组维度触发)。private StringresolveDefaultFormUid(String orgUid, String normalizedType) private StringresolveDefaultProcessUid(String orgUid, String normalizedType) private TicketBasicSettingsRequestprivate TicketCategorySettingsRequestresolveEntityByWorkgroup(String orgUid, String workgroupUid, String rawType) Resolve ticket settings entity by workgroup/org for downstream domain services.private FormEntityresolveFormReference(String formUid, String orgUid) private StringresolveFormUidOrDefault(TicketSettingsRequest request, String orgUid, String normalizedType) private ProcessEntityresolveProcessReference(String processUid, String orgUid) private StringresolveProcessUidOrDefault(TicketSettingsRequest request, String orgUid, String normalizedType) private StringresolveSettingsType(String rawType) saveByWorkgroup(String orgUid, String workgroupUid, TicketSettingsRequest request) 按 orgUid+workgroupUid 保存草稿。update(TicketSettingsRequest request) Methods inherited from class com.bytedesk.core.base.BaseRestServiceWithExport
queryByOrgEntityMethods inherited from class com.bytedesk.core.base.BaseRestService
deleteByOrgUid, findByOrgUid, getUidFromRequest, queryByOrg, queryByUid, queryByUser, recover, save, setUserUidToRequest
-
Field Details
-
ticketSettingsRepository
-
bindingRepository
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
uidUtils
-
authService
-
ticketProcessRepository
-
formRepository
-
-
Constructor Details
-
TicketSettingsRestService
public TicketSettingsRestService()
-
-
Method Details
-
createSpecification
protected org.springframework.data.jpa.domain.Specification<TicketSettingsEntity> createSpecification(TicketSettingsRequest request) Description copied from class:BaseRestService创建Specification对象,子类必须实现 用于queryByOrg的通用实现- Specified by:
createSpecificationin classBaseRestService<TicketSettingsEntity,TicketSettingsRequest, TicketSettingsResponse>
-
executePageQuery
protected org.springframework.data.domain.Page<TicketSettingsEntity> executePageQuery(org.springframework.data.jpa.domain.Specification<TicketSettingsEntity> spec, org.springframework.data.domain.Pageable pageable) Description copied from class:BaseRestService执行分页查询,子类必须实现 用于queryByOrg的通用实现- Specified by:
executePageQueryin classBaseRestService<TicketSettingsEntity,TicketSettingsRequest, TicketSettingsResponse>
-
findByUid
- Specified by:
findByUidin classBaseRestService<TicketSettingsEntity,TicketSettingsRequest, TicketSettingsResponse>
-
findByNameAndOrgUid
-
existsByUid
-
create
- Specified by:
createin classBaseRestService<TicketSettingsEntity,TicketSettingsRequest, TicketSettingsResponse>
-
update
- Specified by:
updatein classBaseRestService<TicketSettingsEntity,TicketSettingsRequest, TicketSettingsResponse>
-
getOrDefaultByWorkgroup
根据 org + workgroup 获取设置;若未绑定则创建/获取组织默认设置并自动绑定该工作组。 -
getOrDefaultByWorkgroup
public TicketSettingsResponse getOrDefaultByWorkgroup(String orgUid, String workgroupUid, String rawType) -
resolveEntityByWorkgroup
@Transactional public TicketSettingsEntity resolveEntityByWorkgroup(String orgUid, String workgroupUid, String rawType) Resolve ticket settings entity by workgroup/org for downstream domain services. -
getOrCreateDefault
获取或创建组织默认 TicketSettings(发布+草稿齐全,保证并发唯一) -
getOrCreateDefault
-
bindWorkgroups
@Transactional public void bindWorkgroups(String ticketSettingsUid, String orgUid, List<String> workgroupUids) 批量绑定工作组到指定 TicketSettings。 每个工作组仅能绑定一条记录:若已存在则覆盖其 ticketSettingsUid。 -
listBindings
-
saveByWorkgroup
@Transactional public TicketSettingsResponse saveByWorkgroup(String orgUid, String workgroupUid, TicketSettingsRequest request) 按 orgUid+workgroupUid 保存草稿。若尚未绑定则自动创建默认 settings 绑定后再更新草稿。 -
publish
发布草稿配置到正式配置,参考 WorkgroupSettings 的 publish 逻辑。 -
publishByWorkgroup
按 orgUid + workgroupUid 发布对应 TicketSettings(便于前端直接在工作组维度触发)。 -
doSave
Description copied from class:BaseRestService子类实现具体的保存逻辑- Specified by:
doSavein classBaseRestService<TicketSettingsEntity,TicketSettingsRequest, TicketSettingsResponse>
-
handleOptimisticLockingFailureException
public TicketSettingsEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, TicketSettingsEntity entity) -
deleteByUid
- Specified by:
deleteByUidin classBaseRestService<TicketSettingsEntity,TicketSettingsRequest, TicketSettingsResponse>
-
delete
- Specified by:
deletein classBaseRestService<TicketSettingsEntity,TicketSettingsRequest, TicketSettingsResponse>
-
resolveDraftCategoryRequest
-
resolveDraftBasicRequest
-
resolveProcessUidOrDefault
private String resolveProcessUidOrDefault(TicketSettingsRequest request, String orgUid, String normalizedType) -
resolveFormUidOrDefault
private String resolveFormUidOrDefault(TicketSettingsRequest request, String orgUid, String normalizedType) -
resolveDefaultProcessUid
-
resolveDefaultFormUid
-
mapTicketTypeToProcessType
-
mapTicketTypeToFormType
-
resolveProcessReference
-
resolveFormReference
-
createBasicSettingsEntity
private TicketBasicSettingsEntity createBasicSettingsEntity(TicketBasicSettingsRequest request, String orgUid) -
applyBasicSettingsRequest
private void applyBasicSettingsRequest(TicketBasicSettingsEntity target, TicketBasicSettingsRequest request) -
copyBasicSettings
-
mapBasicSettings
-
copyCategorySettings
-
mapCategorySettings
-
mapProcess
-
mapForm
-
convertToResponse
- Specified by:
convertToResponsein classBaseRestService<TicketSettingsEntity,TicketSettingsRequest, TicketSettingsResponse>
-
convertToExcel
Description copied from class:BaseRestServiceWithExport转换为Excel对象 子类必须实现此方法 -
resolveSettingsType
-
ensureSingleDefault
保证同一个 orgUid 下仅有一个 isDefault=true(参考 WorkgroupSettingsRestService)
-