Browse Source

企微聊天-会话列表查询优化

Long 2 tuần trước cách đây
mục cha
commit
be8c1b4961

+ 3 - 7
fs-service/src/main/resources/mapper/qw/QwExternalContactMapper.xml

@@ -808,13 +808,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         from qw_external_contact qec
         left join qw_session qs on qec.id = qs.qw_ext_id and qs.is_room = 0
         left join (
-            select
-                session_id,
-                content,
-                create_time,
-                row_number() over (partition by session_id order by create_time desc) as rn
-            from qw_msg
-        ) qm on qm.session_id = qs.session_id and qm.rn = 1
+            select session_id, max(msg_id) as max_msg_id from qw_msg group by session_id
+        ) latest_msg on latest_msg.session_id = qs.session_id
+        left join qw_msg qm on qm.msg_id = latest_msg.max_msg_id
         where qec.qw_user_id = #{qwUserId}
         <if test="name != null and name != ''">
             and qec.name like concat('%', #{name}, '%')

+ 3 - 7
fs-service/src/main/resources/mapper/qw/QwGroupChatMapper.xml

@@ -224,13 +224,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         inner join qw_user qu on qu.qw_user_id = qgc.owner
         left join qw_session qs on qgc.chat_id = qs.chat_id and qs.is_room = 1
         left join (
-            select
-                session_id,
-                content,
-                create_time,
-                row_number() over (partition by session_id order by create_time desc) as rn
-            from qw_msg
-        ) qm on qm.session_id = qs.session_id and qm.rn = 1
+            select session_id, max(msg_id) as max_msg_id from qw_msg group by session_id
+        ) latest_msg on latest_msg.session_id = qs.session_id
+        left join qw_msg qm on qm.msg_id = latest_msg.max_msg_id
         where qu.id = #{qwUserId}
         <if test="name != null and name != ''">
             and qgc.name like concat('%', #{name}, '%')