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 AgentRestService
private final IMessageSendService
private final org.modelmapper.ModelMapper
private final QueueMemberRestService
private final ThreadRestService
private final UidUtils
private final VisitorThreadRepository
Fields inherited from class com.bytedesk.core.base.BaseRestService
authService
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
autoRemindAgentOrCloseThread
(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) void
delete
(VisitorThreadRequest entity) void
deleteByUid
(String uid) protected VisitorThreadEntity
doSave
(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 void
sendRemindMessage
(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:
findByUid
in 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:
create
in classBaseRestService<VisitorThreadEntity,
VisitorThreadRequest, VisitorThreadResponse>
-
update
- Specified by:
update
in 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:
doSave
in classBaseRestService<VisitorThreadEntity,
VisitorThreadRequest, VisitorThreadResponse>
-
deleteByUid
- Specified by:
deleteByUid
in classBaseRestService<VisitorThreadEntity,
VisitorThreadRequest, VisitorThreadResponse>
-
delete
- Specified by:
delete
in classBaseRestService<VisitorThreadEntity,
VisitorThreadRequest, VisitorThreadResponse>
-
handleOptimisticLockingFailureException
public VisitorThreadEntity handleOptimisticLockingFailureException(org.springframework.orm.ObjectOptimisticLockingFailureException e, VisitorThreadEntity entity) -
convertToResponse
- Specified by:
convertToResponse
in 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:
createSpecification
in 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:
executePageQuery
in classBaseRestService<VisitorThreadEntity,
VisitorThreadRequest, VisitorThreadResponse>
-