Procházet zdrojové kódy

微信会话内容存储获取优化,下载暂时关闭

anderx před 6 měsíci
rodič
revize
59918fadd7

+ 4 - 0
src/main/java/com/kede/common/dao/ChatMsgMapper.java

@@ -85,5 +85,9 @@ public interface ChatMsgMapper {
 
 
 
 
     List<ChatMsg> selectMsgById(@Param("userId") String userId, @Param("type") Integer type);
     List<ChatMsg> selectMsgById(@Param("userId") String userId, @Param("type") Integer type);
+
+    List<ChatMsg> selectByRoomId(String roomId);
+
+    List<ChatMsg> selectByUserIdAndFoId(@Param("userId") String userId, @Param("foId") String foId);
 }
 }
 
 

+ 18 - 0
src/main/java/com/kede/common/mapper/ChatMsgMapper.xml

@@ -268,5 +268,23 @@
             and type = #{type}
             and type = #{type}
         </if>
         </if>
     </select>
     </select>
+    <select id="selectByRoomId" resultMap="ChatMsgMap">
+        select
+        <include refid="ChatMsgAllSql"/>
+            from chat_msg
+        where roomid = #{roomId}
+        order by msgtime
+    </select>
+    <select id="selectByUserIdAndFoId" resultMap="ChatMsgMap">
+        select
+        <include refid="ChatMsgAllSql"/>
+        from chat_msg
+        where    from_id = #{userId} and tolist = #{foId}
+        union
+        select
+        <include refid="ChatMsgAllSql"/>
+        from  chat_msg
+        where tolist = #{userId} and from_id = #{foId}
+    </select>
 </mapper>
 </mapper>
 
 

+ 3 - 0
src/main/java/com/kede/common/model/ChatMsg.java

@@ -1,5 +1,7 @@
 package com.kede.common.model;
 package com.kede.common.model;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 import java.util.Date;
 import java.util.Date;
 import java.io.Serializable;
 import java.io.Serializable;
 
 
@@ -152,6 +154,7 @@ public class ChatMsg implements Serializable {
         this.roomName = roomName;
         this.roomName = roomName;
     }
     }
 
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     public Date getMsgtime() {
     public Date getMsgtime() {
         return msgtime;
         return msgtime;
     }
     }

+ 32 - 7
src/main/java/com/kede/wechat/controller/ConversationContentController.java

@@ -1,7 +1,10 @@
 package com.kede.wechat.controller;
 package com.kede.wechat.controller;
 
 
 
 
+import com.kede.common.bo.Result;
+import com.kede.common.constant.ErrorConstants;
 import com.kede.common.controller.BaseController;
 import com.kede.common.controller.BaseController;
+import com.kede.common.utils.StringUtils;
 import com.kede.wechat.bo.InputGetChatName;
 import com.kede.wechat.bo.InputGetChatName;
 import com.kede.wechat.bo.InputgetUserMsg;
 import com.kede.wechat.bo.InputgetUserMsg;
 import com.kede.wechat.service.ConversationContentService;
 import com.kede.wechat.service.ConversationContentService;
@@ -59,28 +62,50 @@ public class ConversationContentController extends BaseController {
     }
     }
 
 
     /**
     /**
-     * 数据解析
+     * 查看企业存储名单
      */
      */
     @RequestMapping(value = "/getUserMsg",  method = RequestMethod.GET)
     @RequestMapping(value = "/getUserMsg",  method = RequestMethod.GET)
-    public Object getUserMsg(InputgetUserMsg in)
+    public Result getUserMsg(InputgetUserMsg in)
     {
     {
-        return conversationContentService.getUserMsg(in);
+        Result res = new Result();
+        return res.data(conversationContentService.getUserMsg(in));
     }
     }
 
 
     /**
     /**
      * 查看单聊列表
      * 查看单聊列表
      */
      */
     @RequestMapping(value = "/getMyIdByUser",  method = RequestMethod.GET)
     @RequestMapping(value = "/getMyIdByUser",  method = RequestMethod.GET)
-    public Object getMyIdByUser(InputgetUserMsg in)
+    public Result getMyIdByUser(InputgetUserMsg in)
     {
     {
-        return conversationContentService.getMyIdByUser(in);
+        Result res = new Result();
+
+        return res.data(conversationContentService.getMyIdByUser(in));
     }
     }
     /**
     /**
      * 查看群聊列表
      * 查看群聊列表
      */
      */
     @RequestMapping(value = "/getMyIdByRoom",  method = RequestMethod.GET)
     @RequestMapping(value = "/getMyIdByRoom",  method = RequestMethod.GET)
-    public Object getMyIdByRoom(InputgetUserMsg in)
+    public Result getMyIdByRoom(InputgetUserMsg in)
+    {
+        Result res = new Result();
+        return res.data(conversationContentService.getMyIdByRoom(in));
+    }
+
+    /**
+     * 查看聊天信息
+     */
+    @RequestMapping(value = "/getMsgList",  method = RequestMethod.GET)
+    public Result getMsgList(InputgetUserMsg in)
     {
     {
-        return conversationContentService.getMyIdByRoom(in);
+        Result res = new Result();
+        if (StringUtils.isEmpty(in.getUserId())){
+            res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"用户ID"));
+            return res;
+        }
+        if (StringUtils.isNotEmpty(in.getUserId())&&StringUtils.isNotEmpty(in.getRoomId())){
+            res.getError().add(buildError("用户ID和群ID不能同时为空"));
+            return res;
+        }
+        return res.data(conversationContentService.getMsgList(in));
     }
     }
 }
 }

+ 2 - 0
src/main/java/com/kede/wechat/service/ConversationContentService.java

@@ -28,4 +28,6 @@ public interface ConversationContentService {
     Object getMyIdByUser(InputgetUserMsg in);
     Object getMyIdByUser(InputgetUserMsg in);
 
 
     Object getMyIdByRoom(InputgetUserMsg in);
     Object getMyIdByRoom(InputgetUserMsg in);
+
+    Object getMsgList(InputgetUserMsg in);
 }
 }

+ 13 - 0
src/main/java/com/kede/wechat/service/impl/ConversationContentServiceImpl.java

@@ -593,6 +593,19 @@ public class ConversationContentServiceImpl extends BaseMybatisDao<ChatMsgUserMa
         return chatMsgUserMapper.selectMyIdByRoom(in.getUserId());
         return chatMsgUserMapper.selectMyIdByRoom(in.getUserId());
     }
     }
 
 
+    @Override
+    public Object getMsgList(InputgetUserMsg in) {
+        if (StringUtils.isNotEmpty(in.getRoomId())){
+           return chatMsgMapper.selectByRoomId(in.getRoomId());
+        }else if (StringUtils.isNotEmpty(in.getUserId())&&StringUtils.isNotEmpty(in.getFoId())){
+            List<ChatMsg> chatMsgs = chatMsgMapper.selectByUserIdAndFoId(in.getUserId(), in.getFoId());
+            //将list按时间先后排序
+            chatMsgs.sort(Comparator.comparing(ChatMsg::getMsgtime));
+            return chatMsgs;
+        }
+        return null;
+    }
+
 
 
     private Map<String,Object> getUserName(String url,Integer type){
     private Map<String,Object> getUserName(String url,Integer type){
         String name = null;
         String name = null;