Class VisitorThreadService
java.lang.Object
com.bytedesk.core.base.BaseRestService<VisitorThreadEntity,VisitorThreadRequest,VisitorThreadResponse>
com.bytedesk.service.visitor_thread.VisitorThreadService
@Service
public class VisitorThreadService
extends BaseRestService<VisitorThreadEntity,VisitorThreadRequest,VisitorThreadResponse>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AgentRestServiceprivate final IMessageSendServiceprivate final org.modelmapper.ModelMapperprivate final QueueMemberRestServiceprivate final ThreadRestServiceprivate final UidUtilsprivate final VisitorThreadRepositoryFields inherited from class com.bytedesk.core.base.BaseRestService
authService -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidautoRemindAgentOrCloseThread(List<ThreadEntity> threads) TODO: 频繁查库,待优化 1.convertToResponse(VisitorThreadEntity entity) create(VisitorThreadRequest request) createAgentThread(VisitorRequest visitorRequest, AgentEntity agent, String topic) createRobotThread(VisitorRequest visitorRequest, RobotEntity robot, String topic) protected org.springframework.data.jpa.domain.Specification<VisitorThreadEntity>createSpecification(VisitorThreadRequest request) 创建Specification对象,子类必须实现 用于queryByOrg的通用实现createWorkflowThread(VisitorRequest visitorRequest, WorkflowEntity workflow, String topic) createWorkgroupThread(VisitorRequest visitorRequest, WorkgroupEntity workgroup, String topic) voiddelete(VisitorThreadRequest entity) voiddeleteByUid(String uid) protected VisitorThreadEntitydoSave(VisitorThreadEntity entity) 子类实现具体的保存逻辑protected org.springframework.data.domain.Page<VisitorThreadEntity>executePageQuery(org.springframework.data.jpa.domain.Specification<VisitorThreadEntity> spec, org.springframework.data.domain.Pageable pageable) 执行分页查询,子类必须实现 用于queryByOrg的通用实现existsByUid(String uid) findFirstByTopic(String topic) handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, VisitorThreadEntity entity) reInitAgentThreadExtra(ThreadEntity thread, AgentEntity agent) reInitRobotThreadExtra(ThreadEntity thread, RobotEntity robot) reInitWorkflowThreadExtra(ThreadEntity thread, WorkflowEntity workflow) reInitWorkgroupThreadExtra(VisitorRequest visitorRequest, ThreadEntity thread, WorkgroupEntity workgroup) private voidsendRemindMessage(QueueMemberEntity queueMember, ThreadEntity thread, AgentEntity agent) update(ThreadEntity thread) update(VisitorThreadRequest request) Methods inherited from class com.bytedesk.core.base.BaseRestService
deleteByOrgUid, findByOrgUid, getUidFromRequest, queryByOrg, queryByUid, queryByUser, recover, save, setUserUidToRequest
-
Field Details
-
visitorThreadRepository
-
threadRestService
-
modelMapper
private final org.modelmapper.ModelMapper modelMapper -
uidUtils
-
queueMemberRestService
-
agentRestService
-
messageSendService
-
-
Constructor Details
-
VisitorThreadService
public VisitorThreadService()
-
-
Method Details
-
findByUid
@Cacheable(value="visitor_thread", key="#uid", unless="#result == null") public Optional<VisitorThreadEntity> findByUid(String uid) - Specified by:
findByUidin classBaseRestService<VisitorThreadEntity,VisitorThreadRequest, VisitorThreadResponse>
-
existsByUid
-
findFirstByTopic
@Cacheable(value="visitor_thread", key="#topic", unless="#result == null") public Optional<VisitorThreadEntity> findFirstByTopic(String topic) -
createWorkgroupThread
public ThreadEntity createWorkgroupThread(VisitorRequest visitorRequest, WorkgroupEntity workgroup, String topic) -
reInitWorkgroupThreadExtra
public ThreadEntity reInitWorkgroupThreadExtra(VisitorRequest visitorRequest, ThreadEntity thread, WorkgroupEntity workgroup) -
createAgentThread
public ThreadEntity createAgentThread(VisitorRequest visitorRequest, AgentEntity agent, String topic) -
reInitAgentThreadExtra
-
createRobotThread
public ThreadEntity createRobotThread(VisitorRequest visitorRequest, RobotEntity robot, String topic) -
reInitRobotThreadExtra
-
createWorkflowThread
public ThreadEntity createWorkflowThread(VisitorRequest visitorRequest, WorkflowEntity workflow, String topic) -
reInitWorkflowThreadExtra
-
update
-
create
- Specified by:
createin classBaseRestService<VisitorThreadEntity,VisitorThreadRequest, VisitorThreadResponse>
-
update
- Specified by:
updatein classBaseRestService<VisitorThreadEntity,VisitorThreadRequest, VisitorThreadResponse>
-
autoRemindAgentOrCloseThread
TODO: 频繁查库,待优化 1. 超时关闭会话 2. 超时未回复会话,发送会话超时提醒 -
sendRemindMessage
private void sendRemindMessage(QueueMemberEntity queueMember, ThreadEntity thread, AgentEntity agent) -
doSave
Description copied from class:BaseRestService子类实现具体的保存逻辑- Specified by:
doSavein classBaseRestService<VisitorThreadEntity,VisitorThreadRequest, VisitorThreadResponse>
-
deleteByUid
- Specified by:
deleteByUidin classBaseRestService<VisitorThreadEntity,VisitorThreadRequest, VisitorThreadResponse>
-
delete
- Specified by:
deletein classBaseRestService<VisitorThreadEntity,VisitorThreadRequest, VisitorThreadResponse>
-
handleOptimisticLockingFailureException
public VisitorThreadEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, VisitorThreadEntity entity) -
convertToResponse
- Specified by:
convertToResponsein classBaseRestService<VisitorThreadEntity,VisitorThreadRequest, VisitorThreadResponse>
-
createSpecification
protected org.springframework.data.jpa.domain.Specification<VisitorThreadEntity> createSpecification(VisitorThreadRequest request) Description copied from class:BaseRestService创建Specification对象,子类必须实现 用于queryByOrg的通用实现- Specified by:
createSpecificationin classBaseRestService<VisitorThreadEntity,VisitorThreadRequest, VisitorThreadResponse>
-
executePageQuery
protected org.springframework.data.domain.Page<VisitorThreadEntity> executePageQuery(org.springframework.data.jpa.domain.Specification<VisitorThreadEntity> spec, org.springframework.data.domain.Pageable pageable) Description copied from class:BaseRestService执行分页查询,子类必须实现 用于queryByOrg的通用实现- Specified by:
executePageQueryin classBaseRestService<VisitorThreadEntity,VisitorThreadRequest, VisitorThreadResponse>
-