Class WorkgroupSettingsRestService
java.lang.Object
com.bytedesk.core.base.BaseRestService<WorkgroupSettingsEntity,WorkgroupSettingsRequest,WorkgroupSettingsResponse>
com.bytedesk.service.workgroup_settings.WorkgroupSettingsRestService
@Service
public class WorkgroupSettingsRestService
extends BaseRestService<WorkgroupSettingsEntity,WorkgroupSettingsRequest,WorkgroupSettingsResponse>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final MessageLeaveSettingsHelperprivate final org.modelmapper.ModelMapperprivate final RobotRepositoryprivate final ServiceSettingsHelperprivate final TriggerSettingsHelperprivate final UidUtilsprivate final WorkgroupSettingsRepositoryFields inherited from class com.bytedesk.core.base.BaseRestService
authService -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidapplyRobotUidToEntity(RobotRoutingSettingsRequest request, RobotRoutingSettingsEntity target) 根据请求中的 robotUid 解析并设置到目标实体上;若为空则清空关联。private voidcopyPropertiesExcludingIds(Object source, Object target) private voidcopyWorktimeSettings(WorktimeSettingEntity source, WorktimeSettingEntity target) create(WorkgroupSettingsRequest request) protected org.springframework.data.jpa.domain.Specification<WorkgroupSettingsEntity>创建Specification对象,子类必须实现 用于queryByOrg的通用实现voiddelete(WorkgroupSettingsRequest request) voiddeleteByUid(String uid) protected WorkgroupSettingsEntitydoSave(WorkgroupSettingsEntity entity) 子类实现具体的保存逻辑private voidensureSingleDefault(String orgUid, WorkgroupSettingsEntity target) 保证同一个 orgUid 下仅有一个 isDefault=true。protected org.springframework.data.domain.Page<WorkgroupSettingsEntity>executePageQuery(org.springframework.data.jpa.domain.Specification<WorkgroupSettingsEntity> spec, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现getOrCreateDefault(String orgUid) Get or create default settings for organizationhandleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, WorkgroupSettingsEntity entity) Publish draft settings to online for workgroupupdate(WorkgroupSettingsRequest request) Methods inherited from class com.bytedesk.core.base.BaseRestService
deleteByOrgUid, findByOrgUid, getUidFromRequest, queryByOrg, queryByUid, queryByUser, recover, save, setUserUidToRequest
-
Field Details
-
workgroupSettingsRepository
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
uidUtils
-
serviceSettingsHelper
-
triggerSettingsHelper
-
messageLeaveSettingsHelper
-
robotRepository
-
-
Constructor Details
-
WorkgroupSettingsRestService
public WorkgroupSettingsRestService()
-
-
Method Details
-
findByUid
@Cacheable(value="workgroupSettings", key="#uid", unless="#result == null") public Optional<WorkgroupSettingsEntity> findByUid(String uid) - Specified by:
findByUidin classBaseRestService<WorkgroupSettingsEntity,WorkgroupSettingsRequest, WorkgroupSettingsResponse>
-
create
- Specified by:
createin classBaseRestService<WorkgroupSettingsEntity,WorkgroupSettingsRequest, WorkgroupSettingsResponse>
-
update
- Specified by:
updatein classBaseRestService<WorkgroupSettingsEntity,WorkgroupSettingsRequest, WorkgroupSettingsResponse>
-
deleteByUid
- Specified by:
deleteByUidin classBaseRestService<WorkgroupSettingsEntity,WorkgroupSettingsRequest, WorkgroupSettingsResponse>
-
delete
- Specified by:
deletein classBaseRestService<WorkgroupSettingsEntity,WorkgroupSettingsRequest, WorkgroupSettingsResponse>
-
createSpecification
protected org.springframework.data.jpa.domain.Specification<WorkgroupSettingsEntity> createSpecification(WorkgroupSettingsRequest request) Description copied from class:BaseRestService创建Specification对象,子类必须实现 用于queryByOrg的通用实现- Specified by:
createSpecificationin classBaseRestService<WorkgroupSettingsEntity,WorkgroupSettingsRequest, WorkgroupSettingsResponse>
-
executePageQuery
protected org.springframework.data.domain.Page<WorkgroupSettingsEntity> executePageQuery(org.springframework.data.jpa.domain.Specification<WorkgroupSettingsEntity> spec, org.springframework.data.domain.Pageable pageable) Description copied from class:BaseRestService执行分页查询,子类必须实现 用于queryByOrg的通用实现- Specified by:
executePageQueryin classBaseRestService<WorkgroupSettingsEntity,WorkgroupSettingsRequest, WorkgroupSettingsResponse>
-
doSave
@CachePut(value="workgroupSettings", key="#entity.uid", unless="#result == null") protected WorkgroupSettingsEntity doSave(WorkgroupSettingsEntity entity) Description copied from class:BaseRestService子类实现具体的保存逻辑- Specified by:
doSavein classBaseRestService<WorkgroupSettingsEntity,WorkgroupSettingsRequest, WorkgroupSettingsResponse>
-
handleOptimisticLockingFailureException
public WorkgroupSettingsEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, WorkgroupSettingsEntity entity) -
getOrCreateDefault
Get or create default settings for organization -
publish
@Transactional @CachePut(value="workgroupSettings", key="#uid", unless="#result == null") public WorkgroupSettingsResponse publish(String uid) Publish draft settings to online for workgroup -
copyPropertiesExcludingIds
-
copyWorktimeSettings
-
applyRobotUidToEntity
private void applyRobotUidToEntity(RobotRoutingSettingsRequest request, RobotRoutingSettingsEntity target) 根据请求中的 robotUid 解析并设置到目标实体上;若为空则清空关联。 -
convertToResponse
- Specified by:
convertToResponsein classBaseRestService<WorkgroupSettingsEntity,WorkgroupSettingsRequest, WorkgroupSettingsResponse>
-
ensureSingleDefault
保证同一个 orgUid 下仅有一个 isDefault=true。 在事务内使用,借助悲观锁串行化并发修改。
-