<?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.timer.api.dao.insure.InsurePolicyMapper"> <!-- 可根据自己的需求,是否要使用 --> <resultMap type="cn.timer.api.bean.insure.InsurePolicy" id="insurePolicyMap"> <result property="id" column="id"/> <result property="schemeName" column="scheme_name"/> <result property="policyDateStart" column="policy_date_start"/> <result property="policyDateEnd" column="policy_date_end"/> <result property="productCodeId" column="product_code_id"/> <result property="planCodeId" column="plan_code_id"/> <result property="partnerPid" column="partner_pid"/> <result property="policyNo" column="policy_no"/> <result property="type" column="type"/> <result property="currency" column="currency"/> <result property="totalPremium" column="total_premium"/> <result property="status" column="status"/> <result property="policyFile" column="policy_file"/> <result property="kitUrl" column="kit_url"/> <result property="insureApplicantId" column="insure_applicant_id"/> <result property="orgCode" column="org_code"/> <result property="createTime" column="create_time"/> <result property="updateTime" column="update_time"/> <result property="policyPayType" column="policy_pay_type"/> <result property="payId" column="pa_id"/> <result property="serialNumber" column="serial_number"/> </resultMap> <select id="queryObject" resultType="cn.timer.api.bean.insure.InsurePolicy"> select * from insure_policy where id = #{value} </select> <select id="queryList" resultType="cn.timer.api.bean.insure.InsurePolicy"> select * from insure_policy <where> <if test="schemeName != null and schemeName != ''">AND `scheme_name` = #{schemeName}</if> <if test="policyDateStart != null and policyDateStart != ''">AND `policy_date_start` = #{policyDateStart} </if> <if test="policyDateEnd != null and policyDateEnd != ''">AND `policy_date_end` = #{policyDateEnd}</if> <if test="productCodeId != null and productCodeId != ''">AND `product_code_id` = #{productCodeId}</if> <if test="planCodeId != null and planCodeId != ''">AND `plan_code_id` = #{planCodeId}</if> <if test="partnerPid != null and partnerPid != ''">AND `partner_pid` = #{partnerPid}</if> <if test="policyNo != null and policyNo != ''">AND `policy_no` = #{policyNo}</if> <if test="type != null and type != ''">AND `type` = #{type}</if> <if test="currency != null and currency != ''">AND `currency` = #{currency}</if> <if test="totalPremium != null and totalPremium != ''">AND `total_premium` = #{totalPremium}</if> <if test="status != null and status != ''">AND `status` = #{status}</if> <if test="policyFile != null and policyFile != ''">AND `policy_file` = #{policyFile}</if> <if test="kitUrl != null and kitUrl != ''">AND `kit_url` = #{kitUrl}</if> <if test="insureApplicantId != null and insureApplicantId != ''">AND `insure_applicant_id` = #{insureApplicantId} </if> <if test="orgCode != null and orgCode != ''">AND `org_code` = #{orgCode}</if> <if test="createTime != null and createTime != ''">AND `create_time` = #{createTime}</if> <if test="updateTime != null and updateTime != ''">AND `update_time` = #{updateTime}</if> <if test="serialNumber != null and serialNumber != ''">AND `serial_number` = #{serialNumber}</if> </where> <choose> <when test="sidx != null and sidx.trim() != ''"> order by ${sidx} ${order} </when> <otherwise> order by id desc </otherwise> </choose> <if test="offset != null and limit != null"> limit #{offset}, #{limit} </if> </select> <select id="queryTotal" resultType="int"> select count(*) from insure_policy <where> <if test="schemeName != null and schemeName != ''">AND `scheme_name` = #{schemeName}</if> <if test="policyDateStart != null and policyDateStart != ''">AND `policy_date_start` = #{policyDateStart} </if> <if test="policyDateEnd != null and policyDateEnd != ''">AND `policy_date_end` = #{policyDateEnd}</if> <if test="productCodeId != null and productCodeId != ''">AND `product_code_id` = #{productCodeId}</if> <if test="planCodeId != null and planCodeId != ''">AND `plan_code_id` = #{planCodeId}</if> <if test="partnerPid != null and partnerPid != ''">AND `partner_pid` = #{partnerPid}</if> <if test="policyNo != null and policyNo != ''">AND `policy_no` = #{policyNo}</if> <if test="type != null and type != ''">AND `type` = #{type}</if> <if test="currency != null and currency != ''">AND `currency` = #{currency}</if> <if test="totalPremium != null and totalPremium != ''">AND `total_premium` = #{totalPremium}</if> <if test="status != null and status != ''">AND `status` = #{status}</if> <if test="policyFile != null and policyFile != ''">AND `policy_file` = #{policyFile}</if> <if test="kitUrl != null and kitUrl != ''">AND `kit_url` = #{kitUrl}</if> <if test="insureApplicantId != null and insureApplicantId != ''">AND `insure_applicant_id` = #{insureApplicantId} </if> <if test="orgCode != null and orgCode != ''">AND `org_code` = #{orgCode}</if> <if test="createTime != null and createTime != ''">AND `create_time` = #{createTime}</if> <if test="updateTime != null and updateTime != ''">AND `update_time` = #{updateTime}</if> <if test="serialNumber != null and serialNumber != ''">AND `serial_number` = #{serialNumber}</if> </where> </select> <insert id="save" parameterType="cn.timer.api.bean.insure.InsurePolicy" useGeneratedKeys="true" keyProperty="id"> insert into insure_policy (`scheme_name`, `policy_date_start`, `policy_date_end`, `product_code_id`, `plan_code_id`, `partner_pid`, `policy_no`, `type`, `currency`, `total_premium`, `status`, `policy_file`, `kit_url`, `insure_applicant_id`, `org_code`, `create_time`, `update_time`, `serial_number`) values (#{schemeName}, #{policyDateStart}, #{policyDateEnd}, #{productCodeId}, #{planCodeId}, #{partnerPid}, #{policyNo}, #{type}, #{currency}, #{totalPremium}, #{status}, #{policyFile}, #{kitUrl}, #{insureApplicantId}, #{orgCode}, #{createTime}, #{updateTime}, #{serialNumber}) </insert> <insert id="saveSelective" parameterType="cn.timer.api.bean.insure.InsurePolicy" useGeneratedKeys="true" keyProperty="id"> insert into insure_policy ( <if test="schemeName != null">,`scheme_name`</if> <if test="policyDateStart != null">,`policy_date_start`</if> <if test="policyDateEnd != null">,`policy_date_end`</if> <if test="productCodeId != null">,`product_code_id`</if> <if test="planCodeId != null">,`plan_code_id`</if> <if test="partnerPid != null">,`partner_pid`</if> <if test="policyNo != null">,`policy_no`</if> <if test="type != null">,`type`</if> <if test="currency != null">,`currency`</if> <if test="totalPremium != null">,`total_premium`</if> <if test="status != null">,`status`</if> <if test="policyFile != null">,`policy_file`</if> <if test="kitUrl != null">,`kit_url`</if> <if test="insureApplicantId != null">,`insure_applicant_id`</if> <if test="orgCode != null">,`org_code`</if> <if test="createTime != null">,`create_time`</if> <if test="updateTime != null">,`update_time`</if> <if test="serialNumber != null">,`serial_number`</if> ) values ( <if test="schemeName != null">,#{schemeName}</if> <if test="policyDateStart != null">,#{policyDateStart}</if> <if test="policyDateEnd != null">,#{policyDateEnd}</if> <if test="productCodeId != null">,#{productCodeId}</if> <if test="planCodeId != null">,#{planCodeId}</if> <if test="partnerPid != null">,#{partnerPid}</if> <if test="policyNo != null">,#{policyNo}</if> <if test="type != null">,#{type}</if> <if test="currency != null">,#{currency}</if> <if test="totalPremium != null">,#{totalPremium}</if> <if test="status != null">,#{status}</if> <if test="policyFile != null">,#{policyFile}</if> <if test="kitUrl != null">,#{kitUrl}</if> <if test="insureApplicantId != null">,#{insureApplicantId}</if> <if test="orgCode != null">,#{orgCode}</if> <if test="createTime != null">,#{createTime}</if> <if test="updateTime != null">,#{update_time}</if> <if test="serialNumber != null">,#{serialNumber}</if> ) </insert> <insert id="saveList" parameterType="cn.timer.api.bean.insure.InsurePolicy" useGeneratedKeys="true" keyProperty="id"> insert into insure_policy ( `scheme_name`, `policy_date_start`, `policy_date_end`, `product_code_id`, `plan_code_id`, `partner_pid`, `policy_no`, `type`, `currency`, `total_premium`, `status`, `policy_file`, `kit_url`, `insure_applicant_id`, `org_code`, `create_time`, `update_time`, `serial_number` ) values <foreach collection="list" item="item" index="index" separator=","> ( #{item.schemeName}, #{item.policyDateStart}, #{item.policyDateEnd}, #{item.productCodeId}, #{item.planCodeId}, #{item.partnerPid}, #{item.policyNo}, #{item.type}, #{item.currency}, #{item.totalPremium}, #{item.status}, #{item.policyFile}, #{item.kitUrl}, #{item.insureApplicantId}, #{item.orgCode}, #{item.createTime}, #{item.updateTime}, #{item.serialNumber} ) </foreach> </insert> <delete id="deleteBatch"> delete from insure_policy where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> </delete> <select id="policyList" resultType="cn.timer.api.dto.insure.PolicyDto"> SELECT ip.id AS id, ip.policy_no AS policyNo, ip.create_time as createTime, ipp.name AS schemeName, qy.`name` as `name`, count( iu.id ) AS totalUser, ip.policy_date_start as policyDateStart, ip.policy_date_end as policyDateEnd, sum(iu.price) AS totalPremium, ip.update_time AS updateTime, ip.`status` as `status`, ip.org_code as orgCode, ip.pay_id as payId, ip.serial_number as serialNumber, ip.policy_file as policyFile FROM insure_policy ip LEFT JOIN insure_user iu ON iu.policy_id = ip.id LEFT JOIN qyzx_ent_info_m qy on qy.id=ip.org_code LEFT JOIN insure_product_plan ipp ON iu.product_plan_id = ipp.id <where> <if test="policy.productId!=null and policy.productId!=''"> and ip.product_id = #{policy.productId} </if> <if test="policy.status!=null and policy.status!=''"> and ip.status = #{policy.status} </if> <if test="policy.orgCode!=null and policy.orgCode!=''"> and ip.org_code = #{policy.orgCode} </if> <if test="policy.benefitBasicPlan!=null and policy.benefitBasicPlan!=''"> and iu.product_plan_id = #{policy.benefitBasicPlan} </if> <if test="policy.policyDateStart!=null and policy.policyDateStart!=''"> and ip.policy_date_start <![CDATA[ >= ]]> #{policy.policyDateStart} </if> <if test="policy.companyName!=null and policy.companyName!=''"> and qy.name like CONCAT('%',#{policy.companyName},'%') </if> <if test="policy.policyNo!=null and policy.policyNo!=''"> and ip.policy_no like CONCAT('%',#{policy.policyNo},'%') </if> </where> GROUP BY ip.id order by ip.create_time desc <if test="policy.page.offset != null and policy.page.totalPage !=null"> limit #{policy.page.offset},#{policy.page.totalPage} </if> </select> <select id="totalPolicy" resultType="java.lang.Integer"> select count(ip.id) from insure_policy ip <where> <if test="policy.productId!=null and policy.productId!=''"> and ip.product_id = #{policy.productId} </if> <if test="policy.status!=null and policy.status!=''"> and ip.status = #{policy.status} </if> <if test="policy.orgCode!=null and policy.orgCode!=''"> and ip.org_code = #{policy.orgCode} </if> <if test="policy.policyDateStart!=null and policy.policyDateStart!=''"> and ip.policy_date_start <![CDATA[ >= ]]> #{policy.policyDateStart} </if> <if test="policy.companyName!=null and policy.companyName!=''"> and qy.name like CONCAT('%',#{policy.companyName},'%') </if> <if test="policy.policyNo!=null and policy.policyNo!=''"> and ip.policy_no like CONCAT('%',#{policy.policyNo},'%') </if> </where> </select> <select id="getPolicyDetail" resultType="cn.timer.api.dto.insure.PolicyDto"> SELECT ip.id as id, ip.scheme_name as schemeName, ip.policy_date_start as policyDateStart, ip.policy_date_end as policyDateEnd, ip.policy_no as policyNo, ip.org_code as orgCode, iu.insured_name as insuredName, iu.product_plan_id as benefitBasicPlan, iu.benefit_occupation_category as benefitOccupationCategory, iu.product_plan_id as productPlanId, ip.policy_pay_type as policyPayType, ip.product_id as productId, iu.product_plan_id as productPlanId, ipp.name as name FROM insure_policy ip LEFT JOIN insure_user iu ON iu.policy_id = ip.id left join insure_product_plan ipp on ipp.id=iu.product_plan_id WHERE ip.id = #{id} LIMIT 1 </select> <select id="policyTotalList" resultType="cn.timer.api.dto.insure.PolicyDto"> SELECT ip.id AS id, ip.NAME AS schemeName, ip.type AS type, (select count(id) from insure_policy WHERE product_id=ip.id ) AS totaPolicy, (select count(org_code) from insure_policy WHERE product_id=ip.id) as totalCompany, count( iu.id ) AS totalUser, sum( iu.price ) AS totalPremium, ipp.update_time AS updateTime, ip.tmp_url as tmpUrl FROM insure_product ip LEFT JOIN insure_policy ipp ON ipp.product_id = ip.id and ipp.`status`=1 LEFT JOIN insure_user iu ON iu.policy_id = ipp.id WHERE ip.is_del = 0 GROUP BY ip.id </select> <select id="selectPolicyListByorgCode" resultType="cn.timer.api.dto.insure.InsureUserDto"> SELECT ip.product_id as productId, ip.id as id, ip.policy_no as policyNo, ir.name, ip.update_time as updateTime FROM insure_policy ip LEFT JOIN insure_product ir on ir.id=ip.product_id WHERE ip.org_code=#{orgCode} <if test="policy.policyNo !=null and policy.policyNo!=''"> and ip.policy_no = #{policy.policyNo} </if> order by ip.update_time desc <if test="policy.page.offset != null and policy.page.totalPage != null"> limit #{policy.page.offset}, #{policy.page.totalPage} </if> </select> <select id="selectPolicyTotalByorgCode" resultType="java.lang.Integer"> SELECT count(ip.id) FROM insure_policy ip LEFT JOIN insure_product ir on ir.id=ip.product_id WHERE ip.org_code=#{orgCode} <if test="policy.policyNo !=null and policy.policyNo!=''"> and ip.policy_no = #{policy.policyNo} </if> </select> <select id="selectPlansTotalByorgCode" resultType="java.lang.Integer"> SELECT count(ip.id) FROM insure_policy ip LEFT JOIN insure_user iu ON iu.policy_id = ip.id WHERE ip.org_code=#{orgCode} </select> <select id="selectPolicyListByStatus" resultType="cn.timer.api.bean.insure.InsurePolicy"> select * from insure_policy where status = 1 and policy_date_end <![CDATA[ < ]]> #{date} </select> </mapper>