Package com.bytedesk.core.email_message
Class EmailMessageRestService
java.lang.Object
com.bytedesk.core.base.BaseRestService<T,TRequest,TResponse>
com.bytedesk.core.base.BaseRestServiceWithExport<EmailMessageEntity,EmailMessageRequest,EmailMessageResponse,EmailMessageExcel>
com.bytedesk.core.email_message.EmailMessageRestService
@Service
public class EmailMessageRestService
extends BaseRestServiceWithExport<EmailMessageEntity,EmailMessageRequest,EmailMessageResponse,EmailMessageExcel>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final EmailMessageRepositoryprivate final EmailRestServiceprivate final IMessageSendServiceprivate final org.modelmapper.ModelMapperprivate final UidUtilsprivate final VisitorRestServiceFields inherited from class com.bytedesk.core.base.BaseRestService
authService -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate StringbuildEmailContent(EmailMessageRequest request) 构建邮件内容用于显示private VisitorRequestbuildVisitorRequest(EmailMessageRequest request, EmailEntity emailEntity) 根据邮件信息构建访客请求对象convertToExcel(EmailMessageEntity entity) 转换为Excel对象 子类必须实现此方法convertToResponse(EmailMessageEntity entity) create(EmailMessageRequest request) protected org.springframework.data.jpa.domain.Specification<EmailMessageEntity>createSpecification(EmailMessageRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现voiddelete(EmailMessageRequest request) voiddeleteByUid(String uid) protected EmailMessageEntitydoSave(EmailMessageEntity entity) 子类实现具体的保存逻辑protected org.springframework.data.domain.Page<EmailMessageEntity>executePageQuery(org.springframework.data.jpa.domain.Specification<EmailMessageEntity> spec, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现existsByMessageId(String messageId) existsByUid(String uid) findByMessageId(String messageId) findByNameAndOrgUidAndType(String name, String orgUid, String type) handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, EmailMessageEntity entity) private voidprocessEmailToCustomerService(EmailMessageRequest request, EmailMessageEntity savedEntity) 将邮件推送到客服系统 参考企业微信等渠道的实现方式org.springframework.data.domain.Page<EmailMessageResponse>queryByOrg(EmailMessageRequest request) 通用的queryByOrg实现 子类如果有特殊逻辑可以重写此方法org.springframework.data.domain.Page<EmailMessageEntity>queryByOrgEntity(EmailMessageRequest request) 查询实体对象(用于Excel导出) 子类必须实现此方法queryByUid(EmailMessageRequest request) 通用的queryByUid实现org.springframework.data.domain.Page<EmailMessageResponse>queryByUser(EmailMessageRequest request) 通用的queryByUser实现 子类如果有特殊逻辑可以重写此方法private voidsendToCustomerService(EmailMessageRequest request, VisitorResponse visitor, ThreadProtobuf thread, EmailEntity emailEntity) 将邮件消息发送到客服系统update(EmailMessageRequest request) Methods inherited from class com.bytedesk.core.base.BaseRestService
deleteByOrgUid, findByOrgUid, getUidFromRequest, recover, save, setUserUidToRequest
-
Field Details
-
emailMessageRepository
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
uidUtils
-
visitorRestService
-
messageSendService
-
emailRestService
-
-
Constructor Details
-
EmailMessageRestService
public EmailMessageRestService()
-
-
Method Details
-
createSpecification
protected org.springframework.data.jpa.domain.Specification<EmailMessageEntity> createSpecification(EmailMessageRequest request) Description copied from class:BaseRestService创建Specification对象,子类必须实现 用于queryByOrg的通用实现- Specified by:
createSpecificationin classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
executePageQuery
protected org.springframework.data.domain.Page<EmailMessageEntity> executePageQuery(org.springframework.data.jpa.domain.Specification<EmailMessageEntity> spec, org.springframework.data.domain.Pageable pageable) Description copied from class:BaseRestService执行分页查询,子类必须实现 用于queryByOrg的通用实现- Specified by:
executePageQueryin classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
queryByOrgEntity
public org.springframework.data.domain.Page<EmailMessageEntity> queryByOrgEntity(EmailMessageRequest request) Description copied from class:BaseRestServiceWithExport查询实体对象(用于Excel导出) 子类必须实现此方法 -
queryByOrg
public org.springframework.data.domain.Page<EmailMessageResponse> queryByOrg(EmailMessageRequest request) Description copied from class:BaseRestService通用的queryByOrg实现 子类如果有特殊逻辑可以重写此方法- Overrides:
queryByOrgin classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
queryByUser
public org.springframework.data.domain.Page<EmailMessageResponse> queryByUser(EmailMessageRequest request) Description copied from class:BaseRestService通用的queryByUser实现 子类如果有特殊逻辑可以重写此方法- Overrides:
queryByUserin classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
queryByUid
Description copied from class:BaseRestService通用的queryByUid实现- Overrides:
queryByUidin classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
findByUid
@Cacheable(value="tag", key="#uid", unless="#result==null") public Optional<EmailMessageEntity> findByUid(String uid) - Specified by:
findByUidin classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
findByNameAndOrgUidAndType
@Cacheable(value="tag", key="#name + \'_\' + #orgUid + \'_\' + #type", unless="#result==null") public Optional<EmailMessageEntity> findByNameAndOrgUidAndType(String name, String orgUid, String type) -
existsByUid
-
existsByMessageId
-
findByMessageId
-
create
- Specified by:
createin classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
update
- Specified by:
updatein classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
doSave
Description copied from class:BaseRestService子类实现具体的保存逻辑- Specified by:
doSavein classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
handleOptimisticLockingFailureException
public EmailMessageEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, EmailMessageEntity entity) - Specified by:
handleOptimisticLockingFailureExceptionin classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
deleteByUid
- Specified by:
deleteByUidin classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
delete
- Specified by:
deletein classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
convertToResponse
- Specified by:
convertToResponsein classBaseRestService<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse>
-
convertToExcel
Description copied from class:BaseRestServiceWithExport转换为Excel对象 子类必须实现此方法- Specified by:
convertToExcelin classBaseRestServiceWithExport<EmailMessageEntity,EmailMessageRequest, EmailMessageResponse, EmailMessageExcel>
-
processEmailToCustomerService
private void processEmailToCustomerService(EmailMessageRequest request, EmailMessageEntity savedEntity) 将邮件推送到客服系统 参考企业微信等渠道的实现方式- Parameters:
request- 邮件消息请求对象savedEntity- 已保存的邮件实体
-
buildVisitorRequest
根据邮件信息构建访客请求对象- Parameters:
request- 邮件消息请求对象emailEntity- 邮件配置实体- Returns:
- 访客请求对象
-
sendToCustomerService
private void sendToCustomerService(EmailMessageRequest request, VisitorResponse visitor, ThreadProtobuf thread, EmailEntity emailEntity) 将邮件消息发送到客服系统- Parameters:
request- 邮件消息请求对象visitor- 访客信息thread- 会话信息emailEntity- 邮件配置实体
-
buildEmailContent
构建邮件内容用于显示- Parameters:
request- 邮件消息请求对象- Returns:
- 格式化的邮件内容
-