156 lines
No EOL
6.1 KiB
XML
156 lines
No EOL
6.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.SignalMapper">
|
|
|
|
<resultMap id="subjectDataResultMap" type="ru.nbch.credit_tracker.entities.dto.SubjectData">
|
|
<result property="id" column="id"/>
|
|
<result property="packageId" column="package_id"/>
|
|
<result property="subjectId" column="subject_id"/>
|
|
<result property="phone" column="phone"/>
|
|
<result property="fid" column="fid"/>
|
|
<result property="flagDebt5000" column="flag_debt5000"/>
|
|
<result property="flag90days" column="flag_90_12"/>
|
|
<result property="calculatedAt" column="calculated_at"/>
|
|
</resultMap>
|
|
|
|
<resultMap id="packageDataResultMap" type="ru.nbch.credit_tracker.entities.dto.PackageData">
|
|
<result property="id" column="id"/>
|
|
<result property="userId" column="membercode"/>
|
|
<result property="packageName" column="package_name"/>
|
|
<result property="createdAt" column="created_at"/>
|
|
<result property="status" column="status"/>
|
|
<result property="lastDownloadedReport" column="last_downloaded_report"/>
|
|
</resultMap>
|
|
|
|
<select id="isPackageNotUnique" resultType="boolean">
|
|
SELECT COUNT(*) > 0
|
|
FROM signals_user_packages
|
|
WHERE membercode IS NOT NULL
|
|
AND LEFT(membercode, 6) = #{userId}
|
|
AND package_name = #{packageName}
|
|
</select>
|
|
|
|
<select id="isPackageExists" resultType="boolean">
|
|
SELECT COUNT(*) > 0
|
|
FROM signals_user_packages
|
|
WHERE membercode IS NOT NULL
|
|
AND LEFT(membercode, 6) = #{userId}
|
|
AND package_name = #{packageName}
|
|
AND status = #{status}
|
|
</select>
|
|
|
|
<update id="deletePackage">
|
|
UPDATE signals_user_packages
|
|
SET status = #{status}, deactivated_at = #{deactivatedAt}
|
|
WHERE membercode IS NOT NULL AND LEFT(membercode, 6) = #{userId} AND package_name = #{packageName} AND status =
|
|
#{previousStatus}
|
|
</update>
|
|
|
|
<select id="registerPackage" resultType="java.lang.Integer"
|
|
parameterType="ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest">
|
|
INSERT INTO signals_user_packages (membercode, package_name, created_at, status)
|
|
values (#{request.userId}, #{request.packageName}, #{creadedAt}, #{status}) RETURNING id
|
|
</select>
|
|
|
|
<insert id="insertPackage"
|
|
parameterType="ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest">
|
|
INSERT INTO signals_user_packages (membercode, package_name, created_at, status)
|
|
values (#{request.userId}, #{request.packageName}, #{creadedAt}, #{status})
|
|
</insert>
|
|
|
|
<insert id="registerSubjects" parameterType="java.util.List">
|
|
INSERT INTO signals_phone_fid_map (subject_id, phone, fid, package_id)
|
|
values
|
|
<foreach collection="subjects" item="subject" separator=",">
|
|
(#{subject.id}, #{subject.clientId}, NULL, #{packageId})
|
|
</foreach>
|
|
</insert>
|
|
|
|
<insert id="setHits" parameterType="java.util.List">
|
|
INSERT INTO signals_hits (package_id, subject_id, signal_type, response_sent_at, report_file_name)
|
|
values
|
|
<foreach collection="hits" item="hit" separator=",">
|
|
(#{hit.packageId}, #{hit.subjectId}, #{hit.signalType}, #{hit.responseSentAt}, #{hit.reportFileName})
|
|
</foreach>
|
|
</insert>
|
|
|
|
<update id="updateSubjects" parameterType="java.util.List">
|
|
<foreach collection="subjects" item="subject" separator=";">
|
|
UPDATE signals_phone_fid_map
|
|
SET
|
|
package_id = #{subject.packageId},
|
|
subject_id = #{subject.subjectId},
|
|
phone = #{subject.phone},
|
|
fid = #{subject.fid},
|
|
flag_debt5000 = #{subject.flagDebt5000},
|
|
flag_90_12 = #{subject.flag90days},
|
|
calculated_at = #{subject.calculatedAt}
|
|
WHERE id = #{subject.id}
|
|
</foreach>
|
|
</update>
|
|
|
|
<update id="registerSubjectsFidAndDebts">
|
|
UPDATE signals_phone_fid_map
|
|
SET fid = #{fid}, flag_debt5000 = #{flagDebt5000}, flag_90_12 = #{flag90}, calculated_at = #{calculatedAt}
|
|
WHERE id = #{id}
|
|
</update>
|
|
|
|
<update id="setPackageStatus">
|
|
UPDATE signals_user_packages
|
|
SET status = #{status}
|
|
WHERE id = #{packageId}
|
|
</update>
|
|
|
|
<update id="setPackageLastDownloadedReport">
|
|
UPDATE signals_user_packages
|
|
SET last_downloaded_report = #{fileName}
|
|
WHERE id = #{id}
|
|
</update>
|
|
|
|
<select id="findSubjectsData" resultMap="subjectDataResultMap" resultType="java.util.List">
|
|
SELECT id, subject_id, phone
|
|
FROM signals_phone_fid_map
|
|
WHERE package_id = #{packageId}
|
|
</select>
|
|
|
|
<select id="findFullSubjectsData" resultMap="subjectDataResultMap" resultType="java.util.List">
|
|
SELECT id,
|
|
package_id,
|
|
subject_id,
|
|
phone,
|
|
fid,
|
|
flag_90_12,
|
|
flag_debt5000,
|
|
calculated_at
|
|
FROM signals_phone_fid_map
|
|
WHERE package_id = #{packageId}
|
|
</select>
|
|
|
|
<select id="findPackageData" resultMap="packageDataResultMap"
|
|
resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
|
SELECT membercode, package_name
|
|
FROM signals_user_packages
|
|
WHERE id = #{id}
|
|
LIMIT 1
|
|
</select>
|
|
|
|
<select id="findPackageDataList" resultMap="packageDataResultMap"
|
|
resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
|
SELECT package_name, created_at
|
|
FROM signals_user_packages
|
|
WHERE membercode IS NOT NULL
|
|
AND LEFT(membercode, 6) = #{userId}
|
|
AND status = #{status}
|
|
</select>
|
|
|
|
<select id="findPackagesByStatus" resultMap="packageDataResultMap"
|
|
resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
|
SELECT id, membercode, package_name, created_at, last_downloaded_report
|
|
FROM signals_user_packages
|
|
WHERE status = #{status}
|
|
</select>
|
|
|
|
</mapper> |