From d3bf5a0bf7f96261181dbb39ca255ced315671de Mon Sep 17 00:00:00 2001 From: 77 <77@77.com> Date: Sat, 13 Apr 2024 00:11:25 +0800 Subject: [PATCH] 123 --- .../cai/app/YxNotifyController.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/YxNotifyController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/YxNotifyController.java index d6f9eeae..1a4b5ea5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/YxNotifyController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/app/YxNotifyController.java @@ -3,12 +3,17 @@ package com.ruoyi.web.controller.cai.app; import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.cai.domain.UserChatRecord; +import com.ruoyi.cai.executor.ExecutorConstant; +import com.ruoyi.cai.service.UserChatRecordService; import com.ruoyi.cai.service.UserOnlineService; import com.ruoyi.common.core.domain.R; import com.ruoyi.yunxin.manager.YunxinManager; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StreamUtils; import org.springframework.web.bind.annotation.PostMapping; @@ -29,6 +34,8 @@ public class YxNotifyController { private YunxinManager yunxinManager; @Autowired private UserOnlineService onlineService; + @Autowired + private UserChatRecordService userChatRecordService; @PostMapping("/notify") @Operation(hidden = true) @@ -55,6 +62,35 @@ public class YxNotifyController { String accid = body.getString("accid"); String timestamp = body.getString("timestamp"); onlineService.updateOnlineByYunxin(eventType,Long.valueOf(accid),Long.valueOf(timestamp)); + }else if("1".equals(eventType)){ // 会话记录 + String convType = body.getString("convType"); + String msgType = body.getString("msgType"); + if("PICTURE".equals(msgType) && "PERSON".equals(convType)){ + String ext = body.getString("ext"); + ExecutorConstant.SYNC_EXECUTOR.execute(() -> { + try { + JSONObject extJson = JSON.parseObject(ext); + String recordId = extJson.getString("recordId"); + if(StringUtils.isEmpty(recordId)){ + log.warn("同步图片忽略,recordId为空"); + return; + } + UserChatRecord userChatRecord = userChatRecordService.getById(recordId); + if(userChatRecord == null){ + log.warn("同步图片忽略,recordId未找到记录"); + return; + } + String attach = body.getString("attach"); + JSONObject attachJson = JSON.parseObject(attach); + String url = attachJson.getString("url"); + userChatRecordService.update(Wrappers.lambdaUpdate(UserChatRecord.class) + .eq(UserChatRecord::getId, userChatRecord.getId()) + .set(UserChatRecord::getContent, url)); + }catch (Exception e){ + log.warn("同步图片失败!",e); + } + }); + } } return R.ok(); }