|
@@ -143,14 +143,27 @@ public class QwMsgController {
|
|
|
if (wxWorkMessageDTO.getReferid()!=0){
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
+ Long receiver = wxWorkMessageDTO.getReceiver();
|
|
|
+ Long sender = wxWorkMessageDTO.getSender();
|
|
|
+
|
|
|
+ // 1客户 2销售
|
|
|
+ int sendType = 2;
|
|
|
+
|
|
|
+ // 消息发送者用户ID
|
|
|
+ Long userId = receiver;
|
|
|
+ if (2000000000000000L - receiver > 0){
|
|
|
+ sendType = 1;
|
|
|
+ userId = sender;
|
|
|
+ }
|
|
|
+
|
|
|
if (wxWorkMessageDTO.getMsgtype()==2||wxWorkMessageDTO.getMsgtype()==0||wxWorkMessageDTO.getMsgtype()==16){
|
|
|
|
|
|
String content = wxWorkMessageDTO.getContent();
|
|
|
System.out.println("接收人:"+wxWorkMessageDTO.getReceiver());
|
|
|
System.out.println("发送人:"+wxWorkMessageDTO.getSender());
|
|
|
System.out.println("内容:"+content);
|
|
|
- Long receiver = wxWorkMessageDTO.getReceiver();
|
|
|
- Long sender = wxWorkMessageDTO.getSender();
|
|
|
+
|
|
|
if(wxWorkMessageDTO.getMsgtype()==16){
|
|
|
WxwSpeechToTextEntityDTO ste = new WxwSpeechToTextEntityDTO();
|
|
|
ste.setMsgid(wxWorkMessageDTO.getMsg_id());
|
|
@@ -164,26 +177,21 @@ public class QwMsgController {
|
|
|
if (2000000000000000L-receiver>0){
|
|
|
System.out.println("客户发送");
|
|
|
aiHookService.qwHookNotifyAiReply(id,sender,content,wxWorkMsgResp.getUuid(),wxWorkMessageDTO.getMsgtype());
|
|
|
-
|
|
|
- // 保存聊天消息
|
|
|
- QwMessageListVO message = aiHookService.saveQwMsg(id, sender, content, wxWorkMsgResp.getUuid(), 1, wxWorkMsgResp.getJson(), 1);
|
|
|
- QwImSocket.broadcast(message);
|
|
|
}else {
|
|
|
System.out.println("销售发送");
|
|
|
aiHookService.qwHookNotifyAddMsg(id,receiver,content,wxWorkMsgResp.getUuid());
|
|
|
-
|
|
|
- // 保存聊天消息
|
|
|
- QwMessageListVO message = aiHookService.saveQwMsg(id, receiver, content, wxWorkMsgResp.getUuid(), 2, wxWorkMsgResp.getJson(), 1);
|
|
|
- QwImSocket.broadcast(message);
|
|
|
}
|
|
|
|
|
|
+ // 保存聊天消息
|
|
|
+ QwMessageListVO message = aiHookService.saveQwMsg(id, userId, content, wxWorkMsgResp.getUuid(), sendType, wxWorkMsgResp.getJson(), 1);
|
|
|
+ QwImSocket.broadcast(message);
|
|
|
+
|
|
|
}
|
|
|
//语音通话
|
|
|
if (wxWorkMessageDTO.getMsgtype()==40){
|
|
|
if (wxWorkMessageDTO.getRecordtype()==null){
|
|
|
break;
|
|
|
}
|
|
|
- Long receiver = wxWorkMessageDTO.getReceiver();
|
|
|
Long extId=null;
|
|
|
Integer totalSeconds=0;
|
|
|
if (2000000000000000L-receiver>0){
|
|
@@ -217,35 +225,11 @@ public class QwMsgController {
|
|
|
}
|
|
|
// 图片消息
|
|
|
else if (wxWorkMessageDTO.getMsgtype() == 101){
|
|
|
- System.out.println(json);
|
|
|
- System.out.println(wxWorkMsgResp.getJson());
|
|
|
- Long receiver = wxWorkMessageDTO.getReceiver();
|
|
|
- Long sender = wxWorkMessageDTO.getSender();
|
|
|
-
|
|
|
- long userId;
|
|
|
- int sendType;
|
|
|
- if (2000000000000000L - receiver > 0){
|
|
|
- System.out.println("客户发起");
|
|
|
- userId = sender;
|
|
|
- sendType= 1;
|
|
|
- }else {
|
|
|
- System.out.println("销售发起");
|
|
|
- userId = receiver;
|
|
|
- sendType= 2;
|
|
|
- }
|
|
|
-
|
|
|
- String fileName = IdUtils.fastSimpleUUID() + ".jpg";
|
|
|
- WxWorkResponseDTO<String> fileUrlResp =
|
|
|
- aiHookService.getFileUrl(wxWorkMsgResp.getUuid(), wxWorkMessageDTO.getFile_id(), wxWorkMessageDTO.getAes_key(), wxWorkMessageDTO.getOpenim_cdn_authkey(), fileName, wxWorkMessageDTO.getFile_size(), serverId);
|
|
|
- if (fileUrlResp.getErrcode() != 0) {
|
|
|
- log.warn("获取图片地址失败: {}", fileUrlResp.getErrmsg());
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- String content = fileUrlResp.getData();
|
|
|
- // 保存聊天消息
|
|
|
- QwMessageListVO message = aiHookService.saveQwMsg(id, userId, content, wxWorkMsgResp.getUuid(), sendType, wxWorkMsgResp.getJson(), 2);
|
|
|
- QwImSocket.broadcast(message);
|
|
|
+ processImageMessage(serverId, wxWorkMessageDTO, wxWorkMsgResp, id, userId, sendType);
|
|
|
+ }
|
|
|
+ // gif 表情消息
|
|
|
+ else if (wxWorkMessageDTO.getMsgtype() == 104){
|
|
|
+ processEmotionDynamicMessage(wxWorkMessageDTO, wxWorkMsgResp, id, userId, sendType);
|
|
|
}
|
|
|
|
|
|
break;
|
|
@@ -258,6 +242,45 @@ public class QwMsgController {
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 处理图片消息
|
|
|
+ * @param serverId 服务器ID
|
|
|
+ * @param wxWorkMessageDTO 消息DTO
|
|
|
+ * @param wxWorkMsgResp 回调信息对象
|
|
|
+ * @param id 企微用户ID
|
|
|
+ * @param userId 消息发送者ID
|
|
|
+ * @param sendType 发送者类型 1客户 2销售
|
|
|
+ */
|
|
|
+ private void processImageMessage(Long serverId, WxWorkMessageDTO wxWorkMessageDTO, WxWorkMsgResp wxWorkMsgResp, Long id, Long userId, Integer sendType) {
|
|
|
+ String fileName = IdUtils.fastSimpleUUID() + ".jpg";
|
|
|
+ WxWorkResponseDTO<String> fileUrlResp =
|
|
|
+ aiHookService.getFileUrl(wxWorkMsgResp.getUuid(), wxWorkMessageDTO.getFile_id(), wxWorkMessageDTO.getAes_key(), wxWorkMessageDTO.getOpenim_cdn_authkey(), fileName, wxWorkMessageDTO.getFile_size(), serverId);
|
|
|
+ if (fileUrlResp.getErrcode() != 0) {
|
|
|
+ log.warn("获取图片地址失败: {}", fileUrlResp.getErrmsg());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ String content = fileUrlResp.getData();
|
|
|
+ // 保存聊天消息
|
|
|
+ QwMessageListVO message = aiHookService.saveQwMsg(id, userId, content, wxWorkMsgResp.getUuid(), sendType, wxWorkMsgResp.getJson(), 2);
|
|
|
+ QwImSocket.broadcast(message);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理动态表情消息
|
|
|
+ * @param wxWorkMessageDTO 消息DTO
|
|
|
+ * @param wxWorkMsgResp 回调信息对象
|
|
|
+ * @param id 企微用户ID
|
|
|
+ * @param userId 消息发送者ID
|
|
|
+ * @param sendType 发送者类型 1客户 2销售
|
|
|
+ */
|
|
|
+ private void processEmotionDynamicMessage(WxWorkMessageDTO wxWorkMessageDTO, WxWorkMsgResp wxWorkMsgResp, Long id, Long userId, int sendType) {
|
|
|
+ String content = wxWorkMessageDTO.getUrl();
|
|
|
+ // 保存聊天消息
|
|
|
+ QwMessageListVO message = aiHookService.saveQwMsg(id, userId, content, wxWorkMsgResp.getUuid(), sendType, wxWorkMsgResp.getJson(), 3);
|
|
|
+ QwImSocket.broadcast(message);
|
|
|
+ }
|
|
|
+
|
|
|
void qwUserStatus(String uid,Integer status){
|
|
|
Long id = redisCache.getCacheObject("qrCode:uuid:"+uid);
|
|
|
QwUser qwUser = new QwUser();
|