Package com.bytedesk.core.message
Class MessageRestService
java.lang.Object
com.bytedesk.core.base.BaseRestService<T,TRequest,TResponse>
com.bytedesk.core.base.BaseRestServiceWithExport<MessageEntity,MessageRequest,MessageResponse,MessageExcel>
com.bytedesk.core.message.MessageRestService
@Service
public class MessageRestService
extends BaseRestServiceWithExport<MessageEntity,MessageRequest,MessageResponse,MessageExcel>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AuthService
private final MessageRepository
private final org.modelmapper.ModelMapper
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionconvertToExcel
(MessageEntity entity) 转换为Excel对象 子类必须实现此方法convertToResponse
(MessageEntity entity) create
(MessageRequest request) protected org.springframework.data.jpa.domain.Specification<MessageEntity>
createSpecification
(MessageRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现void
delete
(MessageRequest message) void
deleteByUid
(String uid) protected MessageEntity
doSave
(MessageEntity entity) 子类实现具体的保存逻辑protected org.springframework.data.domain.Page<MessageEntity>
executePageQuery
(org.springframework.data.jpa.domain.Specification<MessageEntity> spec, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现existsByUid
(String uid) findByThreadUid
(String threadUid) findByThreadUidAndTypeAndUserContains
(String threadUid, String type, String userUid) findLatestByThreadUid
(String threadUid) findTransferMessage
(String type, String messageUid) getRecentMessages
(String threadTopic, int limit) handleOptimisticLockingFailureException
(org.springframework.orm.ObjectOptimisticLockingFailureException e, MessageEntity entity) isMessageExists
(String uid) markAsRead
(String messageUid) Deprecated.此功能已迁移到企业版markThreadAsRead
(String threadUid) Deprecated.此功能已迁移到企业版org.springframework.data.domain.Page<MessageResponse>
queryByOrg
(MessageRequest request) 通用的queryByOrg实现 子类如果有特殊逻辑可以重写此方法org.springframework.data.domain.Page<MessageEntity>
queryByOrgEntity
(MessageRequest request) 查询实体对象(用于Excel导出) 子类必须实现此方法queryByUid
(MessageRequest request) 通用的queryByUid实现org.springframework.data.domain.Page<MessageResponse>
queryByUser
(MessageRequest request) 通用的queryByUser实现 子类如果有特殊逻辑可以重写此方法org.springframework.data.domain.Page<MessageResponse>
queryUnread
(MessageRequest request) Deprecated.此功能已迁移到企业版update
(MessageRequest request) Methods inherited from class com.bytedesk.core.base.BaseRestService
deleteByOrgUid, findByOrgUid, getUidFromRequest, recover, save, setUserUidToRequest
-
Field Details
-
messageRepository
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
authService
-
-
Constructor Details
-
MessageRestService
public MessageRestService()
-
-
Method Details
-
queryByOrgEntity
Description copied from class:BaseRestServiceWithExport
查询实体对象(用于Excel导出) 子类必须实现此方法- Overrides:
queryByOrgEntity
in classBaseRestServiceWithExport<MessageEntity,
MessageRequest, MessageResponse, MessageExcel>
-
queryByOrg
Description copied from class:BaseRestService
通用的queryByOrg实现 子类如果有特殊逻辑可以重写此方法- Overrides:
queryByOrg
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
queryByUser
Description copied from class:BaseRestService
通用的queryByUser实现 子类如果有特殊逻辑可以重写此方法- Overrides:
queryByUser
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
queryByUid
Description copied from class:BaseRestService
通用的queryByUid实现- Overrides:
queryByUid
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
queryUnread
@Deprecated public org.springframework.data.domain.Page<MessageResponse> queryUnread(MessageRequest request) Deprecated.此功能已迁移到企业版根据 topic 查询未读消息 参考 ThreadEntity.getUnreadCount 的逻辑 -
findByUid
@Cacheable(value="message", key="#uid", unless="#result == null") public Optional<MessageEntity> findByUid(String uid) - Specified by:
findByUid
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
findTransferMessage
@Cacheable(value="message", key="# type + #messageUid", unless="#result == null") public Optional<MessageEntity> findTransferMessage(String type, String messageUid) -
findLatestByThreadUid
@Cacheable(value="message", key="#threadUid", unless="#result == null") public Optional<MessageEntity> findLatestByThreadUid(String threadUid) -
findByThreadUid
@Cacheable(value="message", key="#threadUid", unless="#result == null") public List<MessageEntity> findByThreadUid(String threadUid) -
findByThreadUidAndTypeAndUserContains
@Cacheable(value="message", key="#threadUid + #type + #userUid", unless="#result == null") public Optional<MessageEntity> findByThreadUidAndTypeAndUserContains(String threadUid, String type, String userUid) -
getRecentMessages
@Cacheable(value="message", key="#threadTopic + #limit", unless="#result == null") public List<MessageEntity> getRecentMessages(String threadTopic, int limit) -
isMessageExists
-
create
- Specified by:
create
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
update
- Specified by:
update
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
doSave
Description copied from class:BaseRestService
子类实现具体的保存逻辑- Specified by:
doSave
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
delete
@Caching(evict=@CacheEvict(value="message",key="#message.uid")) public void delete(@NonNull MessageRequest message) - Specified by:
delete
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
deleteByUid
- Specified by:
deleteByUid
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
existsByUid
-
convertToResponse
- Specified by:
convertToResponse
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
handleOptimisticLockingFailureException
public MessageEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, MessageEntity entity) - Specified by:
handleOptimisticLockingFailureException
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
convertToExcel
Description copied from class:BaseRestServiceWithExport
转换为Excel对象 子类必须实现此方法- Specified by:
convertToExcel
in classBaseRestServiceWithExport<MessageEntity,
MessageRequest, MessageResponse, MessageExcel>
-
markAsRead
@Deprecated @CachePut(value="message", key="#messageUid") public MessageResponse markAsRead(String messageUid) Deprecated.此功能已迁移到企业版标记消息为已读- Parameters:
messageUid
- 消息UID- Returns:
- 更新后的消息响应
-
markThreadAsRead
@Deprecated @CacheEvict(value="message", allEntries=true) public Integer markThreadAsRead(String threadUid) Deprecated.此功能已迁移到企业版批量标记会话中所有消息为已读- Parameters:
threadUid
- 会话UID- Returns:
- 更新的消息数量
-
createSpecification
protected org.springframework.data.jpa.domain.Specification<MessageEntity> createSpecification(MessageRequest request) Description copied from class:BaseRestService
创建Specification对象,子类必须实现 用于queryByOrg的通用实现- Specified by:
createSpecification
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-
executePageQuery
protected org.springframework.data.domain.Page<MessageEntity> executePageQuery(org.springframework.data.jpa.domain.Specification<MessageEntity> spec, org.springframework.data.domain.Pageable pageable) Description copied from class:BaseRestService
执行分页查询,子类必须实现 用于queryByOrg的通用实现- Specified by:
executePageQuery
in classBaseRestService<MessageEntity,
MessageRequest, MessageResponse>
-