<?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="com.goafanti.common.dao.UserMapper">
	<select id="selectPersonalCustomerList" resultType="com.goafanti.customer.bo.CustomerListOut">
		select 
			a.id as uid,
			a.identify_name as name,
			date_format(a.create_time,'%Y-%m-%d %H:%i:%S') as createTime,
			dg1.name as province,
			dg2.name as city, 
			dg3.name as area,
			d.name as adminName
		from user a 
		left join user_identity b on a.id = b.uid
		left join district_glossory dg1 on b.province = dg1.id
		left join district_glossory dg2 on b.city = dg2.id
		left join district_glossory dg3 on b.area = dg3.id
		left join admin d on a.aid = d.id
		where a.type = 0 and a.status != 1
		<if test="aid != null and aid !=''">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.area = #{area,jdbcType=INTEGER}
		</if>
		<if test="page_sql != null">
    		${page_sql}
   		</if>
	</select>
	<select id="selectPersonalCustomerCount" resultType="java.lang.Integer">
		select 
			count(0)
		from user a 
		left join user_identity b on a.id = b.uid
		left join district_glossory dg1 on b.province = dg1.id
		left join district_glossory dg2 on b.city = dg2.id
		left join district_glossory dg3 on b.area = dg3.id
		left join admin d on a.aid = d.id
		where a.type = 0 and a.status != 1
		<if test="aid != null and aid !=''">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.area = #{area,jdbcType=INTEGER}
		</if>
	</select>
	<select id="selectPrivatePersonalCustomerList" resultType="com.goafanti.customer.bo.CustomerListOut">
		select 	t0.id as uid,
			   	t0.aid,
			   	date_format(t0.transfer_time,'%Y-%m-%d %H:%i:%S') as transferTime,
			  	date_format(t0.create_time,'%Y-%m-%d %H:%i:%S') as createTime,
			   	t0.identify_name as name,
			   	t0.society_tag as societyTag,
			   	date_format(t1.last_follow_time,'%Y-%m-%d %H:%i:%S') as lastFollowTime,
			   	date_format(t2.last_sign_time,'%Y-%m-%d %H:%i:%S') as lastSignTime,
				b.contacts,
				b.contact_mobile as contactMobile,
				dg1.name as province,
				dg2.name as city, 
				dg3.name as area,
				ifnull(t1.last_follow_time,t0.transfer_time) as orderTime,
				c.name as industry,
				d.name as adminName
		from 
			(select id,aid,type,share_type,create_time,transfer_time,identify_name,society_tag from user where aid = #{aid} and type = 0 and share_type = 0 and status != 1)t0
		left join 
			(select uid,aid,max(create_time) as last_follow_time from user_follow where aid = #{aid} group by uid)t1
		on t0.id = t1.uid left join 
			(select aid,uid,max(lock_time) as last_sign_time from user_lock_release  where aid = #{aid} group by uid)t2
		on t0.id = t2.uid
		left join user_identity b on t0.id = b.uid 
		left join district_glossory dg1 on b.province = dg1.id
		left join district_glossory dg2 on b.city = dg2.id
		left join district_glossory dg3 on b.area = dg3.id
		left join industry_category c on b.industry = c.id
		left join admin d on t0.aid = d.id where 1=1
		<if test="name != null and name != ''">
			and t0.identify_name like concat('%',#{name},'%')
		</if>
		<if test="startDate != null and startDate != ''">
			and t0.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and t0.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.area = #{area,jdbcType=INTEGER}
		</if>
		 order by orderTime 
		 <if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	<select id="selectPrivatePersonalCustomerCount" resultType="java.lang.Integer">
		select count(0)
		from 
			(select id,aid,type,share_type,transfer_time,identify_name,society_tag from user where aid = #{aid} and type = 0 and share_type = 0 and status != 1)t0
		left join user_identity b on t0.id = b.uid where 1=1
		<if test="name != null and name != ''">
			and t0.identify_name like concat('%',#{name},'%')
		</if>	
		<if test="startDate != null and startDate != ''">
			and t0.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and t0.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.area = #{area,jdbcType=INTEGER}
		</if>
	</select>
	<select id="selectPublicPersonalCustomerList" resultType="com.goafanti.customer.bo.CustomerListOut">
		select
			a.id as uid,
			a.aid,
			a.identify_name as name,
			a.create_time as createTime,
			a.transfer_time as transferTime,
			b.contacts,
			b.contact_mobile as contactMobile,
			dg1.name as province,
			dg2.name as city, 
			dg3.name as area
		from
			user a inner join user_identity b on a.id = b.uid
			left join district_glossory dg1 on b.province = dg1.id
			left join district_glossory dg2 on b.city = dg2.id
			left join district_glossory dg3 on b.area = dg3.id
		where
			a.type = 0 and a.share_type = 1 and a.status != 1
		<if test="aid != null and aid !=''">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>	
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.area = #{area,jdbcType=INTEGER}
		</if>
		order by a.create_time
		 <if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	<select id="selectPublicPersonalCustomerCount" resultType="java.lang.Integer">
		select
			count(0)
		from
			user a inner join user_identity b on a.id = b.uid
			left join district_glossory dg1 on b.province = dg1.id
			left join district_glossory dg2 on b.city = dg2.id
			left join district_glossory dg3 on b.area = dg3.id
		where
			a.type = 0 and a.share_type = 1 and a.status != 1
		<if test="aid != null and aid !=''">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>	
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.area = #{area,jdbcType=INTEGER}
		</if>
		
	</select>
	<select id="selectSignPersonalCustomerList" resultType="com.goafanti.customer.bo.CustomerListOut">
			select 
			t0.uid as uid,
			date_format(t0.update_time,'%Y-%m-%d %H:%i:%S') as  lastSignTime,
			date_format(t1.last_follow_time,'%Y-%m-%d %H:%i:%S') as lastFollowTime,
			t2.society_tag as societyTag,
			t2.identify_name as name,
			t2.share_type as shareType,
			date_format(t2.transfer_time,'%Y-%m-%d %H:%i:%S') as transferTime,
			dg1.name as province,
			dg2.name as city, 
			dg3.name as area,
			b.contacts,
			b.contact_mobile as contactMobile,
			c.name as industry,
			d.name as adminName
		from
			(select uid,aid,max(lock_time) as update_time
		from user_lock_release
		where type=1 and aid= #{aid,jdbcType=VARCHAR}
		group by uid)t0
		left join 
			(select uid,aid,max(create_time) as last_follow_time from user_follow where aid =#{aid,jdbcType=VARCHAR} group by uid)t1
		on t0.uid = t1.uid
		inner join
			(select id,aid,share_type,society_tag,identify_name,transfer_time from user where type = 0 and status != 1)t2
		on t0.uid = t2.id
		left join user_identity b on t0.uid = b.uid
		left join district_glossory dg1 on b.province = dg1.id
		left join district_glossory dg2 on b.city = dg2.id
		left join district_glossory dg3 on b.area = dg3.id
		left join industry_category c on b.industry = c.id
		left join admin d on t2.aid = d.id where 1 = 1
		<if test="name != null and name != ''">
			and t2.identify_name like concat('%',#{name},'%')
		</if>
		<if test="shareType != null">
			and t2.share_type = #{shareType,jdbcType=VARCHAR}
		</if>
		<if test="startDate != null and startDate != ''">
			and t2.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and t2.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.area = #{area,jdbcType=INTEGER}
		</if>
		 <if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	<select id="selectSignPersonalCustomerCount" resultType="java.lang.Integer">
		select 
			count(0)
		from
			(select uid,aid,max(lock_time) as update_time
		from user_lock_release
		where type=1 and aid= #{aid,jdbcType=VARCHAR}
		group by uid)t0
			<!-- (select uid,max(lock_time) from user_lock_release where aid = #{aid} and type = 1 and status = 0 group by uid)t0 -->
		inner join
			(select id,aid,share_type,society_tag,identify_name,transfer_time from user where type = 0 and status != 1)t2
		on t0.uid = t2.id
		left join user_identity b on t0.uid = b.uid
		 where 1 = 1
		<if test="name != null and name != ''">
			and t2.identify_name like concat('%',#{name},'%')
		</if>
		<if test="shareType != null">
			and t2.share_type = #{shareType,jdbcType=VARCHAR}
		</if>
		<if test="startDate != null and startDate != ''">
			and t2.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and t2.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.area = #{area,jdbcType=INTEGER}
		</if>
	</select>
	
	<select id="selectOrganizationCustomerList" resultType="com.goafanti.customer.bo.CustomerListOut">
		select 
			a.id as uid,
			a.identify_name as name,
			date_format(a.create_time,'%Y-%m-%d %H:%i:%S') as createTime,
			dg1.name as province,
			dg2.name as city, 
			dg3.name as area,
			a.aid,
			a.sign_bills signBills,
			a.share_type as shareType,
			a.information_maintainer as mid 		
		from user a 
		left join organization_identity b on a.id = b.uid
		left join district_glossory dg1 on b.location_province = dg1.id
		left join district_glossory dg2 on b.location_city = dg2.id
		left join district_glossory dg3 on b.location_area = dg3.id
		left join admin d on a.aid = d.id 
		where a.type = 1 and a.status != 1
	<if test="role == 0">
		and a.identify_name = #{name}
	</if>
	<if test="role == 1">
		and a.identify_name like concat('%', #{name},'%')
	</if>	
		<if test="aid != null and aid !=''">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="departmentId != null and departmentId !=''">
			and d.department_id=#{departmentId,jdbcType=VARCHAR}
		</if>
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.location_province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.location_city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.location_area = #{area,jdbcType=INTEGER}
		</if>
		<if test="page_sql != null">
    		${page_sql}
   		</if>
	</select>
	<select id="selectOrganizationCustomerCount" resultType="java.lang.Integer">
		select 
			count(0)
		from user a 
		left join organization_identity b on a.id = b.uid
		<if test="departmentId != null and departmentId !=''">
		INNER join (select id
		from admin 
		where department_id=#{departmentId,jdbcType=VARCHAR}) d on a.aid = d.id
		</if>
		where a.type = 1 and a.status != 1
		<if test="role == 0">
		and a.identify_name = #{name}
	</if>
	<if test="role == 1">
		and a.identify_name like concat('%', #{name},'%')
	</if>
		<if test="aid != null and aid !=''">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.location_province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.location_city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.location_area = #{area,jdbcType=INTEGER}
		</if>
	</select>
	
	<select id="selectPrivateOrganizationCustomerList" resultType="com.goafanti.customer.bo.CustomerListOut">
	select a.id uid,a.aid,a.identify_name name,a.society_tag societyTag,a.`level`,b.name aName,dg1.name as province,dg2.name as city,
	a.guidance, dg3.name as area,
	date_format(um.last_sign_time,'%Y-%m-%d %H:%i:%S') lastSignTime,
	date_format(a.transfer_time,'%Y-%m-%d %H:%i:%S') as transferTime, 
	date_format(a.create_time,'%Y-%m-%d %H:%i:%S') as createTime,
	date_format(um.last_follow_time,'%Y-%m-%d %H:%i:%S') lastFollowTime, 
	if(a.transfer_time &lt; um.last_follow_time,um.last_follow_time,a.transfer_time) as orderTime 
	from user a left join admin b on a.aid=b.id left join organization_identity d on a.id = d.uid 
	left join district_glossory dg1 on d.location_province = dg1.id 
	left join district_glossory dg2 on d.location_city = dg2.id 
	left join district_glossory dg3 on d.location_area = dg3.id
	left join user_mid um on um.aid=a.aid and um.uid=a.id
	where a.type= 1 and a.share_type=0  and a.source in(1,2,3)
		<if test="power ==0">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="power ==1  or power ==2">
			and a.aid in
			<foreach item="item" collection="alist" separator="," open="(" close=")" index="">
		       #{item}
		     </foreach> 
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and d.location_province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and d.location_city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and d.location_area = #{area,jdbcType=INTEGER}
		</if>
		 <if test="level != null">
			and a.level = #{level,jdbcType=INTEGER}
		</if>
		<if test="sort != 1">
		   order by orderTime 
		</if>
		<if test="sort == 1"> 
		 order by a.create_time 
		 </if>
		 <if test="sortType == 1">
		 		desc
		 </if>
		 <if test="page_sql != null">
    		${page_sql}
   		 </if> 
	</select>
	<select id="selectPrivateOrganizationCustomerCount" resultType="java.lang.Integer">
			select count(*)
			from user a left join admin b on  a.aid=b.id 
			left join organization_identity d on a.id = d.uid left join district_glossory dg1 on d.location_province = dg1.id
			left join district_glossory dg2 on d.location_city = dg2.id left join district_glossory dg3 on d.location_area = dg3.id
			where a.type= 1 and a.share_type=0  and a.source in(1,2,3)
		<if test="power ==0">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="power ==1 or power ==2">
			and a.aid in
			<foreach item="item" collection="alist" separator="," open="(" close=")" index="">
		       #{item}
		     </foreach> 
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and d.location_province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and d.location_city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and d.location_area = #{area,jdbcType=INTEGER}
		</if>
		<if test="level != null">
			and a.level = #{level,jdbcType=INTEGER}
		</if>
	</select>
	<select id="selectPublicOrganizationCustomerList" resultType="com.goafanti.customer.bo.CustomerListOut">
		select
			a.id as uid,
			a.identify_name as name,
			a.create_time as createTime,
			a.transfer_time as transferTime,
			dg1.name as province,
			dg2.name as city, 
			dg3.name as area	
		from
			user a 
			inner join organization_identity b on a.id = b.uid
			left join district_glossory dg1 on b.location_province = dg1.id
			left join district_glossory dg2 on b.location_city = dg2.id
			left join district_glossory dg3 on b.location_area = dg3.id
		where
			a.type = 1
			and a.share_type = 1
			and a.status != 1
			and a.source != 0
		<if test="aid != null and aid !=''">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>	
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.location_province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.location_city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.location_area = #{area,jdbcType=INTEGER}
		</if>
		<if test="sort == 1">
		order by a.transfer_time desc
		</if>
		<if test="sort == 2">
		order by a.transfer_time 
		</if>
		 <if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	<select id="selectPublicOrganizationCustomerCount" resultType="java.lang.Integer">
		select
			count(0)	
		from
			user a 
			inner join organization_identity b on a.id = b.uid
			left join district_glossory dg1 on b.location_province = dg1.id
			left join district_glossory dg2 on b.location_city = dg2.id
			left join district_glossory dg3 on b.location_area = dg3.id
		where
			a.type = 1
			and a.share_type = 1
			and a.status != 1
			and a.source != 0
		<if test="aid != null and aid !=''">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>	
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.location_province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.location_city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.location_area = #{area,jdbcType=INTEGER}
		</if>
	</select>
	<select id="selectSignOrganizationCustomerList" resultType="com.goafanti.customer.bo.CustomerListOut">
		select 	
			a.id as uid,
			a.society_tag as societyTag,
			a.identify_name as name,
			a.share_type as shareType,
			date_format(a.transfer_time,'%Y-%m-%d %H:%i:%S') as transferTime, 
			dg1.name as province,
			dg2.name as city, 
			dg3.name as area,
			c.name as industry,
			d.name as adminName
		from user a 
		left join organization_identity b on a.id = b.uid
		left join district_glossory dg1 on b.location_province = dg1.id
		left join district_glossory dg2 on b.location_city = dg2.id
		left join district_glossory dg3 on b.location_area = dg3.id
		left join industry_category c on b.industry = c.id
		left join admin d on a.aid = d.id where a.share_type =2
		<if test="aid != null and aid != ''">
			and a.aid = #{aid}
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>
		<if test="shareType != null">
			and a.share_type = #{shareType,jdbcType=VARCHAR}
		</if>
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.location_province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.location_city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.location_area = #{area,jdbcType=INTEGER}
		</if>
		order by a.transfer_time desc
		 <if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	
	<select id="selectSignOrganizationCustomerCount" resultType="java.lang.Integer">
		select count(0) from user a 
		left join organization_identity b on a.id = b.uid
		where a.share_type =2
		<if test="aid != null and aid != ''">
			and a.aid = #{aid}
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>
		<if test="shareType != null">
			and a.share_type = #{shareType,jdbcType=VARCHAR}
		</if>
		<if test="startDate != null and startDate != ''">
			and a.transfer_time &gt; #{startDate}
		</if>
		<if test="endDate != null and endDate != ''">
			and a.transfer_time &lt; #{endDate}
		</if>
		<if test="province != null">
			and b.location_province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.location_city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.location_area = #{area,jdbcType=INTEGER}
		</if>
	</select>
	
	<select id="findCustomerByName" parameterType="java.lang.String" resultType="com.goafanti.customer.bo.CustomerSimpleBo">
		select id,identify_name as name from user where identify_name like
		concat('%',#{identifyName},'%') and status <![CDATA[!= ]]> 1 and audit_status = 1
	</select>
	
	<select id="judgeCustomerByName" resultType="java.lang.Integer">
		select count(0) from user where identify_name = #{identifyName,jdbcType=VARCHAR}
		and status <![CDATA[!= ]]> 1
	</select>
	
	<select id="findOrganizationCustomerDetail" parameterType="java.lang.String" resultType="com.goafanti.customer.bo.CustomerOrganizationDetailBo">
		 select 
			a.id as uid,
			a.society_tag as societyTag,
			a.company_logo_url as companyLogoUrl,
			a.introduction,
		    a.identify_name as identifyName,
			b.industry,
			b.location_province as locationProvince,
			b.location_city as locationCity,
			b.location_area as locationArea,
			b.postal_address as postalAddress,
			b.contacts_fixed_tel as contactsFixedTel,
			b.contacts_fax as contactsFax,
			b.registered_capital registeredCapital,
			b.enterprise_scale as enterpriseScale,
			b.legal_person as legalPerson,
			b.legal_person_id_card as legalPersonIdCard,
			b.legal_person_tel as legalPersonTel,
			b.legal_person_email as legalPersonEmail,
			b.org_code as orgCode,
			b.org_code_url as orgCodeUrl,
			b.business_scope as businessScope,
			b.sales_target salesTarget,
			b.id,
			b.contacts,
			b.contact_mobile as contactMobile,
			b.licence_number as licenceNumber,
			a.aid as aid,
			d.name as adminName,
			a.information_maintainer as informationMaintainer,
			c.name as informationMaintainerName,
			a.core_technology as coreTechnology,
			a. accomplish_situation as  accomplishSituation,
			a.intellectual_property as  intellectualProperty,
			b.year_sales_amount as  yearSalesAmount,
			b.last_year_research_amount as  lastYearResearchAmount,
			b.assets,
			b.qualification,
			b.cooperation_situation as  cooperationSituation,
			a.credit_rating as creditRating,
			e.poject_application_url as pojectApplicationUrl
		from 
			user a inner join organization_identity b on a.id = b.uid
			left join admin d on d.id = a.aid
			left join admin c on c.id = a.information_maintainer
			left join organization_application_info e on a.id=e.uid
		where 
			a.id = #{uid,jdbcType=VARCHAR}
	</select>
	
	<select id="findPersonalCustomerDetail" parameterType="java.lang.String" resultType="com.goafanti.customer.bo.CustomerPersonalDetailBo">
		select
			a.id as uid,
			a.identify_name as identifyName,
			a.society_tag as societyTag,
			a.head_portrait_url as headPortraitUrl,
			a.introduction,
			b.id,
			b.industry,
			b.sex,
			b.date_of_birth_year as dateOfBirthYear,
			b.date_of_birth_month as dateOfBirthMonth,
			b.id_number as idNumber,
			b.province,
			b.city,
			b.area,
			b.positive_id_url as positiveIdUrl,
			b.opposite_id_url as oppositeIdUrl,
			b.postal_address as postalAddress,
			b.contact_mobile as contactMobile,
			b.fixed_tel as fixedTel,
			b.email,
			b.expert,
			b.international,
			b.contacts,
			b.contact_mobile as contactMobile,
			b.qq,
			b.professional_title as professionalTitle,
			b.work_unit as workUnit,
			b.education,
			b.major_category as majorCategory,
			b.qualification,
			b.audit_status as auditStatus,
			b.graduate_school as graduateSchool,
			b.consultation_price as consultationPrice,
			b.release_status as releaseStatus,
			a.aid as aid,d.name as adminName
		from
			user a inner join user_identity b on
			a.id = b.uid	
			left join admin d on d.id = a.aid
		where
			a.id = #{uid,jdbcType=VARCHAR}
	</select>
	
	<select id="selectFollowHistoryList" resultType="com.goafanti.customer.bo.FollowListBo">
		select a.id as followId, a.aid, a.create_time as followTime, a.contact_type as contactType,
			a.result,a.guidance, b.identify_name as identifyName, c.name as contacts, c.mobile as contactMobile,
			d.name as adminName,date_format(a.guidance_time,'%Y-%m-%d %H:%i:%S') as guidanceTime
		<if test="businessProjectId != null and businessProjectId != ''"><!--  客户甲项目A所有的跟进记录 -->
			,e.id as ufbId,e.follow_situation as followSituation,e.customer_status as customerStatus
		</if>
		from user_follow a
		left join user b on a.uid = b.id 
		left join organization_contact_book c on a.ocb_id = c.id
		left join admin d on a.aid = d.id
		<if test="businessProjectId != null and businessProjectId != ''"><!--  客户甲项目A所有的跟进记录 -->
			inner join user_follow_business e on a.id = e.follow_id
		</if>
		where a.effective = 0
		<if test="uid != null and uid != ''">
			and a.uid = #{uid,jdbcType=VARCHAR}
		</if>
		<if test="aid != null and aid != ''">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="businessProjectId != null and businessProjectId != ''"><!--  客户甲项目A所有的跟进记录 -->
			and e.business_project_id = #{businessProjectId,jdbcType=VARCHAR}
		</if>
   		 order by a.create_time desc
		<if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	<select id="selectFollowHistoryCount" resultType="java.lang.Integer">
		select 
			count(0)
		from user_follow a
		left join user b on a.uid = b.id 
		left join organization_contact_book c on a.ocb_id = c.id
		left join admin d on a.aid = d.id
		<if test="businessProjectId != null and businessProjectId != ''"><!--  客户甲项目A所有的跟进记录 -->
			inner join user_follow_business e on a.id = e.follow_id
		</if>
		where a.effective = 0
		<if test="uid != null and uid != ''">
			and a.uid = #{uid,jdbcType=VARCHAR}
		</if>
		<if test="aid != null and aid != ''">
			and a.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="businessProjectId != null and businessProjectId != ''"><!--  客户甲项目A所有的跟进记录 -->
			and e.business_project_id = #{businessProjectId,jdbcType=VARCHAR}
		</if>
	</select>
	
	<select id="findUserAccountDetail"  parameterType="java.lang.String"  resultType="com.goafanti.common.model.User">
		select
			id,
			mobile,
			nickname,
			create_time as createTime,
			type,
			source,
			email,
			identify_name as identifyName,
			status,
			guidance
		from
			user
		where id = #{uid,jdbcType=VARCHAR}
	</select>
	
	<select id="findCustomerContacts" parameterType="java.lang.String" resultType="com.goafanti.common.model.OrganizationContactBook">
	select a.id,a.name,a.mobile,a.email,a.qq,a.wechat,a.department,a.position,a.major,a.fixed_tel fixedTel,a.aname,b.location_province,
	d1.name provinceName,d2.name cityName,d3.name areaName,date_format(a.create_time,'%Y-%m-%d')createTimes,aid 
	from organization_contact_book a 
	left join organization_identity b on a.uid=b.uid left join district_glossory d1 on b.location_province=d1.id 
	left join district_glossory d2 on b.location_city=d2.id left join district_glossory d3 on b.location_area=d3.id 
		where a.uid = #{uid,jdbcType=VARCHAR} and a.aid= #{aid,jdbcType=VARCHAR} order by a.create_time desc
	</select>
	
	<select id="findAllContacts" parameterType="java.lang.String" resultType="com.goafanti.common.model.OrganizationContactBook">
		select id,name,mobile,major,sex,department,position,wechat,qq from organization_contact_book  
		where uid = #{uid,jdbcType=VARCHAR}
	</select>
	
	<select id="findFollowById" parameterType="java.lang.String" resultType="com.goafanti.customer.bo.FollowBusinessBo">
		select
			a.id as followId,
			a.uid,
			a.ocb_id as ocbId,
			a.contact_type as contactType,
			a.result,
			a.create_time as followTime,
			b.identify_name as identifyName,
			c.name as contacts,
			c.mobile as contactMobile,
			d.name as adminName
		from
			user_follow a
		left join user b on a.uid = b.id
		left join organization_contact_book c on a.ocb_id = c.id
		left join admin d on a.aid = d.id
		where a.id = #{followId,jdbcType=VARCHAR}
	</select>

	<select id="customerStatisticsList" resultType="com.goafanti.customer.bo.StatisticBo">
		select a.*,b.name as adminName,c.name as departmentName from (
			select 
			aid,
			sum(case when customer_status = 0 then 1 else 0 end) as newNo, <!-- 新客户 -->
			sum(case when customer_status = 1 then 1 else 0 end) as intentionNo, <!-- 意向客户 -->
			sum(case when customer_status = 2 then 1 else 0 end) as pointNo,  <!-- 重点客户 -->
			sum(case when customer_status = 3 then 1 else 0 end) as interviewNo, <!-- 面谈客户 -->
			sum(case when customer_status = 4 then 1 else 0 end) as signNo, <!-- 签单客户 -->
			sum(case when customer_status = 5 then 1 else 0 end) as refuseNo, <!-- 拒绝客户 -->
			sum(case when customer_status = 6 then 1 else 0 end) as stopNo <!-- 停止跟进 -->
			from user_business where 1=1
				<if test="sDate != null">
				 	and create_time &gt; #{sDate,jdbcType=DATE}
				</if>
				<if test="eDate != null">
				 	and create_time &lt; #{eDate,jdbcType=DATE}
				</if>
				<if test="businessGlossoryId != null">
					and business_glossory_id = #{businessGlossoryId,jdbcType=VARCHAR}
				</if>
			group by aid
			)a 
		left join admin b on a.aid = b.id 
		left join department c on b.department_id = c.id
		<if test="depNo != null">
			where c.dep_no like concat(#{depNo,jdbcType=VARCHAR},'%')
		</if>
		<if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>

	<select id="customerStatisticsCount" resultType="java.lang.Integer">
		select count(0) from (
			select 
			aid
			from user_business where 1=1
			<if test="sDate != null">
				 and create_time &gt; #{sDate,jdbcType=DATE}
			</if>
			<if test="eDate != null">
				and create_time &lt; #{eDate,jdbcType=DATE}
			</if>
			<if test="businessGlossoryId != null">
				and business_glossory_id = #{businessGlossoryId,jdbcType=VARCHAR}
			</if>
			group by aid
		)a
		left join admin b on a.aid = b.id 
		left join department c on b.department_id = c.id
		<if test="depNo !=null">
			where c.dep_no like concat(#{depNo,jdbcType=VARCHAR},'%')
		</if>
	</select>
	
	<select id="businessStatisticList" resultType="com.goafanti.customer.bo.StatisticBo">
		select a.*,b.name as adminName,c.name as departmentName from (
			select
			aid,
			sum(case when follow_situation = 0 then 1 else 0 end) as sendMaterialNo, <!-- 已发项目介绍资料 -->
			sum(case when follow_situation = 1 then 1 else 0 end) as interviewNo, <!-- 已约面谈 -->
			sum(case when follow_situation = 2 then 1 else 0 end) as sendProspectusNo, <!-- 已发合同计划书 -->
			sum(case when follow_situation = 3 then 1 else 0 end) as quoteNo, <!-- 已报价 -->
			sum(case when follow_situation = 4 then 1 else 0 end) as sendContractNo, <!-- 已发合同 -->
			sum(case when follow_situation = 5 then 1 else 0 end) as signContractNo, <!-- 已签合同 -->
			sum(case when follow_situation = 6 then 1 else 0 end) as onVisaNo, <!-- 面谈中 -->
			sum(case when follow_situation = 7 then 1 else 0 end) as visaNo <!-- 已面签 -->
			from user_business where 1=1
			<if test="sDate != null">
				 and create_time &gt; #{sDate,jdbcType=DATE}
			</if>
			<if test="eDate != null">
				and create_time &lt; #{eDate,jdbcType=DATE}
			</if>
			<if test="businessGlossoryId != null">
				and business_glossory_id = #{businessGlossoryId,jdbcType=VARCHAR}
			</if>
			group by aid
			)a
			left join admin b on a.aid = b.id 
			left join department c on b.department_id = c.id
		<if test="depNo !=null">
			where c.dep_no like concat(#{depNo,jdbcType=VARCHAR},'%')
		</if>
		<if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	
	<select id="businessStatisticCount" resultType="java.lang.Integer">
		select count(0) from (
			select
			aid
			from user_business where 1=1
			<if test="sDate != null">
				 and create_time &gt; #{sDate,jdbcType=DATE}
			</if>
			<if test="eDate != null">
				and create_time &lt; #{eDate,jdbcType=DATE}
			</if>
			<if test="businessGlossoryId != null">
				and business_glossory_id = #{businessGlossoryId,jdbcType=VARCHAR}
			</if>
			group by aid
			)a
			left join admin b on a.aid = b.id 
			left join department c on b.department_id = c.id
		<if test="depNo !=null">
			where c.dep_no like concat(#{depNo,jdbcType=VARCHAR},'%')
		</if>
	</select>
	
	<select id="followStatisticList" resultType="com.goafanti.customer.bo.StatisticBo">
		select x.*,b.name as adminName,c.name as departmentName,y.*  from (
		select
			count(0) as followNo,
			aid,
			sum(case when contact_type = 0 then 1 else 0 end) as visitNo, <!-- 外出 -->
			sum(case when contact_type = 1 then 1 else 0 end) as telNo, <!-- 电话 -->
			sum(case when contact_type = 2 then 1 else 0 end) as qqNo, <!-- QQ -->
			sum(case when contact_type = 3 then 1 else 0 end) as wxNo, <!-- 微信 -->
			sum(case when contact_type = 4 then 1 else 0 end) as emailNo, <!-- 邮件 -->
			sum(case when contact_type = 5 then 1 else 0 end) as letterNo <!-- 书信 -->
			from user_follow where 1=1 
			<if test="sDate != null">
				and create_time &gt; #{sDate,jdbcType=DATE}
			</if>
			<if test="eDate != null">
				and create_time &lt; #{eDate,jdbcType=DATE}
			</if>
			group by aid
		)x
		left join admin b on x.aid = b.id 
		left join department c on b.department_id = c.id
		left join 
		(
				select
					count( 0 ) as customerNo,
					aid
				from
					(
						select
							aid,
							uid
						from
							user_follow
						
						group by
							aid,
							uid
					) a
				group by
					aid
		)y on x.aid = y.aid
		<if test="depNo !=null">
			where c.dep_no like concat(#{depNo,jdbcType=VARCHAR},'%')
		</if>
	</select>
	
	<select id="followStatisticCount" resultType="java.lang.Integer">
		select count(0) from (
		select
			aid
			from user_follow where 1=1 
			<if test="sDate != null">
				and create_time &gt; #{sDate,jdbcType=DATE}
			</if>
			<if test="sDate != null">
				and create_time &lt; #{eDate,jdbcType=DATE}
			</if>
			group by aid
		)x
		left join admin b on x.aid = b.id 
		left join department c on b.department_id = c.id
		<if test="depNo !=null">
			where c.dep_no like concat(#{depNo,jdbcType=VARCHAR},'%')
		</if>
	</select>
	
	<select id="findBusinessByFollowId" parameterType="java.lang.String" resultType="com.goafanti.customer.bo.BusinessListBo">
		select
			a.id as ufbId,
			a.follow_situation as followSituation,
			a.customer_status as customerStatus,
			a.remarks,
			a.business_project_id as businessProjectId,
			b.bname as businessProjectName,
			c.cname as businessVarietiesName
		from
			user_follow_business a
		left join business_project b on a.business_project_id = b.id
		left join business_category c on b.cid = c.id
		where
			a.follow_id = #{followId,jdbcType=VARCHAR}
	</select>
	
	<select id="selectBusinessList" resultType="com.goafanti.customer.bo.BusinessListBo">
	  select
		c.bname as businessName,
		b.identify_name as identifyName,
		a.id as businessId,
		a.business_project_id as businessProjectId,
		a.create_time as createTime,
		a.update_time as updateTime,
		a.follow_situation as followSituation,
		a.customer_status as customerStatus,
		a.remarks,
		d.name as adminName
	from
		user_business a inner join user b on
		a.uid = b.id left join business_project c on
		a.business_project_id = c.id left join admin d on
		a.aid = d.id
	where 1 = 1
	<if test="aid != null and aid != ''">
		and a.aid = #{aid,jdbcType=VARCHAR}
	</if>
	<if test="uid != null and uid !=''">
		and a.uid = #{uid,jdbcType=VARCHAR}
	</if>
	<if test="businessProjectId !=null and businessProjectId != ''">
		and a.business_project_id = #{businessProjectId,jdbcType=VARCHAR}
	</if>
	<if test="identifyName != null and identifyName != ''">
		and b.identify_name like concat('%', #{identifyName},'%')
	</if>
	<if test="followSituation != null">
		and a.follow_situation = #{followSituation,jdbcType=INTEGER}
	</if>
	<if test="customerStatus != null">
		and a.customer_status = #{customerStatus,jdbcType=INTEGER}
	</if>
	<if test="adminName != null and adminName != ''">
		and d.name = #{adminName,jdbcType=VARCHAR}
	</if>
	<if test="startDate != null and startDate != ''">
		and a.create_time &gt; STR_TO_DATE(#{startDate},'%Y-%m-%d %H:%i:%s')
	</if>
	<if test="endDate != null and endDate != ''">
		and a.create_time &lt; STR_TO_DATE(#{endDate},'%Y-%m-%d %H:%i:%s')
	</if>
	order by a.create_time desc 
	<if test="page_sql != null">
    	${page_sql}
    </if>
  </select>
  
  <select id="selectBusinessCount" parameterType="com.goafanti.customer.bo.BusinessListBo" resultType="java.lang.Integer">
  	select
  		count(*)
  	from
		user_business a inner join user b on
		a.uid = b.id left join business_project c on
		a.business_project_id = c.id left join admin d on
		a.aid = d.id
	where 1 = 1
	<if test="aid != null and aid != ''">
		and a.aid = #{aid,jdbcType=VARCHAR}
	</if>
	<if test="uid != null and uid !=''">
		and a.uid = #{uid,jdbcType=VARCHAR}
	</if>
	<if test="businessProjectId !=null and businessProjectId != ''">
		and a.business_project_id = #{businessProjectId,jdbcType=VARCHAR}
	</if>
	<if test="identifyName != null and identifyName != ''">
		and b.identify_name like concat('%', #{identifyName},'%')
	</if>
	<if test="followSituation != null">
		and a.follow_situation = #{followSituation,jdbcType=INTEGER}
	</if>
	<if test="customerStatus != null">
		and a.customer_status = #{customerStatus,jdbcType=INTEGER}
	</if>
	<if test="adminName != null and adminName != ''">
		and d.name = #{adminName,jdbcType=VARCHAR}
	</if>
	<if test="startDate != null and startDate != ''">
		and a.create_time &gt; STR_TO_DATE(#{startDate},'%Y-%m-%d %H:%i:%s')
	</if>
	<if test="endDate != null and endDate != ''">
		and a.create_time &lt; STR_TO_DATE(#{endDate},'%Y-%m-%d %H:%i:%s')
	</if>		
  </select>
  
  <select id="selectBusinessManageList" resultType="com.goafanti.customer.bo.BusinessListBo">
	  select
		c.name as businessName,
		b.identify_name as identifyName,
		a.id as businessId,
		a.create_time as createTime,
		a.update_time as updateTime,
		a.follow_situation as followSituation,
		a.customer_status as customerStatus,
		d.name as adminName
	from
		user_business a inner join user b on
		a.uid = b.id left join business_glossory c on
		a.business_project_id = c.id left join admin d on
		a.aid = d.id
		left join department dm on dm.id = d.department_id 	
	where 1 = 1
	<if test="aid != null and aid != ''">
		and (b.aid = #{aid,jdbcType=VARCHAR} or d.department_id=(select department_id from admin where id=#{aid,jdbcType=VARCHAR}))
	</if>
	<if test="uid != null and uid !=''">
		and a.uid = #{uid,jdbcType=VARCHAR}
	</if>
	<if test="businessProjectId !=null and businessProjectId != ''">
		and a.business_project_id = #{businessProjectId,jdbcType=VARCHAR}
	</if>
	<if test="identifyName != null and identifyName != ''">
		and b.identify_name like concat('%', #{identifyName},'%')
	</if>
	<if test="followSituation != null">
		and a.follow_situation = #{followSituation,jdbcType=INTEGER}
	</if>
	<if test="customerStatus != null">
		and a.customer_status = #{customerStatus,jdbcType=INTEGER}
	</if>
	<if test="adminName != null and adminName != ''">
		and d.name = #{adminName,jdbcType=VARCHAR}
	</if>
	<if test="startDate != null and startDate != ''">
		and a.create_time &gt; STR_TO_DATE(#{startDate},'%Y-%m-%d %H:%i:%s')
	</if>
	<if test="endDate != null and endDate != ''">
		and a.create_time &lt; STR_TO_DATE(#{endDate},'%Y-%m-%d %H:%i:%s')
	</if>
		order by a.create_time desc
	<if test="page_sql != null">
    	${page_sql}
    </if>
  </select>
  
  <select id="selectBusinessManageCount" parameterType="com.goafanti.customer.bo.BusinessListBo" resultType="java.lang.Integer">
  	select
  		count(0)
  	from
		user_business a inner join user b on
		a.uid = b.id left join business_glossory c on
		a.business_project_id = c.id left join admin d on
		a.aid = d.id
		left join department dm on dm.id = d.department_id 	
	where 1 = 1
	<if test="aid != null and aid != ''">
		and (b.aid = #{aid,jdbcType=VARCHAR} or d.department_id=(select department_id from admin where id=#{aid,jdbcType=VARCHAR}))
	</if>
	<if test="uid != null and uid !=''">
		and a.uid = #{uid,jdbcType=VARCHAR}
	</if>
	<if test="businessProjectId !=null and businessProjectId != ''">
		and a.business_project_id = #{businessProjectId,jdbcType=VARCHAR}
	</if>
	<if test="identifyName != null and identifyName != ''">
		and b.identify_name like concat('%', #{identifyName},'%')
	</if>
	<if test="followSituation != null">
		and a.follow_situation = #{followSituation,jdbcType=INTEGER}
	</if>
	<if test="customerStatus != null">
		and a.customer_status = #{customerStatus,jdbcType=INTEGER}
	</if>
	<if test="adminName != null and adminName != ''">
		and d.name = #{adminName,jdbcType=VARCHAR}
	</if>
	<if test="startDate != null and startDate != ''">
		and a.create_time &gt; STR_TO_DATE(#{startDate},'%Y-%m-%d %H:%i:%s')
	</if>
	<if test="endDate != null and endDate != ''">
		and a.create_time &lt; STR_TO_DATE(#{endDate},'%Y-%m-%d %H:%i:%s')
	</if>		
  </select>
  
  <select id="selectManagePersonalCustomerList" resultType="com.goafanti.customer.bo.CustomerListOut">
		select
			a.id as uid,
			a.type,
			a.status, 
			date_format(a.create_time,'%Y-%m-%d %H:%i:%s') as createTime,
			a.business_audit as businessAudit,
			a.current_member_status as currentMemberStatus,
			a.identify_name as name,
			a.lvl,a.is_member as isMember,
			a.society_tag as societyTag,
			a.share_type as shareType,
			b.contacts,
			b.contact_mobile as contactMobile,
			b.international,
			b.expert,
			b.audit_status as auditStatus,
			dg1.name as province,
			dg2.name as city, 
			dg3.name as area,
			c.name as industry,
			d.name as adminName,
			b.release_status as releaseStatus
		from user a inner join user_identity b on a.id = b.uid
		left join district_glossory dg1 on b.province = dg1.id
		left join district_glossory dg2 on b.city = dg2.id
		left join district_glossory dg3 on b.area = dg3.id
		left join industry_category c on b.industry = c.id
		left join admin d on a.aid = d.id
		LEFT JOIN department dm on dm.id = d.department_id 		
		where a.type = 0  and a.status != 1 and a.audit_status = 1
		and a.share_type =0
		<if test="aid != null and aid !=''">
			and (a.aid = #{aid,jdbcType=VARCHAR} or d.department_id=(select department_id from admin where id=#{aid,jdbcType=VARCHAR}))
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>
		<if test="shareType != null">
			and a.share_type = #{shareType,jdbcType=INTEGER}
		</if>
		<if test="status != null">
			and a.status = #{status,jdbcType=INTEGER}
		</if>
		<if test="businessAudit != null">
			and a.business_audit = #{businessAudit,jdbcType=INTEGER}
		</if>
		<if test="isMember != null">
			and a.is_member = #{isMember,jdbcType=INTEGER}
		</if>
		<if test="lvl != null">
			and a.lvl = #{lvl,jdbcType=INTEGER}
		</if> 
		<if test="currentMemberStatus != null">
			and a.current_member_status = #{currentMemberStatus,jdbcType=INTEGER}
		</if>
		<if test="societyTag != null and societyTag != ''">
			and a.society_tag = #{societyTag,jdbcType=VARCHAR}
		</if>
		<if test="startDate != null and startDate != ''">
			and a.create_time &gt; STR_TO_DATE(#{startDate},'%Y-%m-%d %H:%i:%s')
		</if>
		<if test="endDate != null and endDate != ''">
			and a.create_time &lt; STR_TO_DATE(#{endDate},'%Y-%m-%d %H:%i:%s')
		</if>
		<if test="province != null">
			and b.province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.area = #{area,jdbcType=INTEGER}
		</if>
		<if test="industry != null">
			and b.industry = #{industry,jdbcType=INTEGER}
		</if>
		<if test="expert != null">
			and b.expert = #{expert,jdbcType=INTEGER}
		</if>
		<if test="international != null">
			and b.international = #{international,jdbcType=INTEGER}
		</if>
		<if test="auditStatus != null">
			and b.audit_status = #{auditStatus,jdbcType=INTEGER}
		</if>
		 <if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	<select id="selectManagePersonalCustomerCount" resultType="java.lang.Integer">
		select count(0)
			from user a inner join user_identity b on a.id = b.uid
			left join admin d on a.aid = d.id
			LEFT JOIN department dm on dm.id = d.department_id 	
		where a.type = 0  and a.status != 1 and a.audit_status = 1
		<if test="aid != null and aid !=''">
			and (a.aid = #{aid,jdbcType=VARCHAR} or d.department_id=(select department_id from admin where id=#{aid,jdbcType=VARCHAR}))
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>
		<if test="shareType != null">
			and a.share_type = #{shareType,jdbcType=VARCHAR}
		</if>
		<if test="status != null">
			and a.status = #{status,jdbcType=INTEGER}
		</if>
		<if test="businessAudit != null">
			and a.business_audit = #{businessAudit,jdbcType=INTEGER}
		</if>
		<if test="isMember != null">
			and a.is_member = #{isMember,jdbcType=INTEGER}
		</if>
		<if test="lvl != null">
			and a.lvl = #{lvl,jdbcType=INTEGER}
		</if> 
		<if test="currentMemberStatus != null">
			and a.current_member_status = #{currentMemberStatus,jdbcType=INTEGER}
		</if>
		<if test="societyTag != null and societyTag != ''">
			and a.society_tag = #{societyTag,jdbcType=VARCHAR}
		</if>
		<if test="startDate != null and startDate != ''">
			and a.create_time &gt; STR_TO_DATE(#{startDate},'%Y-%m-%d %H:%i:%s')
		</if>
		<if test="endDate != null and endDate != ''">
			and a.create_time &lt; STR_TO_DATE(#{endDate},'%Y-%m-%d %H:%i:%s')
		</if>
		<if test="province != null">
			and b.province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.area = #{area,jdbcType=INTEGER}
		</if>
		<if test="industry != null">
			and b.industry = #{industry,jdbcType=INTEGER}
		</if>
		<if test="expert != null">
			and b.expert = #{expert,jdbcType=INTEGER}
		</if>
		<if test="international != null">
			and b.international = #{international,jdbcType=INTEGER}
		</if>
		<if test="auditStatus != null">
			and b.audit_status = #{auditStatus,jdbcType=INTEGER}
		</if>
	</select>
	
	<select id="selectManageOrganizationCustomerList" resultType="com.goafanti.customer.bo.CustomerListOut">
		select
			a.id as uid,
			a.type,
			a.status, 
			date_format(a.create_time,'%Y-%m-%d %H:%i:%s') as createTime,
			a.identify_name as name,
			a.society_tag as societyTag,
			share_type as shareType,
			b.contacts,
			b.contact_mobile as contactMobile,
			dg1.name as province,
			dg2.name as city, 
			dg3.name as area,
			c.name as industry,
			d.name as adminName		
		from user a inner join organization_identity b on a.id = b.uid
		left join district_glossory dg1 on b.location_province = dg1.id
		left join district_glossory dg2 on b.location_city = dg2.id
		left join district_glossory dg3 on b.location_area = dg3.id
		left join industry_category c on b.industry = c.id
		left join admin d on a.aid = d.id
		LEFT JOIN department dm on dm.id = d.department_id 	 	
		where a.type = 1 and a.status != 1 and a.audit_status = 1 
		<if test="aid != null and aid !=''">
			and (a.aid = #{aid,jdbcType=VARCHAR} or d.department_id=(select department_id from admin where id=#{aid,jdbcType=VARCHAR}))
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>
		<if test="shareType != null">
			and a.share_type = #{shareType,jdbcType=VARCHAR}
		</if>
		<if test="status != null">
			and a.status = #{status,jdbcType=INTEGER}
		</if>
		<if test="societyTag != null and societyTag != ''">
			and a.society_tag = #{societyTag,jdbcType=VARCHAR}
		</if>
		<if test="startDate != null and startDate != ''">
			and a.create_time &gt; STR_TO_DATE(#{startDate},'%Y-%m-%d %H:%i:%s')
		</if>
		<if test="endDate != null and endDate != ''">
			and a.create_time &lt; STR_TO_DATE(#{endDate},'%Y-%m-%d %H:%i:%s')
		</if>
		<if test="province != null">
			and b.location_province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.location_city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.location_area = #{area,jdbcType=INTEGER}
		</if>
		 <if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	
	<select id="selectManageOrganizationCustomerCount" resultType="java.lang.Integer">
		select 
			count(0)	
		from user a inner join organization_identity b on a.id = b.uid
		left join admin d on a.aid = d.id
		LEFT JOIN department dm on dm.id = d.department_id 
		where a.type = 1 and a.status != 1 and a.audit_status = 1 
		<if test="aid != null and aid !=''">
			and (a.aid = #{aid,jdbcType=VARCHAR} or d.department_id=(select department_id from admin where id=#{aid,jdbcType=VARCHAR}))
		</if>
		<if test="name != null and name != ''">
			and a.identify_name like concat('%',#{name},'%')
		</if>
		<if test="shareType != null">
			and a.share_type = #{shareType,jdbcType=VARCHAR}
		</if>
		<if test="status != null">
			and a.status = #{status,jdbcType=INTEGER}
		</if>
		<if test="societyTag != null and societyTag != ''">
			and a.society_tag = #{societyTag,jdbcType=VARCHAR}
		</if>
		<if test="startDate != null and startDate != ''">
			and a.create_time &gt; STR_TO_DATE(#{startDate},'%Y-%m-%d %H:%i:%s')
		</if>
		<if test="endDate != null and endDate != ''">
			and a.create_time &lt; STR_TO_DATE(#{endDate},'%Y-%m-%d %H:%i:%s')
		</if>
		<if test="province != null">
			and b.location_province = #{province,jdbcType=INTEGER}
		</if>
		<if test="city != null">
			and b.location_city = #{city,jdbcType=INTEGER}
		</if>
		<if test="area != null">
			and b.location_area = #{area,jdbcType=INTEGER}
		</if>		
	</select>
	
	<select id="findAdminName" resultType="com.goafanti.customer.bo.CustomerListOut">
		select d.name as adminName,d.id as aid
		from admin d left join department dm on dm.id = d.department_id
		where d.department_id=(select department_id from admin where id=#{aid,jdbcType=INTEGER})
	</select>
	
	<select id="findEnteringAuditList" resultType="com.goafanti.customer.bo.CustomerListOut">
		select u.id as uid,u.nickname as name,u.mobile as contactMobile,a.name as adminName,u.create_time as createTime,u.audit_status as auditStatus
		from user u left join admin a on u.aid=a.id
		where u.audit_status=0 and u.status != 1 and u.share_type=0
		<if test="aid != null and aid !=''">
			and u.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="name != null and name != ''">
			and u.nickname = #{name,jdbcType=VARCHAR}
		</if>
		<if test="adminName != null and adminName != ''">
			and a.name = #{adminName,jdbcType=VARCHAR}
		</if>
		<if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	
	<select id="findEnteringAuditCount" resultType="java.lang.Integer">
		select 
			count(0)	
		from user u left join admin a on u.aid=a.id
		where u.audit_status=0 and u.status != 1 and u.share_type=0
		<if test="aid != null and aid !=''">
			and u.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="name != null and name != ''">
			and u.nickname = #{name,jdbcType=VARCHAR}
		</if>
		<if test="adminName != null and adminName != ''">
			and a.name = #{adminName,jdbcType=VARCHAR}
		</if>
	</select>
	
	<select id="findEnteringAuditIsNoList" resultType="com.goafanti.customer.bo.CustomerListOut">
		select u.id as uid,u.nickname as name,u.mobile as contactMobile,a.name as adminName,u.create_time as createTime,
		u.audit_status as auditStatus,u.audit_opinion as auditOpinion,u.society_tag as societyTag 
		from user u left join admin a on u.aid=a.id
		where u.audit_status=2 and u.status != 1
		<if test="aid != null and aid !=''">
			and u.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="name != null and name != ''">
			and u.nickname = #{name,jdbcType=VARCHAR}
		</if>
		<if test="adminName != null and adminName != ''">
			and a.name = #{adminName,jdbcType=VARCHAR}
		</if>
		<if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	
	<select id="findEnteringAuditIsNoCount" resultType="java.lang.Integer">
		select 
			count(0)	
		from user u left join admin a on u.aid=a.id
		where u.audit_status=2 and u.status != 1
		<if test="aid != null and aid !=''">
			and u.aid = #{aid,jdbcType=VARCHAR}
		</if>
		<if test="name != null and name != ''">
			and u.nickname = #{name,jdbcType=VARCHAR}
		</if>
		<if test="adminName != null and adminName != ''">
			and a.name = #{adminName,jdbcType=VARCHAR}
		</if>
	</select>
	
	<update id="updateRefusedCustomer" parameterType="map">
	update user
		set
      	nickname = #{nickname,jdbcType=VARCHAR},
      	mobile = #{mobile,jdbcType=VARCHAR},
      	society_tag = #{societyTag,jdbcType=VARCHAR},
      	audit_status=1
    	where id = #{id,jdbcType=VARCHAR}
    </update>
    
    <select id="selectLockedProject" resultType="com.goafanti.customer.bo.LockingReleaseBo">
		select
			a.id,
			a.uid,
			a.aid,
			date_format( a.lock_time, '%Y-%m-%d %H:%i:%S' ) as lockTime,
			a.business_project_id as businessProjectId,
			b.bname as businessProjectName,
			d.name as salesmanName
		from
			user_lock_release a left join business_project b on
			a.business_project_id = b.id left join business_category c on
			b.cid = c.id left join admin d on
			a.aid = d.id
		where 1 = 1
		<if test="uid != null and uid != ''">
			and a.uid = #{uid}
		</if>
		<if test="aid != null and aid != ''">
			and a.aid = #{aid}
		</if>
		<if test="businessProjectId != null and businessProjectId != ''">
			and a.business_project_id = #{businessProjectId}
		</if>
		<if test="type != null">
			and a.type = #{type}
		</if>
		<if test="status != null">
			and a.status = #{status}
		</if>
    </select>
    
    <select id="selectPrivateCustomerByName" parameterType="java.lang.String" resultType="com.goafanti.customer.bo.CustomerSimpleBo">
		select b.id,b.identify_name as name from 
			(select uid from user_lock_release  where type = 0  and status = 0 and aid = #{aid} group by uid) a
		inner join user b on a.uid = b.id
			where b.status != 1 and b.identify_name like concat('%',#{name},'%')
    </select>
    
    <select id="selectSignedCustomerByName" parameterType="java.lang.String" resultType="com.goafanti.customer.bo.CustomerSimpleBo">
   	 	select b.id,b.identify_name as name from user b  
	where b.status != 1 and b.share_type =2 
	and b.aid = #{aid}  and b.identify_name like concat('%',#{name},'%')
    </select>
    
    <update id="updateReleaseLock" parameterType="java.lang.String">
    	update user a,user_lock_release b set a.share_type = 1,a.transfer_time =  #{time} where b.status=1 and b.`type`=0 and a.id=b.uid 
    </update>
    
    <select id="marketingStatistics" parameterType="java.lang.String" resultType="com.goafanti.report.bo.marketingESBo">
   	 		select
			aid,
			count(0) as yearFollowNo,
			ifnull(sum(case when contact_type = 0 then 1 else 0 end) ,0)as yearVisitNo, 
			ifnull(sum(case when contact_type = 1 then 1 else 0 end) ,0)as yearTelNo
			from user_follow where 1=1
			and aid = #{id,jdbcType=VARCHAR}
			and create_time &gt; #{dailyStart,jdbcType=VARCHAR}
			and create_time &lt; #{dailyEnd,jdbcType=VARCHAR}
			GROUP BY aid
	</select>
	<select id="marketingDepStatistics" parameterType="java.lang.String" resultType="com.goafanti.report.bo.marketingESBo">
	   	 select
		b.department_id,
		count( 0 ) as yearFollowNo,
		ifnull(
			sum( case when a.contact_type = 0 then 1 else 0 end ),
			0
		) as yearVisitNo,
		ifnull(
			sum( case when a.contact_type = 1 then 1 else 0 end ),
			0
			) as yearTelNo
	from user_follow a left join admin b on a.aid =b.id
	where
		1 = 1
		<if test="depId !=null">
		and b.department_id = #{depId,jdbcType=VARCHAR}
		</if>
		and a.create_time &gt; #{dailyStart,jdbcType=VARCHAR}
		and a.create_time &lt; #{dailyEnd,jdbcType=VARCHAR}
		GROUP BY b.department_id
	</select>
	
	<select id="countmarketingDepStatistics" parameterType="java.lang.String" resultType="com.goafanti.report.bo.CountMarketingStatisticsBo">
	   	 					select
		count( 0 ) as yearFollowNo,
		ifnull(
			sum( case when a.contact_type = 0 then 1 else 0 end ),
			0
		) as yearVisitNo,
		ifnull(
			sum( case when a.contact_type = 1 then 1 else 0 end ),
			0
		) as yearTelNo
	from user_follow a left join admin b on a.aid =b.id
	where
		1 = 1
		<if test="depId !=null">
		and b.department_id = #{depId,jdbcType=VARCHAR}
		</if>
		and a.create_time &gt; #{dailyStart,jdbcType=VARCHAR}
		and a.create_time &lt; #{dailyEnd,jdbcType=VARCHAR}
	</select>
	
	<select id="selectCustomerInformationList" resultType="com.goafanti.customer.bo.CustomerListIn">
		select a.id,a.nickname as name,c.name as province,c1.name as city,c2.name as area,b.contacts,b.contact_mobile as contactMobile,
			date_format(a.create_time,'%Y-%m-%d %H:%i:%S')  as createTime,d.name as industry,a.credit_rating as creditRating,a.integrity as dataGrade
			from user a left join organization_identity b 
			on a.id=b.uid left join district_glossory c 
			on b.location_province=c.id left join district_glossory c1 
			on b.location_city=c1.id left join district_glossory c2 
			on b.location_area=c2.id left join industry_category d on b.industry = d.id
			<if test="follow !=null and follow!=''">
			left join (select aid,uid,contact_type from user_follow where aid= #{aid,jdbcType=VARCHAR} and contact_type=0 GROUP by uid) e on a.id=e.uid and a.aid=e.aid
			</if>
			where  a.status=0 
			and a.information_maintainer = #{aid,jdbcType=VARCHAR}
			<if test="type !=null and type!=''">
			and a.`type`=#{type,jdbcType=VARCHAR}
			</if>
			<if test="follow ==0">
			and (e.contact_type !=0 or e.contact_type is null)
			</if>
			<if test="follow ==1">
			and e.contact_type=0
			</if>
			<if test="name!=null and name!=''">
			and a.nickname like concat('%',#{name,jdbcType=VARCHAR},'%')
			</if>
			<if test="province!=null and province!=''">
			and b.location_province= #{province,jdbcType=VARCHAR}
			</if>
			<if test="city!=null and city!=''">
			and b.location_city=#{city,jdbcType=VARCHAR}
			</if>
			<if test="area !=null and area !=''">
			and b.location_area= #{area,jdbcType=VARCHAR}
			</if>
			<if test="startDate != null and startDate != ''">
			and a.create_time &gt; #{startDate}
			</if>
			<if test="endDate != null and endDate != ''">
			and a.create_time &lt; #{endDate}
			</if>
			<if test="dataGrade ==0">
			and a.integrity !=1 
			</if>
			<if test="dataGrade ==1">
			and a.integrity =1
			</if>
		 order by a.create_time desc,a.nickname desc
		 <if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	<select id="selectCustomerInformationCount" resultType="java.lang.Integer">
		select count(0)
			from user a left join organization_identity b 
			on a.id=b.uid 
			<if test="follow  !=null and follow!=''">
			left join (select aid,uid,contact_type from user_follow where aid= #{aid,jdbcType=VARCHAR} and contact_type=0 GROUP by uid) e on a.id=e.uid and a.aid=e.aid
			</if>
			where  a.status=0 and a.information_maintainer = #{aid,jdbcType=VARCHAR}
			<if test="type !=null and type!=''">
			and a.`type`=#{type,jdbcType=VARCHAR}
			</if>
			<if test="follow ==0">
			and (e.contact_type !=0 or e.contact_type is null)
			</if>
			<if test="follow ==1">
			and e.contact_type=0
			</if>
			<if test="name!=null and name!=''">
			and a.nickname like concat('%',#{name,jdbcType=VARCHAR},'%')
			</if>
			<if test="province!=null and province!=''">
			and b.location_province= #{province,jdbcType=VARCHAR}
			</if>
			<if test="city!=null and city!=''">
			and b.location_city=#{city,jdbcType=VARCHAR}
			</if>
			<if test="area !=null and area !=''">
			and b.location_area= #{area,jdbcType=VARCHAR}
			</if>
			<if test="startDate != null and startDate != ''">
			and a.create_time &gt; #{startDate}
			</if>
			<if test="endDate != null and endDate != ''">
			and a.create_time &lt; #{endDate}
			</if>
			<if test="dataGrade ==0">
			and a.integrity !=1 
			</if>
			<if test="dataGrade ==1">
			and a.integrity =1
			</if>
	</select>
	
	
		<select id="selectDepCustomerInformationList" resultType="com.goafanti.customer.bo.CustomerListIn">
		select x.id,
x.name,
x.province,
x.city,
x.area ,
x.contacts,
x.contact_mobile as contactMobile,
date_format( x.create_time, '%Y-%m-%d %H:%i:%S' ) as createTime,
x.industry as industry,
y.name as iname,
x.integrity as dataGrade,
x.credit_rating as creditRating
from(
select
	a.id,
	a.nickname as name,
	c.name as province,
	c1.name as city,
	c2.name as area,
	b.contacts,
	b.contact_mobile,
	a.create_time,
	d.name as industry,
	a.credit_rating ,
	a.information_maintainer,
	a.integrity
from
	user a left join organization_identity b on
	a.id = b.uid left join district_glossory c 
	on b.location_province=c.id left join district_glossory c1 
	on b.location_city=c1.id left join district_glossory c2 
	on b.location_area=c2.id left join industry_category d 
	on b.industry = d.id 
	where a.status=0
		<if test="type !=null and type!=''">
			and a.`type`=#{type,jdbcType=VARCHAR}
			</if>
			<if test="name!=null and name!=''">
			and a.nickname like concat('%',#{name,jdbcType=VARCHAR},'%')
			</if>
			<if test="province!=null and province!=''">
			and b.location_province= #{province,jdbcType=VARCHAR}
			</if>
			<if test="city!=null and city!=''">
			and b.location_city=#{city,jdbcType=VARCHAR}
			</if>
			<if test="area !=null and area !=''">
			and b.location_area= #{area,jdbcType=VARCHAR}
			</if>
			<if test="startDate != null and startDate != ''">
			and a.create_time &gt; #{startDate}
			</if>
			<if test="endDate != null and endDate != ''">
			and a.create_time &lt; #{endDate}
			</if>
			<if test="dataGrade ==0">
			and a.integrity !=1 
			</if>
			<if test="dataGrade ==1">
			and a.integrity =1
			</if>
		 order by a.create_time,a.nickname desc
)x
inner join(
	select id ,name from admin a
	inner join (select department_id as depId from admin where id= #{aid,jdbcType=VARCHAR})b on a.department_id=b.depId
	) y on y.id = x.information_maintainer
		 <if test="page_sql != null">
    		${page_sql}
   		 </if>
	</select>
	<select id="selectDepCustomerInformationCount" resultType="java.lang.Integer">
		select count(0)
			from user a left join organization_identity b 
			on a.id=b.uid inner join (select id from admin a
	inner join (select department_id as depId from admin where id= #{aid,jdbcType=VARCHAR} )b on a.department_id=b.depId) y
			on y.id=a.information_maintainer
			where 1=1 and a.status=0
			<if test="type !=null and type!=''">
			and a.`type`=#{type,jdbcType=VARCHAR}
			</if>
			<if test="name!=null and name!=''">
			and a.nickname like concat('%',#{name,jdbcType=VARCHAR},'%')
			</if>
			<if test="province!=null and province!=''">
			and b.location_province= #{province,jdbcType=VARCHAR}
			</if>
			<if test="city!=null and city!=''">
			and b.location_city=#{city,jdbcType=VARCHAR}
			</if>
			<if test="area !=null and area !=''">
			and b.location_area= #{area,jdbcType=VARCHAR}
			</if>
			<if test="startDate != null and startDate != ''">
			and a.create_time &gt; #{startDate}
			</if>
			<if test="endDate != null and endDate != ''">
			and a.create_time &lt; #{endDate}
			</if>
			<if test="dataGrade ==0">
			and a.integrity !=1 
			</if>
			<if test="dataGrade ==1">
			and a.integrity =1
			</if>
	</select>
	<select id="checkCustomerInformation" resultType="java.lang.Integer">
	select count(a.id)
			from user a left join organization_identity b 
			on a.id=b.uid 
			where b.industry is not null 
			and b.business_scope is not null
			and b.registered_capital is not null and b.registered_capital !=0 
			and b.location_province is not null and b.location_province !=0 
			and b.cooperation_situation is not null and b.cooperation_situation !='' 
			and b.qualification is not null and b.qualification !='' 
			and b.assets is not null and b.assets !=''
			and b.last_year_research_amount is not null and b.last_year_research_amount !=''
			and b.year_sales_amount is not null and b.year_sales_amount !=''
			and a.core_technology is not null and a.core_technology !=''
			and a.accomplish_situation is not null and a.accomplish_situation  !=''
			and a.credit_rating is not null and a.credit_rating !=''    
			and a.id=#{uid,jdbcType=VARCHAR}
	</select>
	<select id="userDataStatistics" resultType="com.goafanti.report.bo.userDataListBo">
	select a.name ,c.name as  depName,ifnull(d.count,0) as signUser,ifnull(e.count,0) as fullUser,
	ifnull(f.count,0) as dayFullUser,ifnull(g.count,0) as dayNewUser,ifnull(h.count,0) as countUser,
	ifnull(i.count,0) as signFullUser
	from admin a inner join (select uid from user_role x 
	inner join(select id from `role`  where role_name in ('营销员','营销经理','营销管理员')) y
	on x.rid=y.id)b on a.id =b.uid left join department c  on a.department_id=c.id
	left join (select x.aid,count(1)as count from (select aid,uid from user_lock_release 
		where type=1 and status=0 group by aid,uid)x group by aid)d on a.id=d.aid
	left join (select aid,count(1) as count from user where integrity=1 and type=1 and status=0 and share_type=0 group by aid) e on a.id=e.aid
	left join (select aid,count(1) as count 
		from user where integrity=1 and type=1 and status=0 and share_type=0 and to_days(update_time)=to_days(now()) group by aid) f on a.id=f.aid
	left join (select aid,count(1) as count 
		from user where type=1 and status=0 and share_type=0 and to_days(create_time)=to_days(now()) group by aid) g on a.id=g.aid
	left join (select aid,count(1) as count 
		from user where type=1 and status=0 and share_type=0  group by aid) h on a.id=h.aid
	left join (select x.aid,count(1)as count from (select x1.aid,x1.uid from user_lock_release x1
				left join user y on x1.uid=y.id where x1.type=1 
				and x1.status=0 and y.integrity=1 group by aid,uid)x group by aid) i on a.id=i.aid
	where a.status='正常'
	<if test="depId!=null and depId!=''">
	and a.department_id=	#{depId,jdbcType=VARCHAR}
	</if>
	</select>
	<select id="userDataStatisticsCount" resultType="com.goafanti.report.bo.userDataListBo">
	select sum(z.signUser) as signUser,sum(z.fullUser) as fullUser,sum(z.dayFullUser) as dayFullUser,
		sum(z.dayNewUser) as dayNewUser,sum(z.countUser) as countUser,sum(z.signFullUser) as signFullUser  from (select a.name ,c.name as  depName,ifnull(d.count,0) as signUser,ifnull(e.count,0) as fullUser,
	ifnull(f.count,0) as dayFullUser,ifnull(g.count,0) as dayNewUser,ifnull(h.count,0) as countUser,
	ifnull(i.count,0) as signFullUser
	from admin a inner join (select uid from user_role x 
	inner join(select id from `role`  where role_name in ('营销员','营销经理','营销管理员')) y
	on x.rid=y.id)b on a.id =b.uid left join department c  on a.department_id=c.id
	left join (select x.aid,count(1)as count from (select aid,uid from user_lock_release 
		where type=1 and status=0 group by aid,uid)x group by aid)d on a.id=d.aid
	left join (select aid,count(1) as count from user where integrity=1 and type=1 and status=0 and share_type=0 group by aid) e on a.id=e.aid
	left join (select aid,count(1) as count 
		from user where integrity=1 and type=1 and status=0 and share_type=0 and to_days(update_time)=to_days(now()) group by aid) f on a.id=f.aid
	left join (select aid,count(1) as count 
		from user where type=1 and status=0 and share_type=0 and to_days(create_time)=to_days(now()) group by aid) g on a.id=g.aid
	left join (select aid,count(1) as count 
		from user where type=1 and status=0 and share_type=0  group by aid) h on a.id=h.aid
	left join (select x.aid,count(1)as count from (select x1.aid,x1.uid from user_lock_release x1
				left join user y on x1.uid=y.id where x1.type=1 
				and x1.status=0 and y.integrity=1 group by aid,uid)x group by aid) i on a.id=i.aid
	where a.status='正常'
	<if test="depId!=null and depId!=''">
	and a.department_id=	#{depId,jdbcType=VARCHAR}
	</if>				
	)z
	</select>
	<select id="UserReceiveCount" parameterType="string" resultType="integer">
		select count(*) from `user`
		where aid= #{aid,jdbcType=VARCHAR}
		and source=2
		and share_type=0
		and to_days(transfer_time)=to_days(now())
	</select>
	
	
	<select id="privateUnitCustomerList" parameterType="Map" resultType="com.goafanti.customer.bo.CustomerListOut">
		select 	t0.id as uid,
			   	t0.aid,
			  	date_format(t0.transfer_time,'%Y-%m-%d %H:%i:%S') as transferTime,
			  	date_format(t0.create_time,'%Y-%m-%d %H:%i:%S') as createTime,
			   	t0.identify_name as name,
			   	t0.society_tag as societyTag,
			   	t0.level,
			   	date_format(t1.last_follow_time,'%Y-%m-%d %H:%i:%S') as lastFollowTime,
			   	date_format(t2.last_sign_time,'%Y-%m-%d %H:%i:%S') as lastSignTime,
				b.contacts,
				b.contact_mobile as contactMobile,
				dg1.name as province,
				dg2.name as city, 
				dg3.name as area,
				c.name as industry,
				if(t0.transfer_time &lt; t1.last_follow_time,t1.last_follow_time,t0.transfer_time) as orderTime,
				d.name as adminName
		from 
			(select id,aid,type,share_type,transfer_time,create_time,identify_name,society_tag,level from user where aid = #{params.aid} and type = 1 and share_type = 0 and status != 1)t0
		left join 
			(select uid,aid,max(create_time) as last_follow_time from user_follow where aid = #{params.aid} group by uid)t1
		on t0.id = t1.uid left join 
			(select aid,uid,max(lock_time) as last_sign_time from user_lock_release  where aid = #{params.aid} group by uid)t2
		on t0.id = t2.uid
		left join organization_identity b on t0.id = b.uid 
		left join district_glossory dg1 on b.location_province = dg1.id
		left join district_glossory dg2 on b.location_city = dg2.id
		left join district_glossory dg3 on b.location_area = dg3.id
		left join industry_category c on b.industry = c.id
		left join admin d on t0.aid = d.id where 1=1
		<if test="params != null">
			<if test="params.aid != null and params.aid !=''">
				and t0.aid = #{params.aid,jdbcType=VARCHAR}
			</if>
			<if test="params.name != null and params.name != ''">
				and t0.identify_name like concat('%',#{params.name},'%')
			</if>
			<if test="params.startDate != null and params.startDate != ''">
				and t0.transfer_time &gt; #{params.startDate}
			</if>
			<if test="params.endDate != null and params.endDate != ''">
				and t0.transfer_time &lt; #{params.endDate}
			</if>
			<if test="params.province != null">
				and b.location_province = #{params.province,jdbcType=INTEGER}
			</if>
			<if test="params.city != null">
				and b.location_city = #{params.city,jdbcType=INTEGER}
			</if>
			<if test="params.area != null">
				and b.location_area = #{params.area,jdbcType=INTEGER}
			</if>
			<if test="params.level != null">
				and t0.level = #{params.level,jdbcType=INTEGER}
			</if>
			
		 </if>
			   order by orderTime 
			
			<if test="params!=null and params.sort == 1"> 
			 order by t0.create_time 
			 </if>
			 <if test="params != null and params.sortType == 1">
			 		desc
			 </if>
	</select>
	
	<select id="checkUserMax" parameterType="string" resultType="integer">
		select count(*) from `user`
		where aid= #{aid,jdbcType=VARCHAR}
		and source in(1,2,3) and share_type=0
	</select>
	
	<select id="checkLock" parameterType="string" resultType="integer">
		select count(*) from `user`
		where  id= #{uid,jdbcType=VARCHAR}
		and share_type=2
	</select>
	<update id="updateShareType">
	update user set share_type =2,sign_bills =1,aid = #{aid}
	where id= #{uid}
	</update>
</mapper>
