82 lines
No EOL
3.3 KiB
XML
82 lines
No EOL
3.3 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.PackagesRecordsMapper">
|
|
|
|
<resultMap id="PhoneFidMapResultMap" type="ru.nbch.credit_tracker.entities.app.PackagesRecordsMap">
|
|
<result property="id" column="id"/>
|
|
<result property="packageId" column="package_id"/>
|
|
<result property="subjectId" column="subject_id"/>
|
|
<result property="phone" column="phone"/>
|
|
<result property="errorText" column="error_text"/>
|
|
</resultMap>
|
|
|
|
<select id="registerJson" parameterType="string" resultType="long">
|
|
WITH src AS (SELECT row_number() OVER () AS rn,
|
|
fid,
|
|
phone,
|
|
name_1,
|
|
first,
|
|
middle,
|
|
birth_dt
|
|
FROM json_to_recordset(#{json}::json) AS t(
|
|
fid int,
|
|
phone bigint,
|
|
name_1 varchar(2000),
|
|
first varchar(2000),
|
|
middle varchar(2000),
|
|
birth_dt timestamp
|
|
))
|
|
INSERT
|
|
INTO signals_phones_map
|
|
(fid, phone, name_1, first, middle, birth_dt)
|
|
SELECT fid,
|
|
phone,
|
|
name_1,
|
|
first,
|
|
middle,
|
|
birth_dt
|
|
FROM src
|
|
ORDER BY rn
|
|
RETURNING id;
|
|
</select>
|
|
|
|
<update id="setFidJson" parameterType="string">
|
|
update signals_phones_map dst
|
|
set fid = src.fid,
|
|
searched_at = now()
|
|
FROM json_to_recordset(#{json}::json) AS src(
|
|
id bigint,
|
|
fid int
|
|
)
|
|
where dst.id = src.id;
|
|
</update>
|
|
|
|
|
|
<!-- <select id="pageByPackageIdAndOlderThanN" resultMap="PhoneFidMapResultMap" resultType="java.util.List">-->
|
|
<!-- SELECT id,-->
|
|
<!-- package_id,-->
|
|
<!-- subject_id,-->
|
|
<!-- phone,-->
|
|
<!-- error_text-->
|
|
<!-- FROM signals_phone_fid_map-->
|
|
<!-- WHERE package_id = #{packageId} and searched_at < now() - make_interval(days => #{daysCount})-->
|
|
<!-- ORDER BY id-->
|
|
<!-- LIMIT #{limit} OFFSET #{offset}-->
|
|
<!-- </select>-->
|
|
|
|
<!-- <select id="pageByPackageIdAndNewerThanN" resultMap="PhoneFidMapResultMap" resultType="java.util.List">-->
|
|
<!-- SELECT id,-->
|
|
<!-- package_id,-->
|
|
<!-- subject_id,-->
|
|
<!-- phone,-->
|
|
<!-- fid,-->
|
|
<!-- error_text-->
|
|
<!-- FROM signals_phone_fid_map-->
|
|
<!-- WHERE package_id = #{packageId} and searched_at >= now() - make_interval(days => #{daysCount})-->
|
|
<!-- ORDER BY id-->
|
|
<!-- LIMIT #{limit} OFFSET #{offset}-->
|
|
<!-- </select>-->
|
|
</mapper> |