u
This commit is contained in:
1 parent
6fd3bf5138
commit
28678fb4df
13 files changed
+358
-136
No files matched your search
+24
-17
@@ -9,34 +9,41 @@
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT
|
||||
f.b_id AS id,
|
||||
f.b_friend_id AS friendId,
|
||||
u.b_name AS friendName,
|
||||
u.b_avatar AS friendAvatar,
|
||||
f.b_unread_count AS unreadCount,
|
||||
m.b_id AS lastMessageId,
|
||||
m.b_send_time AS lastMessageTime,
|
||||
m.b_type AS lastMessageType,
|
||||
m.b_content AS lastMessageContent,
|
||||
ROW_NUMBER() OVER (
|
||||
ORDER BY
|
||||
<if test="id != null and id != 0">
|
||||
CASE WHEN f.b_id = #{id} THEN 0 ELSE 1 END,
|
||||
</if>
|
||||
m.b_send_time DESC
|
||||
) AS rn
|
||||
f.b_id AS id,
|
||||
f.b_friend_id AS friendId,
|
||||
u.b_name AS friendName,
|
||||
u.b_avatar AS friendAvatar,
|
||||
f.b_unread_count AS unreadCount,
|
||||
m.b_id AS lastMessageId,
|
||||
m.b_send_time AS lastMessageTime,
|
||||
m.b_type AS lastMessageType,
|
||||
m.b_content AS lastMessageContent,
|
||||
ROW_NUMBER() OVER (
|
||||
ORDER BY
|
||||
<if test="id != null and id != 0">
|
||||
CASE WHEN f.b_id = #{id} THEN 0 ELSE 1 END,
|
||||
</if>
|
||||
m.b_send_time DESC
|
||||
) AS rn
|
||||
FROM b_im_friend f
|
||||
LEFT JOIN b_company_user u ON f.b_friend_id = u.b_id
|
||||
LEFT JOIN b_im_private_message m ON f.b_last_message_id = m.b_id
|
||||
WHERE f.b_user_id = #{userId}
|
||||
) AS t
|
||||
<if test="name != null and name != ''">
|
||||
AND u.b_name LIKE '%' + #{name} + '%'
|
||||
</if>
|
||||
) t
|
||||
WHERE t.rn BETWEEN #{offset} AND #{limit}
|
||||
</select>
|
||||
|
||||
<select id="selectFriendTotal" resultType="java.lang.Long">
|
||||
SELECT COUNT(*)
|
||||
FROM b_im_friend f
|
||||
LEFT JOIN b_company_user u ON f.b_friend_id = u.b_id
|
||||
WHERE f.b_user_id = #{userId}
|
||||
<if test="name != null and name != ''">
|
||||
AND u.b_name LIKE '%' + #{name} + '%'
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
+27
-14
@@ -9,35 +9,48 @@
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT
|
||||
g.b_id AS id,
|
||||
g.b_name AS name,
|
||||
g.b_avatar AS avatar,
|
||||
g.b_id AS groupId,
|
||||
g.b_name AS groupName,
|
||||
g.b_avatar AS groupAvatar,
|
||||
gu.b_unread_count AS unreadCount,
|
||||
|
||||
m.b_id AS lastMessageId,
|
||||
m.b_send_time AS lastMessageTime,
|
||||
m.b_type AS lastMessageType,
|
||||
m.b_content AS lastMessageContent,
|
||||
ROW_NUMBER() OVER (
|
||||
ORDER BY
|
||||
|
||||
u.b_id AS lastMessageSenderId,
|
||||
u.b_name AS lastMessageSenderName,
|
||||
u.b_avatar AS lastMessageSenderAvatar,
|
||||
|
||||
ROW_NUMBER() OVER (
|
||||
ORDER BY
|
||||
<if test="id != null and id != 0">
|
||||
CASE WHEN g.b_id = #{id} THEN 0 ELSE 1 END,
|
||||
</if>
|
||||
m.b_send_time DESC
|
||||
) AS rn
|
||||
FROM b_im_group g
|
||||
INNER JOIN b_im_group_user gu ON g.b_id = gu.b_group_id
|
||||
LEFT JOIN b_im_group_message m ON gu.b_last_message_id = m.b_id
|
||||
WHERE gu.b_user_id = #{userId}
|
||||
) AS t
|
||||
m.b_send_time DESC
|
||||
) AS rn
|
||||
FROM b_im_group g
|
||||
INNER JOIN b_im_group_user gu ON g.b_id = gu.b_group_id
|
||||
LEFT JOIN b_im_group_message m ON gu.b_last_message_id = m.b_id
|
||||
LEFT JOIN b_company_user u ON m.b_sender_id = u.b_id
|
||||
WHERE gu.b_user_id = #{userId}
|
||||
<if test="name != null and name != ''">
|
||||
AND g.b_name LIKE '%' + #{name} + '%'
|
||||
</if>
|
||||
) t
|
||||
WHERE t.rn BETWEEN #{offset} AND #{limit}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectGroupTotal" resultType="java.lang.Long">
|
||||
SELECT COUNT(DISTINCT g.b_id)
|
||||
FROM b_im_group g
|
||||
INNER JOIN b_im_group_user gu ON g.b_id = gu.b_group_id
|
||||
INNER JOIN b_im_group_user gu ON g.b_id = gu.b_group_id
|
||||
WHERE gu.b_user_id = #{userId}
|
||||
<if test="name != null and name != ''">
|
||||
AND g.b_name LIKE '%' + #{name} + '%'
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
Reference in new issue
Block a user