Package com.bytedesk.core.settings
Class SettingsRestService
java.lang.Object
com.bytedesk.core.base.BaseRestService<T,TRequest,TResponse>
com.bytedesk.core.base.BaseRestServiceWithExport<SettingsEntity,SettingsRequest,SettingsResponse,SettingsExcel>
com.bytedesk.core.settings.SettingsRestService
@Service
public class SettingsRestService
extends BaseRestServiceWithExport<SettingsEntity,SettingsRequest,SettingsResponse,SettingsExcel>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AuthServiceprivate final EmailRepositoryprivate final org.modelmapper.ModelMapperprivate final SettingsRepositoryprivate final SmsProviderRepositoryprivate final UidUtilsprivate final WorkgroupRepository -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconvertToExcel(SettingsEntity entity) 转换为Excel对象 子类必须实现此方法convertToResponse(SettingsEntity entity) create(SettingsRequest request) private SettingsEntity创建平台设置实体protected org.springframework.data.jpa.domain.Specification<SettingsEntity>createSpecification(SettingsRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现voiddelete(SettingsRequest request) voiddeleteByUid(String uid) protected SettingsEntitydoSave(SettingsEntity entity) 子类实现具体的保存逻辑protected org.springframework.data.domain.Page<SettingsEntity>executePageQuery(org.springframework.data.jpa.domain.Specification<SettingsEntity> spec, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现existsByUid(String uid) findByNameAndOrgUidAndType(String name, String orgUid, String type) getPlatformSettings(String type) 获取平台级别设置private String获取平台设置描述private String获取平台设置名称获取工单中心工作组UIDhandleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, SettingsEntity entity) void初始化平台工单中心设置 使用默认工作组 DEFAULT_WORKGROUP_UID_TICKETvoidinitSettings(String orgUid) 初始化平台级别设置 检查是否已初始化,如果未初始化则创建默认的平台设置savePlatformSettings(SettingsRequest request) 保存/更新平台级别设置booleantestEmailSettings(String testEmail) 测试邮件配置booleantestSmsSettings(String testMobile) 测试短信配置update(SettingsRequest request) private voidupdatePlatformSettingsEntity(SettingsEntity entity, SettingsRequest 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
-
settingsRepository
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
uidUtils
-
authService
-
emailRepository
-
smsProviderRepository
-
workgroupRepository
-
-
Constructor Details
-
SettingsRestService
public SettingsRestService()
-
-
Method Details
-
createSpecification
protected org.springframework.data.jpa.domain.Specification<SettingsEntity> createSpecification(SettingsRequest request) Description copied from class:BaseRestService创建Specification对象,子类必须实现 用于queryByOrg的通用实现- Specified by:
createSpecificationin classBaseRestService<SettingsEntity,SettingsRequest, SettingsResponse>
-
executePageQuery
protected org.springframework.data.domain.Page<SettingsEntity> executePageQuery(org.springframework.data.jpa.domain.Specification<SettingsEntity> spec, org.springframework.data.domain.Pageable pageable) Description copied from class:BaseRestService执行分页查询,子类必须实现 用于queryByOrg的通用实现- Specified by:
executePageQueryin classBaseRestService<SettingsEntity,SettingsRequest, SettingsResponse>
-
findByUid
@Cacheable(value="settings", key="#uid", unless="#result==null") public Optional<SettingsEntity> findByUid(String uid) - Specified by:
findByUidin classBaseRestService<SettingsEntity,SettingsRequest, SettingsResponse>
-
findByNameAndOrgUidAndType
@Cacheable(value="settings", key="#name + \'_\' + #orgUid + \'_\' + #type", unless="#result==null") public Optional<SettingsEntity> findByNameAndOrgUidAndType(String name, String orgUid, String type) -
existsByUid
-
create
- Specified by:
createin classBaseRestService<SettingsEntity,SettingsRequest, SettingsResponse>
-
update
- Specified by:
updatein classBaseRestService<SettingsEntity,SettingsRequest, SettingsResponse>
-
doSave
@CacheEvict(value="settings",key="#entity.uid") @CacheEvict(value="settings",key="#entity.name + \'_\' + #entity.orgUid + \'_\' + #entity.type",condition="#entity.name != null && #entity.orgUid != null && #entity.type != null") @CacheEvict(value="platformSettings",key="#entity.type",condition="#entity.level != null && #entity.level.equals(T(com.bytedesk.core.enums.LevelEnum).PLATFORM.name())") protected SettingsEntity doSave(SettingsEntity entity) Description copied from class:BaseRestService子类实现具体的保存逻辑- Specified by:
doSavein classBaseRestService<SettingsEntity,SettingsRequest, SettingsResponse>
-
handleOptimisticLockingFailureException
public SettingsEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, SettingsEntity entity) - Specified by:
handleOptimisticLockingFailureExceptionin classBaseRestService<SettingsEntity,SettingsRequest, SettingsResponse>
-
deleteByUid
- Specified by:
deleteByUidin classBaseRestService<SettingsEntity,SettingsRequest, SettingsResponse>
-
delete
- Specified by:
deletein classBaseRestService<SettingsEntity,SettingsRequest, SettingsResponse>
-
convertToResponse
- Specified by:
convertToResponsein classBaseRestService<SettingsEntity,SettingsRequest, SettingsResponse>
-
convertToExcel
Description copied from class:BaseRestServiceWithExport转换为Excel对象 子类必须实现此方法- Specified by:
convertToExcelin classBaseRestServiceWithExport<SettingsEntity,SettingsRequest, SettingsResponse, SettingsExcel>
-
initSettings
初始化平台级别设置 检查是否已初始化,如果未初始化则创建默认的平台设置- Parameters:
orgUid- 组织UID(用于组织级别设置,平台级别设置使用默认组织)
-
initPlatformTicketCenterSettings
@Transactional public void initPlatformTicketCenterSettings()初始化平台工单中心设置 使用默认工作组 DEFAULT_WORKGROUP_UID_TICKET -
getPlatformSettings
@Cacheable(value="platformSettings", key="#type", unless="#result == null") public SettingsResponse getPlatformSettings(String type) 获取平台级别设置- Parameters:
type- 设置类型 (EMAIL, SMS, TICKET_CENTER)- Returns:
- 设置响应
-
savePlatformSettings
@CacheEvict(value="platformSettings", key="#request.type") @Transactional public SettingsResponse savePlatformSettings(SettingsRequest request) 保存/更新平台级别设置- Parameters:
request- 设置请求- Returns:
- 设置响应
-
createPlatformSettingsEntity
创建平台设置实体 -
updatePlatformSettingsEntity
更新平台设置实体字段 -
getPlatformSettingsName
获取平台设置名称 -
getPlatformSettingsDescription
获取平台设置描述 -
testEmailSettings
测试邮件配置- Parameters:
testEmail- 测试邮件地址- Returns:
- 是否发送成功
-
testSmsSettings
测试短信配置- Parameters:
testMobile- 测试手机号- Returns:
- 是否发送成功
-
getTicketCenterWorkgroupUid
获取工单中心工作组UID- Returns:
- 工作组UID
-