This commit is contained in:
jack ning
2025-04-08 10:39:47 +08:00
parent d11074f183
commit a1f3cd2d60

View File

@@ -2,7 +2,7 @@
* @Author: jackning 270580156@qq.com
* @Date: 2024-07-15 15:58:23
* @LastEditors: jackning 270580156@qq.com
* @LastEditTime: 2025-04-08 10:08:50
* @LastEditTime: 2025-04-08 10:37:10
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
* Please be aware of the BSL license restrictions before installing Bytedesk IM
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
@@ -138,6 +138,7 @@ public class WorkgroupThreadRoutingStrategy implements ThreadRoutingStrategy {
//
// 未强制转人工的情况下,判断是否转机器人
if (!visitorRequest.getForceAgent()) {
log.info("Not force transfer to agent");
Boolean isOffline = !workgroup.isConnected();
Boolean isInServiceTime = workgroup.getMessageLeaveSettings().isInServiceTime();
Boolean transferToRobot = workgroup.getRobotSettings().shouldTransferToRobot(isOffline, isInServiceTime);
@@ -152,6 +153,8 @@ public class WorkgroupThreadRoutingStrategy implements ThreadRoutingStrategy {
throw new RuntimeException("Workgroup robot not found");
}
}
} else {
log.info("Force transfer to agent");
}
// 下面人工接待
@@ -335,17 +338,17 @@ public class WorkgroupThreadRoutingStrategy implements ThreadRoutingStrategy {
applicationEventPublisher.publishEvent(new ThreadProcessCreateEvent(this, savedThread));
// 查询最新一条消息如果距离当前时间不超过30分钟则直接使用之前的消息否则创建新的消息
Optional<MessageEntity> messageOptional = messageRestService.findLatestByThreadUid(savedThread.getUid());
if (messageOptional.isPresent()) {
MessageEntity message = messageOptional.get();
if (message.getCreatedAt().isAfter(LocalDateTime.now().minusMinutes(30))) {
// 距离当前时间不超过30分钟则直接使用之前的消息
// 部分用户测试的离线状态收不到消息以为是bug其实不是是离线状态不发送消息。防止此种情况所以还是推送一下
MessageProtobuf messageProtobuf = ServiceConvertUtils.convertToMessageProtobuf(message, savedThread);
// messageSendService.sendProtobufMessage(messageProtobuf);
return messageProtobuf;
}
}
// Optional<MessageEntity> messageOptional = messageRestService.findLatestByThreadUid(savedThread.getUid());
// if (messageOptional.isPresent()) {
// MessageEntity message = messageOptional.get();
// if (message.getCreatedAt().isAfter(LocalDateTime.now().minusMinutes(30))) {
// // 距离当前时间不超过30分钟则直接使用之前的消息
// // 部分用户测试的离线状态收不到消息以为是bug其实不是是离线状态不发送消息。防止此种情况所以还是推送一下
// MessageProtobuf messageProtobuf = ServiceConvertUtils.convertToMessageProtobuf(message, savedThread);
// // messageSendService.sendProtobufMessage(messageProtobuf);
// return messageProtobuf;
// }
// }
MessageEntity message = ThreadMessageUtil.getThreadRobotWelcomeMessage(content, savedThread);
messageRestService.save(message);