| <?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.ruoyi.system.mapper.SysUserMessageMapper"> |
| <resultMap id="SysUserMessageMap" type="com.ruoyi.system.domain.SysUserMessage"> |
| <id property="messageId" column="message_id"/> |
| <result property="senderId" column="sender_id"/> |
| <result property="receiverId" column="receiver_id"/> |
| <result property="content" column="content"/> |
| <result property="createTime" column="create_time"/> |
| </resultMap> |
| |
| <insert id="insertMessage" parameterType="com.ruoyi.system.domain.SysUserMessage"> |
| insert into sys_user_message (sender_id, receiver_id, content, create_time) |
| values (#{senderId}, #{receiverId}, #{content}, sysdate()) |
| </insert> |
| |
| <select id="selectMessageListByUserIds" resultMap="SysUserMessageMap"> |
| select message_id, sender_id, receiver_id, content, create_time |
| from sys_user_message |
| where (sender_id = #{userId1} and receiver_id = #{userId2}) |
| or (sender_id = #{userId2} and receiver_id = #{userId1}) |
| and del_flag = '0' |
| order by create_time asc |
| </select> |
| |
| <select id="selectChatUserIds" parameterType="java.lang.Long" resultType="map"> |
| SELECT DISTINCT |
| CASE |
| WHEN m.sender_id = #{userId} THEN m.receiver_id |
| ELSE m.sender_id |
| END AS userId, |
| u.nick_name AS nickName |
| FROM sys_user_message m |
| INNER JOIN sys_user u |
| ON (m.sender_id = #{userId} AND m.receiver_id = u.user_id) |
| OR (m.receiver_id = #{userId} AND m.sender_id = u.user_id) |
| WHERE (m.sender_id = #{userId} OR m.receiver_id = #{userId}) |
| AND m.del_flag = '0' |
| AND u.del_flag = '0' |
| ORDER BY u.nick_name |
| </select> |
| </mapper> |