Browse Source

微信会话内容存储企业名称BUG修复

anderx 6 months ago
parent
commit
9c26c3cd99

+ 0 - 30
src/main/java/com/kede/common/task/ConversationContentTask.java

@@ -69,37 +69,7 @@ public class ConversationContentTask {
         System.out.println("=========================================获取数据完成=====耗时"+f+"分"+m+"秒=========================");
     }
 
-    /**
-     * 测试
-     */
-    @RequestMapping(value ="/open/test", method = RequestMethod.GET)
-    public void pushTest() {
-        ChatMsg chatMsg = chatMsgMapper.selectById(476);
-        StringJoiner stringJoiner = new StringJoiner(",");
-        if (StringUtils.isNotEmpty(chatMsg.getTolist())){
-            //用逗号分割
-            String[] tolistArr = chatMsg.getTolist().split(",");
-            //获取接收者名称
-            int x=0;
-            for (String tolistName : tolistArr) {
-                //x为获取成功时
-                if (x!=84061){
-                    Map<String, Object> map = conversationContentService.pushGetChatName(tolistName);
-                    String name = map.get("name").toString();
-                    x= (int) map.get("code");
-                    if (name != null){
-                        stringJoiner.add(name);
-                    }
-                }
-            }
-        }
-        chatMsg.setTolistName(stringJoiner.toString());
-        //获取群名称
-        chatMsg.setRoomName(conversationContentService.pushGetRoomName(chatMsg));
 
-        chatMsgMapper.update(chatMsg);
-
-    }
 
     private void pushChatMsg(List<InputChatMsg> list) {
         int index=0;

+ 17 - 18
src/main/java/com/kede/wechat/service/impl/ConversationContentServiceImpl.java

@@ -216,7 +216,7 @@ public class ConversationContentServiceImpl extends BaseMybatisDao<ChatMsgUserMa
                     String content = contentJson.getString("content");
                     chatMsg.setContent(content);
                 }else {
-                    String url =uploadPath;
+                    String url ="";
                     com.alibaba.fastjson.JSONObject content = e.getJSONObject("content");
                     String sdkfileid=content.getString("sdkfileid");
                     if (type.equals("file")){
@@ -225,15 +225,15 @@ public class ConversationContentServiceImpl extends BaseMybatisDao<ChatMsgUserMa
                         if (osname.contains("Windows")) {
 //                                filename = new String(filename.getBytes("GBK"),"UTF-8");
                             String safeName=filename.replaceAll("[<>:\"/\\\\|?*,、]", "_");
-                            url = url +"/wechat/"+ safeName;
+                            url="/wechat/"+ safeName;
                         }
                     }else if (type.equals("image")) {
-                        url = url + "/wechat/" + System.currentTimeMillis() + ".jpg";
+                        url="/wechat/" + System.currentTimeMillis() + ".jpg";
                         com.alibaba.fastjson.JSONObject image = jsonObject.getJSONObject("image");
                     }else {
                         chatMsg.setContent(chatMsg.getContent()+"[附件="+e+"]");
                     }
-                    downloadFile(sdk, sdkfileid, url);
+                    downloadFile(sdk, sdkfileid, uploadPath+ url);
                     chatMsg.setMsgurl(url);
                 }
             }
@@ -266,9 +266,8 @@ public class ConversationContentServiceImpl extends BaseMybatisDao<ChatMsgUserMa
     }
 
     private String pushFileUrl(long sdk, String msgtype, com.alibaba.fastjson.JSONObject jsonObject) {
-        String url = uploadPath;
+        String url = "";
         String sdkfileid=null;
-
         if (msgtype.equals("file")){
             com.alibaba.fastjson.JSONObject file = jsonObject.getJSONObject("file");
             String filename = file.getString("filename");
@@ -277,14 +276,14 @@ public class ConversationContentServiceImpl extends BaseMybatisDao<ChatMsgUserMa
             if (osname.contains("Windows")) {
 //                    filename = new String(filename.getBytes("GBK"),"UTF-8");
                 String safeName=filename.replaceAll("[<>:\"/\\\\|?*,、]", "_");
-                url = url +"/wechat/"+ safeName;
+                url = "/wechat/"+ safeName;
             }
         }else if (msgtype.equals("image")){
-            url = url +"/wechat/"+ System.currentTimeMillis()+".jpg";
+            url = "/wechat/"+ System.currentTimeMillis()+".jpg";
             com.alibaba.fastjson.JSONObject image = jsonObject.getJSONObject("image");
             sdkfileid = image.getString("sdkfileid");
         }else if (msgtype.equals("voice")){
-            url = url +"/wechat/"+ System.currentTimeMillis()+".mp3";
+            url = "/wechat/"+ System.currentTimeMillis()+".mp3";
             com.alibaba.fastjson.JSONObject image = jsonObject.getJSONObject("voice");
             sdkfileid = image.getString("sdkfileid");
         }else if (msgtype.equals("video")){
@@ -292,7 +291,7 @@ public class ConversationContentServiceImpl extends BaseMybatisDao<ChatMsgUserMa
             com.alibaba.fastjson.JSONObject image = jsonObject.getJSONObject("video");
         }
 //        下载文件
-        downloadFile(sdk, sdkfileid, url);
+        downloadFile(sdk, sdkfileid, uploadPath+url);
         return url;
     }
 
@@ -491,14 +490,14 @@ public class ConversationContentServiceImpl extends BaseMybatisDao<ChatMsgUserMa
      */
     @Override
     public String pushGetRoomName(ChatMsg chatMsg) {
-        String name=null;
+        String roomname=null;
                         //        https://qyapi.weixin.qq.com/cgi-bin/externalcontact/groupchat/get?access_token=ACCESS_TOKEN
         String roomid = chatMsg.getRoomid();
         ChatMsgUser chatMsgUser = chatMsgUserMapper.selectByUserId(roomid);
         if (chatMsgUser != null){
             return chatMsgUser.getName();
         }else {
-            String roomname=null;
+
             //查询编号中有没有external
             String msgIdSub = chatMsg.getMsgid();
             int i = msgIdSub.indexOf("external");
@@ -512,7 +511,7 @@ public class ConversationContentServiceImpl extends BaseMybatisDao<ChatMsgUserMa
                 if (StringUtils.isBlank(roomname)){
                     com.alibaba.fastjson.JSONObject groupChat = jsonObject.getJSONObject("group_chat");
                     if (groupChat!=null){
-                        name = groupChat.getString("name");
+                        roomname = groupChat.getString("name");
                     }
                 }
                 if (jsonObject.getInteger("errcode")==0){
@@ -547,12 +546,12 @@ public class ConversationContentServiceImpl extends BaseMybatisDao<ChatMsgUserMa
                 chatMsgUser.setName(roomname);
             }
             chatMsgUserMapper.insert(chatMsgUser);
-            chatMsgUser.setName("未知群("+chatMsgUser.getId()+")");
-            chatMsgUserMapper.update(chatMsgUser);
-
+            if (StringUtils.isBlank(roomname)){
+                chatMsgUser.setName("未知群("+chatMsgUser.getId()+")");
+                chatMsgUserMapper.update(chatMsgUser);
+            }
         }
-
-        return name;
+        return roomname;
     }
 
     @Override