<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~
  ~      Copyright (c) 2018-2025, lengleng All rights reserved.
  ~
  ~  Redistribution and use in source and binary forms, with or without
  ~  modification, are permitted provided that the following conditions are met:
  ~
  ~ Redistributions of source code must retain the above copyright notice,
  ~  this list of conditions and the following disclaimer.
  ~  Redistributions in binary form must reproduce the above copyright
  ~  notice, this list of conditions and the following disclaimer in the
  ~  documentation and/or other materials provided with the distribution.
  ~  Neither the name of the yifu4cloud.com developer nor the names of its
  ~  contributors may be used to endorse or promote products derived from
  ~  this software without specific prior written permission.
  ~  Author: lengleng (wangiegie@gmail.com)
  ~
  -->

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TInsuranceAreaResMapper">

	<resultMap id="tInsuranceAreaResMap" type="com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceAreaRes">
		<id property="id" column="ID"/>
		<result property="userId" column="USER_ID"/>
		<result property="province" column="PROVINCE"/>
		<result property="city" column="CITY"/>
		<result property="userName" column="USER_NAME"/>
		<result property="status" column="STATUS"/>
		<result property="organName" column="ORGAN_NAME"/>
	</resultMap>
	<resultMap id="insuranceAreaResExportMap" type="com.yifu.cloud.plus.v1.yifu.insurances.vo.TInsuranceAreaExportVo">
		<result property="province" column="PROVINCE"/>
		<result property="city" column="CITY"/>
		<result property="userName" column="USER_NAME"/>
		<result property="status" column="STATUS"/>
		<result property="organName" column="ORGAN_NAME"/>
	</resultMap>
	<sql id="Base_Column_List">
		a.ID,
		a.USER_ID,
		a.PROVINCE,
		a.CITY,a.USER_NAME,a.STATUS,a.ORGAN_NAME
	</sql>
	<sql id="tInsuranceAreaRes_where">
		<if test="tInsuranceAreaRes != null">
			<if test="tInsuranceAreaRes.id != null and tInsuranceAreaRes.id.trim() != ''">
				AND a.ID = #{tInsuranceAreaRes.id}
			</if>
			<if test="tInsuranceAreaRes.userId != null and tInsuranceAreaRes.userId.trim() != ''">
				AND a.USER_ID = #{tInsuranceAreaRes.userId}
			</if>
			<if test="tInsuranceAreaRes.province != null">
				AND a.PROVINCE = #{tInsuranceAreaRes.province}
			</if>
			<if test="tInsuranceAreaRes.city != null">
				AND a.CITY = #{tInsuranceAreaRes.city}
			</if>
			<if test="tInsuranceAreaRes.status!= null">
				AND a.status like CONCAT(#{tInsuranceAreaRes.status},'%')
			</if>
			<if test="tInsuranceAreaRes.userName != null">
				AND a.USER_NAME  like CONCAT('%',#{tInsuranceAreaRes.userName},'%')
			</if>
			<if test="tInsuranceAreaRes.organName != null">
				AND a.ORGAN_NAME  like CONCAT('%',#{tInsuranceAreaRes.organName},'%')
			</if>
		</if>
	</sql>
	<!--tInsuranceAreaRes简单分页查询-->
	<select id="getTInsuranceAreaResPage" resultMap="tInsuranceAreaResMap">
		SELECT
		<include refid="Base_Column_List"/>
		FROM t_insurance_area_res a
		<where>
			1=1
			<include refid="tInsuranceAreaRes_where"/>
			order by a.CREATE_TIME desc
		</where>
	</select>
	<select id="noPageDiy" resultMap="insuranceAreaResExportMap">
		SELECT
		a.PROVINCE,
		a.CITY,a.USER_NAME,a.STATUS,a.ORGAN_NAME
		FROM t_insurance_area_res a
		<where>
			1=1
			<include refid="export_where"/>
			<if test="tInsuranceAreaRes != null">
				<if test="tInsuranceAreaRes.authSql != null and tInsuranceAreaRes.authSql.trim() != ''">
					${tHaveSalaryNosocial.authSql}
				</if>
				<if test="tInsuranceAreaRes.limitStart != null">
					limit #{tInsuranceAreaRes.limitStart},#{tInsuranceAreaRes.limitEnd}
				</if>
			</if>
		</where>
	</select>
	<select id="noPageCountDiy"  resultType="java.lang.Integer">
		SELECT
		count(1)
		FROM t_insurance_area_res a
		<where>
			1=1
			<include refid="export_where"/>
			<if test="tInsuranceAreaRes.authSql != null and tInsuranceAreaRes.authSql.trim() != ''">
				${tInsuranceAreaRes.authSql}
			</if>
		</where>
	</select>
	<sql id="export_where">
		<include refid="tInsuranceAreaRes_where"/>
		<if test="idsStr != null and idsStr.size > 0">
			AND a.ID in
			<foreach item="items" index="index" collection="idsStr" open="(" separator="," close=")">
				#{items}
			</foreach>
		</if>
		<!--数据权限判断-->
		<if test="settleDomainIds != null">
			<if test="settleDomainIds.size() > 0">
				and a.SETTLE_DOMAIN_ID in
				<foreach collection="settleDomainIds" item="param" index="index" open="(" close=")" separator=",">
					#{param}
				</foreach>
			</if>
			<if test="settleDomainIds.size() == 0">
				and 1=2
			</if>
		</if>
		<if test="settleDomainIds == null">
			and 1=1
		</if>
		<if test='sql != null and sql != ""'>
			and <![CDATA[sql]]>
		</if>
	</sql>
</mapper>