Files
chaozhanggui/pluss-dao-bundle/target/classes/mapper/NoticeReadRecordMapper.xml
2023-01-28 15:57:27 +08:00

71 lines
4.1 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="cn.pluss.platform.mapper.NoticeReadRecordMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.pluss.platform.entity.NoticeReadRecord">
<id column="id" property="id" />
<result column="userId" property="userId" />
<result column="type" property="type" />
<result column="noticeId" property="noticeId" />
<result column="createTime" property="createTime" />
</resultMap>
<insert id="updateBillNoticeRead">
INSERT INTO tb_pluss_notice_read_record(`userId`, `type`, `noticeId`)
SELECT #{userId} `userId`, 1 `type`, mm.id noticeId FROM tb_pluss_make_money mm
LEFT JOIN tb_pluss_merchant_channel_status mcs ON mm.merchantId = mcs.merchantId
LEFT JOIN tb_pluss_user_app ua ON ua.merchantCode = mcs.merchantCode
LEFT JOIN tb_pluss_notice_read_record nrr ON nrr.noticeId = mm.id AND nrr.type = '1' AND nrr.userId = ua.userId
WHERE nrr.id IS NULL AND ua.userId = #{userId}
</insert>
<insert id="updateNoticeRead">
INSERT INTO tb_pluss_notice_read_record(`userId`, `type`, `noticeId`)
SELECT #{userId} `userId`, 2 `type`, n.id noticeId FROM tb_pluss_notice n
LEFT JOIN tb_pluss_notice_read_record nrr ON n.id = nrr.noticeId AND nrr.type = '2' AND (nrr.userId = n.userId OR n.userId = -1)
WHERE nrr.id IS NULL AND n.typeFirst = #{type} AND n.userId IN ("-1", #{userId})
</insert>
<insert id="updateEventInfoRead">
INSERT INTO tb_pluss_notice_read_record(`userId`, `type`, `noticeId`)
SELECT #{userId} `userId`, 3 `type`, bna.id noticeId FROM tb_pluss_best_new_activity bna
LEFT JOIN tb_pluss_notice_read_record nrr ON nrr.noticeId = bna.id AND nrr.type = '3' AND nrr.userId = #{userId}
WHERE FIND_IN_SET(#{type}, bna.type) AND nrr.id IS NULL
</insert>
<select id="selectBillCount" resultType="java.lang.Integer">
SELECT count(1) FROM tb_pluss_make_money mm
LEFT JOIN tb_pluss_merchant_channel_status mcs ON mm.merchantId = mcs.merchantId
LEFT JOIN tb_pluss_user_app ua ON ua.merchantCode = mcs.merchantCode
LEFT JOIN tb_pluss_notice_read_record nrr ON nrr.noticeId = mm.id AND nrr.type = '1' AND nrr.userId = ua.userId
WHERE nrr.id IS NULL AND ua.userId = #{userId}
</select>
<select id="selectNoticeCount" resultType="java.util.Map">
SELECT count(1) `count`, typeFirst `type` FROM tb_pluss_notice n
LEFT JOIN tb_pluss_notice_read_record nrr ON n.id = nrr.noticeId AND nrr.type = '2' AND (nrr.userId = n.userId OR n.userId = -1)
WHERE nrr.id IS NULL AND (n.userId = #{userId} OR n.userId = '-1')
GROUP BY n.typeFirst
</select>
<select id="selectArticleCount" resultType="java.util.Map">
SELECT count(1) `count`, 'recommendCount' `type` FROM tb_pluss_best_new_activity bna
LEFT JOIN tb_pluss_notice_read_record nrr ON nrr.noticeId = bna.id AND nrr.type = '3' AND nrr.userId = #{userId}
WHERE FIND_IN_SET(1, bna.type) AND nrr.id IS NULL
UNION
SELECT count(1) `count`, 'recommendCount2' `type` FROM tb_pluss_best_new_activity bna
LEFT JOIN tb_pluss_notice_read_record nrr ON nrr.noticeId = bna.id AND nrr.type = '3' AND nrr.userId = #{userId}
WHERE FIND_IN_SET(4, bna.type) AND nrr.id IS NULL
UNION
SELECT count(1) `count`, 'informationCount' `type` FROM tb_pluss_best_new_activity bna
LEFT JOIN tb_pluss_notice_read_record nrr ON nrr.noticeId = bna.id AND nrr.type = '3' AND nrr.userId = #{userId}
WHERE FIND_IN_SET(2, bna.type) AND nrr.id IS NULL
UNION
SELECT count(1) `count`, 'activityCount' `type` FROM tb_pluss_best_new_activity bna
LEFT JOIN tb_pluss_notice_read_record nrr ON nrr.noticeId = bna.id AND nrr.type = '3' AND nrr.userId = #{userId}
WHERE FIND_IN_SET(3, bna.type) AND nrr.id IS NULL
</select>
</mapper>