visionegg | 98dea66 | 2025-05-19 14:35:20 +0800 | [diff] [blame] | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| 3 | <mapper namespace="com.ruoyi.system.mapper.SysUserMessageMapper"> |
| 4 | <resultMap id="SysUserMessageMap" type="com.ruoyi.system.domain.SysUserMessage"> |
| 5 | <id property="messageId" column="message_id"/> |
| 6 | <result property="senderId" column="sender_id"/> |
| 7 | <result property="receiverId" column="receiver_id"/> |
| 8 | <result property="content" column="content"/> |
| 9 | <result property="createTime" column="create_time"/> |
| 10 | </resultMap> |
| 11 | |
| 12 | <insert id="insertMessage" parameterType="com.ruoyi.system.domain.SysUserMessage"> |
| 13 | insert into sys_user_message (sender_id, receiver_id, content, create_time) |
| 14 | values (#{senderId}, #{receiverId}, #{content}, sysdate()) |
| 15 | </insert> |
| 16 | |
| 17 | <select id="selectMessageListByUserIds" resultMap="SysUserMessageMap"> |
| 18 | select message_id, sender_id, receiver_id, content, create_time |
| 19 | from sys_user_message |
| 20 | where (sender_id = #{userId1} and receiver_id = #{userId2}) |
| 21 | or (sender_id = #{userId2} and receiver_id = #{userId1}) |
| 22 | and del_flag = '0' |
| 23 | order by create_time asc |
| 24 | </select> |
visionegg | 9c01391 | 2025-05-28 14:34:07 +0800 | [diff] [blame^] | 25 | |
| 26 | <select id="selectChatUserIds" parameterType="java.lang.Long" resultType="map"> |
| 27 | SELECT DISTINCT |
| 28 | CASE |
| 29 | WHEN m.sender_id = #{userId} THEN m.receiver_id |
| 30 | ELSE m.sender_id |
| 31 | END AS userId, |
| 32 | u.nick_name AS nickName |
| 33 | FROM sys_user_message m |
| 34 | INNER JOIN sys_user u |
| 35 | ON (m.sender_id = #{userId} AND m.receiver_id = u.user_id) |
| 36 | OR (m.receiver_id = #{userId} AND m.sender_id = u.user_id) |
| 37 | WHERE (m.sender_id = #{userId} OR m.receiver_id = #{userId}) |
| 38 | AND m.del_flag = '0' |
| 39 | AND u.del_flag = '0' |
| 40 | ORDER BY u.nick_name |
| 41 | </select> |
visionegg | 98dea66 | 2025-05-19 14:35:20 +0800 | [diff] [blame] | 42 | </mapper> |