feat(user): Implement user module foundation
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nuaa.video.user.mapper.UserMessageMapper">
|
||||
|
||||
<!-- 查询私信列表(按会话分组) -->
|
||||
<select id="selectMessageGroupList" resultType="com.nuaa.video.user.entity.UserMessage">
|
||||
SELECT
|
||||
m.*,
|
||||
u1.nickname as sender_nickname,
|
||||
u1.avatar as sender_avatar,
|
||||
u2.nickname as receiver_nickname,
|
||||
u2.avatar as receiver_avatar
|
||||
FROM (
|
||||
SELECT
|
||||
MAX(id) as id,
|
||||
IF(sender_id = #{userId}, receiver_id, sender_id) as chat_user_id,
|
||||
MAX(create_time) as latest_time
|
||||
FROM
|
||||
user_message
|
||||
WHERE
|
||||
sender_id = #{userId} OR receiver_id = #{userId}
|
||||
GROUP BY
|
||||
chat_user_id
|
||||
ORDER BY
|
||||
latest_time DESC
|
||||
) as t
|
||||
JOIN user_message m ON t.id = m.id
|
||||
JOIN user_info u1 ON m.sender_id = u1.id
|
||||
JOIN user_info u2 ON m.receiver_id = u2.id
|
||||
ORDER BY m.create_time DESC
|
||||
</select>
|
||||
|
||||
<!-- 查询与指定用户的私信记录 -->
|
||||
<select id="selectMessageDetail" resultType="com.nuaa.video.user.entity.UserMessage">
|
||||
SELECT
|
||||
m.*,
|
||||
u1.nickname as sender_nickname,
|
||||
u1.avatar as sender_avatar,
|
||||
u2.nickname as receiver_nickname,
|
||||
u2.avatar as receiver_avatar
|
||||
FROM
|
||||
user_message m
|
||||
JOIN user_info u1 ON m.sender_id = u1.id
|
||||
JOIN user_info u2 ON m.receiver_id = u2.id
|
||||
WHERE
|
||||
(m.sender_id = #{userId} AND m.receiver_id = #{targetId})
|
||||
OR
|
||||
(m.sender_id = #{targetId} AND m.receiver_id = #{userId})
|
||||
ORDER BY
|
||||
m.create_time ASC
|
||||
</select>
|
||||
|
||||
<!-- 标记私信为已读 -->
|
||||
<update id="markMessageRead">
|
||||
UPDATE user_message
|
||||
SET is_read = 1
|
||||
WHERE receiver_id = #{userId} AND sender_id = #{senderId} AND is_read = 0
|
||||
</update>
|
||||
|
||||
<!-- 获取未读私信数量 -->
|
||||
<select id="countUnreadMessage" resultType="int">
|
||||
SELECT COUNT(1)
|
||||
FROM user_message
|
||||
WHERE receiver_id = #{userId} AND is_read = 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user