mjon_agent_server/src/main/resources/sqlmap/report_sql.xml

62 lines
2.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="com.munjaon.server.cache.mapper.ReportMapper">
<select id="getReportForUser" resultType="ReportDto">
/* ReportMapper.getReportForUser */
SELECT
MSG_ID
, USER_ID
, AGENT_MSG_ID
, AGENT_CODE
, MSG_TYPE
, CASE WHEN RSLT_DATE IS NULL THEN DATE_FORMAT(NOW(), '%Y%m%d%H%i%S') ELSE DATE_FORMAT(RSLT_DATE, '%Y%m%d%H%i%S') END AS RSLT_DATE
, RSLT_CODE
, RSLT_NET
FROM mj_msg_report
WHERE USER_ID = #{userId}
LIMIT 1
</select>
<select id="getReportListForUser" resultType="ReportDto">
/* ReportMapper.getReportListForUser */
SELECT
MSG_ID
, USER_ID
, AGENT_MSG_ID
, AGENT_CODE
, MSG_TYPE
, CASE WHEN RSLT_DATE IS NULL THEN DATE_FORMAT(NOW(), '%Y%m%d%H%i%S') ELSE DATE_FORMAT(RSLT_DATE, '%Y%m%d%H%i%S') END AS RSLT_DATE
, RSLT_CODE
, RSLT_NET
FROM mj_msg_report
WHERE USER_ID = #{userId}
LIMIT 50
</select>
<delete id="deleteReport">
DELETE FROM mj_msg_report WHERE MSG_ID = #{msgId}
</delete>
<delete id="deleteBulkReport">
DELETE FROM mj_msg_report
WHERE USER_ID = #{userId}
AND MSG_ID IN
<foreach item="item" index="index" collection="msgList"
open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<delete id="deleteBulkReport_bak">
DELETE SRC FROM mj_msg_report SRC
INNER JOIN (
with recursive
T as ( select #{msgId} as items),
N as ( select 1 as n union select n + 1 from N, T
where n <![CDATA[<=]]> length(items) - length(replace(items, ',', '')))
select distinct substring_index(substring_index(items, ',', n), ',', -1)
MSG_ID from N, T
) DEST ON SRC.MSG_ID = DEST.MSG_ID
WHERE SRC.USER_ID = #{userId}
</delete>
</mapper>