完成基本对话功能、消息入库和创建会话功能
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
<?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.bao.dating.mapper.ChatRecordsMapper">
|
||||
|
||||
<!-- 插入聊天记录 -->
|
||||
<insert id="insert" useGeneratedKeys="true" keyProperty="chatId">
|
||||
INSERT INTO chat_records
|
||||
(
|
||||
sender_user_id,
|
||||
receiver_user_id,
|
||||
message_content,
|
||||
message_type,
|
||||
read_status,
|
||||
send_time,
|
||||
message_status,
|
||||
created_at,
|
||||
updated_at
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{senderUserId},
|
||||
#{receiverUserId},
|
||||
#{messageContent},
|
||||
#{messageType},
|
||||
#{readStatus},
|
||||
#{sendTime},
|
||||
#{messageStatus},
|
||||
NOW(),
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?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.bao.dating.mapper.ChatSessionsMapper">
|
||||
|
||||
<!-- 如果发送方不存在会话则创建 -->
|
||||
<insert id="insertIfNotExistsForSender" parameterType="com.bao.dating.pojo.entity.ChatSessions">
|
||||
INSERT INTO chat_sessions
|
||||
(user_id, target_user_id, session_name, last_message_id, last_message_content, last_message_time,
|
||||
unread_count, session_status, top_status, mute_status, created_at, updated_at)
|
||||
SELECT
|
||||
#{userId}, #{targetUserId}, #{sessionName}, #{lastMessageId}, #{lastMessageContent}, #{lastMessageTime},
|
||||
0, 1, 0, 0, NOW(), NOW()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM chat_sessions
|
||||
WHERE user_id = #{userId} AND target_user_id = #{targetUserId}
|
||||
);
|
||||
</insert>
|
||||
|
||||
<!-- 如果接收方不存在会话则创建 -->
|
||||
<insert id="insertIfNotExistsForReceiver" parameterType="com.bao.dating.pojo.entity.ChatSessions">
|
||||
INSERT INTO chat_sessions
|
||||
(user_id, target_user_id, session_name, last_message_id, last_message_content, last_message_time,
|
||||
unread_count, session_status, top_status, mute_status, created_at, updated_at)
|
||||
SELECT
|
||||
#{userId}, #{targetUserId}, #{sessionName}, #{lastMessageId}, #{lastMessageContent}, #{lastMessageTime},
|
||||
0, 1, 0, 0, NOW(), NOW()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM chat_sessions
|
||||
WHERE user_id = #{userId} AND target_user_id = #{targetUserId}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 更新发送方的会话信息 -->
|
||||
<update id="updateSessionForSender" parameterType="com.bao.dating.pojo.entity.ChatSessions">
|
||||
UPDATE chat_sessions
|
||||
SET
|
||||
last_message_id = #{lastMessageId},
|
||||
last_message_content = #{lastMessageContent},
|
||||
last_message_time = #{lastMessageTime},
|
||||
unread_count = 0,
|
||||
updated_at = NOW()
|
||||
WHERE user_id = #{userId}
|
||||
AND target_user_id = #{targetUserId};
|
||||
</update>
|
||||
|
||||
<!-- 更新接收方的会话信息 -->
|
||||
<update id="updateSessionForReceiver" parameterType="com.bao.dating.pojo.entity.ChatSessions">
|
||||
UPDATE chat_sessions
|
||||
SET
|
||||
last_message_id = #{lastMessageId},
|
||||
last_message_content = #{lastMessageContent},
|
||||
last_message_time = #{lastMessageTime},
|
||||
unread_count = unread_count + 1,
|
||||
updated_at = NOW()
|
||||
WHERE user_id = #{userId}
|
||||
AND target_user_id = #{targetUserId}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user