credit_tracker/src/main/resources/mybatis/mapper/signal/LegalsFidMapMapper.xml
2026-07-04 18:33:48 +03:00

58 lines
No EOL
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="ru.nbch.credit_tracker.mapper.signal.LegalsFidMapMapper">
<resultMap id="LegalFidMapResultMap" type="ru.nbch.credit_tracker.entities.app.SignalLegalFidMap">
<result property="id" column="id"/>
<result property="packageId" column="package_id"/>
<result property="subjectId" column="subject_id"/>
<result property="inn" column="inn"/>
<result property="regNum" column="reg_num"/>
</resultMap>
<select id="registerJson" parameterType="string" resultType="long">
WITH src AS (SELECT row_number() OVER () AS rn,
subject_id,
inn,
reg_num,
package_id
FROM json_to_recordset(#{json}::json) AS t(
subject_id varchar(255),
inn bigint,
reg_num bigint,
package_id bigint
))
INSERT
INTO signals_legal_fid_map
(subject_id, inn, reg_num, package_id)
SELECT subject_id,
inn,
reg_num,
package_id
FROM src
ORDER BY rn
RETURNING id;
</select>
<select id="findFullLegalFidMap" resultMap="LegalFidMapResultMap" resultType="java.util.List">
SELECT id,
package_id,
subject_id,
inn,
reg_num
FROM signals_legal_fid_map
WHERE package_id = #{packageId}
ORDER BY id
LIMIT #{limit} OFFSET #{offset}
</select>
<delete id="deleteByPackageId" parameterType="long">
DELETE
FROM signals_legal_fid_map
WHERE package_id = #{packageId}
</delete>
</mapper>