wlzboy
7 小时以前 5f2ee03958a1a16dc27195c76ea7cffb422c95d1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?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.SysMessageMapper">
    
    <resultMap type="SysMessage" id="SysMessageResult">
        <result property="messageId"    column="message_id"    />
        <result property="messageType"    column="message_type"    />
        <result property="messageTitle"    column="message_title"    />
        <result property="messageContent"    column="message_content"    />
        <result property="taskId"    column="task_id"    />
        <result property="taskCode"    column="task_code"    />
        <result property="receiverId"    column="receiver_id"    />
        <result property="receiverName"    column="receiver_name"    />
        <result property="senderId"    column="sender_id"    />
        <result property="senderName"    column="sender_name"    />
        <result property="isRead"    column="is_read"    />
        <result property="readTime"    column="read_time"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateTime"    column="update_time"    />
        <result property="delFlag"    column="del_flag"    />
    </resultMap>
 
    <sql id="selectSysMessageVo">
        select message_id, message_type, message_title, message_content, task_id, task_code, 
               receiver_id, receiver_name, sender_id, sender_name, is_read, read_time, 
               create_time, update_time, del_flag
        from sys_message
    </sql>
 
    <select id="selectSysMessageList" parameterType="SysMessage" resultMap="SysMessageResult">
        <include refid="selectSysMessageVo"/>
        <where>
            del_flag = '0'
            <if test="messageType != null  and messageType != ''"> and message_type = #{messageType}</if>
            <if test="receiverId != null "> and receiver_id = #{receiverId}</if>
            <if test="taskId != null "> and task_id = #{taskId}</if>
            <if test="isRead != null  and isRead != ''"> and is_read = #{isRead}</if>
        </where>
        order by is_read asc, create_time desc
    </select>
    
    <select id="selectSysMessageByMessageId" parameterType="Long" resultMap="SysMessageResult">
        <include refid="selectSysMessageVo"/>
        where message_id = #{messageId} and del_flag = '0'
    </select>
 
    <select id="selectSysMessageListByReceiverId" parameterType="Long" resultMap="SysMessageResult">
        <include refid="selectSysMessageVo"/>
        where receiver_id = #{receiverId} and del_flag = '0'
        order by is_read asc, create_time desc
    </select>
 
    <select id="countUnreadMessageByReceiverId" parameterType="Long" resultType="int">
        select count(*) from sys_message 
        where receiver_id = #{receiverId} and is_read = '0' and del_flag = '0'
    </select>
 
    <insert id="insertSysMessage" parameterType="SysMessage" useGeneratedKeys="true" keyProperty="messageId">
        insert into sys_message
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="messageType != null and messageType != ''">message_type,</if>
            <if test="messageTitle != null and messageTitle != ''">message_title,</if>
            <if test="messageContent != null and messageContent != ''">message_content,</if>
            <if test="taskId != null">task_id,</if>
            <if test="taskCode != null and taskCode != ''">task_code,</if>
            <if test="receiverId != null">receiver_id,</if>
            <if test="receiverName != null and receiverName != ''">receiver_name,</if>
            <if test="senderId != null">sender_id,</if>
            <if test="senderName != null and senderName != ''">sender_name,</if>
            <if test="isRead != null">is_read,</if>
            <if test="readTime != null">read_time,</if>
            <if test="createTime != null">create_time,</if>
            <if test="delFlag != null">del_flag,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="messageType != null and messageType != ''">#{messageType},</if>
            <if test="messageTitle != null and messageTitle != ''">#{messageTitle},</if>
            <if test="messageContent != null and messageContent != ''">#{messageContent},</if>
            <if test="taskId != null">#{taskId},</if>
            <if test="taskCode != null and taskCode != ''">#{taskCode},</if>
            <if test="receiverId != null">#{receiverId},</if>
            <if test="receiverName != null and receiverName != ''">#{receiverName},</if>
            <if test="senderId != null">#{senderId},</if>
            <if test="senderName != null and senderName != ''">#{senderName},</if>
            <if test="isRead != null">#{isRead},</if>
            <if test="readTime != null">#{readTime},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="delFlag != null">#{delFlag},</if>
        </trim>
    </insert>
 
    <update id="updateSysMessage" parameterType="SysMessage">
        update sys_message
        <trim prefix="SET" suffixOverrides=",">
            <if test="messageType != null and messageType != ''">message_type = #{messageType},</if>
            <if test="messageTitle != null and messageTitle != ''">message_title = #{messageTitle},</if>
            <if test="messageContent != null and messageContent != ''">message_content = #{messageContent},</if>
            <if test="taskId != null">task_id = #{taskId},</if>
            <if test="taskCode != null and taskCode != ''">task_code = #{taskCode},</if>
            <if test="receiverId != null">receiver_id = #{receiverId},</if>
            <if test="receiverName != null and receiverName != ''">receiver_name = #{receiverName},</if>
            <if test="senderId != null">sender_id = #{senderId},</if>
            <if test="senderName != null and senderName != ''">sender_name = #{senderName},</if>
            <if test="isRead != null">is_read = #{isRead},</if>
            <if test="readTime != null">read_time = #{readTime},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
        </trim>
        where message_id = #{messageId}
    </update>
 
    <delete id="deleteSysMessageByMessageId" parameterType="Long">
        update sys_message set del_flag = '1' where message_id = #{messageId}
    </delete>
 
    <delete id="deleteSysMessageByMessageIds" parameterType="Long">
        update sys_message set del_flag = '1' where message_id in
        <foreach item="messageId" collection="array" open="(" separator="," close=")">
            #{messageId}
        </foreach>
    </delete>
 
    <update id="markMessageAsRead" parameterType="Long">
        update sys_message 
        set is_read = '1', read_time = now()
        where message_id = #{messageId} and del_flag = '0'
    </update>
 
    <update id="markAllMessagesAsRead" parameterType="Long">
        update sys_message 
        set is_read = '1', read_time = now()
        where receiver_id = #{receiverId} and is_read = '0' and del_flag = '0'
    </update>
 
</mapper>