Package com.bytedesk.service.queue
Class QueueService
java.lang.Object
com.bytedesk.service.queue.QueueService
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final QueueMemberRestServiceprivate final QueueRepositoryprivate final UidUtilsprivate final WorkgroupRepository -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate QueueMemberEntitycreateNewQueueMember(ThreadEntity threadEntity, UserProtobuf agent, WorkgroupEntity workgroupEntity, QueueTypeEnum queueType) 创建新的队列成员private QueueEntityenqueueAgent(ThreadEntity threadEntity, UserProtobuf agent, VisitorRequest visitorRequest) enqueueRobot(ThreadEntity threadEntity, UserProtobuf agent, VisitorRequest visitorRequest) private QueueMemberEntityenqueueToQueue(ThreadEntity threadEntity, UserProtobuf agent, WorkgroupEntity workgroupEntity, QueueTypeEnum queueType) 统一的入队方法enqueueWorkflow(ThreadEntity threadEntity, UserProtobuf workflow, VisitorRequest visitorRequest) enqueueWorkgroup(ThreadEntity threadEntity, UserProtobuf agent, WorkgroupEntity workgroupEntity, VisitorRequest visitorRequest) findByTopicAndDay(String queueTopic, String day) 根据队列主题和日期查询队列private QueueEntitygetAgentOrRobotQueue(UserProtobuf agent, String orgUid) 根据用户获取或创建 agent/robot 队列getAgentQueueStats(String agentUid) 获取客服的完整队列统计信息 包括今日服务人数、排队人数、接待人数、留言数、转人工数等getAgentTotalQueuingCount(String agentUid) 获取客服的完整排队人数统计 包括: 1.private QueueEntitygetOrCreateQueue(String queueTopic, String nickname, String type, String orgUid) 通用的队列获取或创建方法private QueueEntitygetQueue(ThreadEntity threadEntity, String queueNickname) 根据线程实体获取或创建队列private QueueMemberEntityhandleExistingMember(QueueMemberEntity member, UserProtobuf agent, ThreadEntity threadEntity, QueueTypeEnum queueType) 处理已存在的队列成员private <T> TretryOperation(Supplier<T> operation) 重试操作的通用方法private QueueMemberEntitysaveQueueMember(QueueMemberEntity member) 保存队列成员并验证结果private voidvalidateQueue(QueueEntity queue, String errorMessage) 验证队列是否可以入队
-
Field Details
-
queueMemberRestService
-
queueRepository
-
workgroupRepository
-
uidUtils
-
-
Constructor Details
-
QueueService
public QueueService()
-
-
Method Details
-
enqueueRobot
@Transactional public QueueMemberEntity enqueueRobot(ThreadEntity threadEntity, UserProtobuf agent, VisitorRequest visitorRequest) -
enqueueAgent
@Transactional public QueueMemberEntity enqueueAgent(ThreadEntity threadEntity, UserProtobuf agent, VisitorRequest visitorRequest) -
enqueueWorkgroup
@Transactional public QueueMemberEntity enqueueWorkgroup(ThreadEntity threadEntity, UserProtobuf agent, WorkgroupEntity workgroupEntity, VisitorRequest visitorRequest) -
enqueueWorkflow
@Transactional public QueueMemberEntity enqueueWorkflow(ThreadEntity threadEntity, UserProtobuf workflow, VisitorRequest visitorRequest) -
enqueueToQueue
@Transactional private QueueMemberEntity enqueueToQueue(ThreadEntity threadEntity, UserProtobuf agent, WorkgroupEntity workgroupEntity, QueueTypeEnum queueType) 统一的入队方法 -
handleExistingMember
private QueueMemberEntity handleExistingMember(QueueMemberEntity member, UserProtobuf agent, ThreadEntity threadEntity, QueueTypeEnum queueType) 处理已存在的队列成员 -
createNewQueueMember
private QueueMemberEntity createNewQueueMember(ThreadEntity threadEntity, UserProtobuf agent, WorkgroupEntity workgroupEntity, QueueTypeEnum queueType) 创建新的队列成员 -
getQueue
根据线程实体获取或创建队列 -
getAgentOrRobotQueue
根据用户获取或创建 agent/robot 队列 -
getOrCreateQueue
@Transactional private QueueEntity getOrCreateQueue(String queueTopic, String nickname, String type, String orgUid) 通用的队列获取或创建方法 -
findByTopicAndDay
根据队列主题和日期查询队列- Parameters:
queueTopic- 队列主题day- 日期(格式:yyyy-MM-dd)- Returns:
- 队列实体(可选)
-
createQueueEntity
-
saveQueueMember
保存队列成员并验证结果 -
validateQueue
验证队列是否可以入队 -
retryOperation
重试操作的通用方法 -
getAgentTotalQueuingCount
获取客服的完整排队人数统计 包括: 1. 直接在客服队列(agentQueue)中排队的人数(一对一会话) 2. 客服所在工作组队列中等待分配的排队人数(工作组会话,agentQueue 为 null)- Parameters:
agentUid- 客服UID- Returns:
- 完整排队人数统计结果
-
getAgentQueueStats
获取客服的完整队列统计信息 包括今日服务人数、排队人数、接待人数、留言数、转人工数等- Parameters:
agentUid- 客服UID- Returns:
- 完整队列统计响应
-