mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-11-19 00:53:46 +08:00
155 lines
5.0 KiB
XML
155 lines
5.0 KiB
XML
<?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="net.lab1024.smartadmin.module.business.notice.dao.NoticeDao">
|
|
|
|
<resultMap id="NoticeEntity" type="net.lab1024.smartadmin.module.business.notice.domain.entity.NoticeEntity"></resultMap>
|
|
|
|
<resultMap id="NoticeDTO" type="net.lab1024.smartadmin.module.business.notice.domain.dto.NoticeVO"></resultMap>
|
|
|
|
<resultMap id="NoticeDetailDTO" type="net.lab1024.smartadmin.module.business.notice.domain.dto.NoticeDetailVO"></resultMap>
|
|
|
|
<resultMap id="NoticeReceiveDTO" type="net.lab1024.smartadmin.module.business.notice.domain.dto.NoticeReceiveDTO"></resultMap>
|
|
|
|
|
|
<resultMap id="NoticeReadCountDTO" type="net.lab1024.smartadmin.module.business.notice.domain.dto.NoticeReadCountDTO"></resultMap>
|
|
|
|
|
|
<select id="queryByPage" resultMap="NoticeDTO">
|
|
select
|
|
n.id,
|
|
n.title,
|
|
n.create_user,
|
|
e.actual_name as createUserName,
|
|
n.send_status,
|
|
n.create_time
|
|
from t_notice n
|
|
left join t_employee e on e.id = n.create_user
|
|
<where>
|
|
<if test="queryDTO.startDate != null and queryDTO.startDate != ''">
|
|
AND DATE_FORMAT(n.create_time, '%Y-%m-%d') >= #{queryDTO.startDate}
|
|
</if>
|
|
<if test="queryDTO.endDate != null and queryDTO.endDate != ''">
|
|
AND DATE_FORMAT(n.create_time, '%Y-%m-%d') <= #{queryDTO.endDate}
|
|
</if>
|
|
<if test="queryDTO.title != null and queryDTO.title != ''">
|
|
AND INSTR(n.title,#{queryDTO.title})
|
|
</if>
|
|
<if test="queryDTO.deleted != null">
|
|
AND n.deleted = #{queryDTO.deleted}
|
|
</if>
|
|
</where>
|
|
ORDER by n.create_time desc
|
|
</select>
|
|
|
|
|
|
|
|
<select id="queryUnreadByPage" resultMap="NoticeDTO">
|
|
select
|
|
n.id,
|
|
n.title,
|
|
n.send_status,
|
|
n.create_user,
|
|
e.actual_name as createUserName,
|
|
n.create_time
|
|
from t_notice n
|
|
left join t_employee e on e.id = n.create_user
|
|
where n.id not in (select notice_id from t_notice_receive_record nrr where nrr.employee_id = #{employeeId})
|
|
and n.send_status = #{sendStatus}
|
|
ORDER by n.create_time desc
|
|
</select>
|
|
|
|
|
|
<select id="queryReceiveByPage" resultMap="NoticeReceiveDTO">
|
|
select
|
|
n.id,
|
|
n.title,
|
|
n.create_user,
|
|
n.send_status,
|
|
e.actual_name as createUserName,
|
|
n.create_time,
|
|
nrr.create_time as receiveTime
|
|
from t_notice n
|
|
left join t_employee e on e.id = n.create_user
|
|
left join t_notice_receive_record nrr on nrr.notice_id=n.id and nrr.employee_id=#{queryDTO.employeeId}
|
|
<where>
|
|
<if test="queryDTO.startDate != null and queryDTO.startDate != ''">
|
|
AND DATE_FORMAT(n.create_time, '%Y-%m-%d') >= #{queryDTO.startDate}
|
|
</if>
|
|
<if test="queryDTO.endDate != null and queryDTO.endDate != ''">
|
|
AND DATE_FORMAT(n.create_time, '%Y-%m-%d') <= #{queryDTO.endDate}
|
|
</if>
|
|
<if test="queryDTO.title != null and queryDTO.title != ''">
|
|
AND INSTR(n.title,#{queryDTO.title})
|
|
</if>
|
|
<if test="queryDTO.sendStatus != null">
|
|
AND n.send_status = #{queryDTO.sendStatus}
|
|
</if>
|
|
</where>
|
|
ORDER by n.create_time desc
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="detail" resultMap="NoticeDetailDTO">
|
|
select
|
|
n.id,
|
|
n.title,
|
|
n.content,
|
|
n.send_status,
|
|
n.create_user,
|
|
e.actual_name as createUserName,
|
|
n.create_time,
|
|
n.update_time
|
|
from t_notice n
|
|
left join t_employee e on e.id = n.create_user
|
|
where n.id = #{id}
|
|
</select>
|
|
|
|
|
|
|
|
<update id="logicDeleteById">
|
|
UPDATE t_notice
|
|
set deleted = #{deletedFlag}
|
|
WHERE id =#{id}
|
|
</update>
|
|
|
|
|
|
<delete id="logicDeleteByIds">
|
|
UPDATE t_notice set deleted = #{deletedFlag} where id in
|
|
<foreach collection="idList" open="(" close=")" separator="," item="item">
|
|
#{item}
|
|
</foreach>
|
|
</delete>
|
|
|
|
|
|
<select id="noticeCount" resultType="integer">
|
|
select
|
|
count(1)
|
|
from t_notice where send_status = #{sendStatus}
|
|
</select>
|
|
|
|
<select id="readCount" resultMap="NoticeReadCountDTO">
|
|
SELECT
|
|
nrr.employee_id,
|
|
count(1) as readCount
|
|
from t_notice_receive_record nrr
|
|
where nrr.employee_id in
|
|
<foreach collection="employeeIds" open="(" close=")" separator="," item="item">
|
|
#{item}
|
|
</foreach>
|
|
GROUP BY nrr.employee_id
|
|
</select>
|
|
|
|
|
|
|
|
<select id="noticeUnreadCount" resultType="integer">
|
|
select
|
|
count(1)
|
|
from t_notice n
|
|
where n.id not in (select msg_id from t_notice_receive_record nrr where nrr.employee_id = #{employeeId})
|
|
and n.send_status = #{sendStatus}
|
|
</select>
|
|
|
|
|
|
</mapper> |