<?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.xzx.gc.user.mapper.UserTargetInfoMapper">  
 | 
  <resultMap id="BaseResultMap" type="com.xzx.gc.entity.UserTargetInfo">  
 | 
    <id column="id" jdbcType="BIGINT" property="id" />  
 | 
    <result column="nick_name" jdbcType="VARCHAR" property="nickName" />  
 | 
    <result column="user_name" jdbcType="VARCHAR" property="userName" />  
 | 
    <result column="regster_type" jdbcType="INTEGER" property="regsterType" />  
 | 
    <result column="mobile" jdbcType="VARCHAR" property="mobile" />  
 | 
    <result column="address_remark" jdbcType="VARCHAR" property="addressRemark" />  
 | 
    <result column="disc" jdbcType="VARCHAR" property="disc" />  
 | 
    <result column="user_id" jdbcType="VARCHAR" property="userId" />  
 | 
    <result column="real_user_id" jdbcType="VARCHAR" property="realUserId" />  
 | 
    <result column="create_time" jdbcType="VARCHAR" property="createTime" />  
 | 
    <result column="del_flag" jdbcType="INTEGER" property="delFlag" />  
 | 
    <result column="user_image" jdbcType="VARCHAR" property="userImage" />  
 | 
    <result column="province_id" jdbcType="VARCHAR" property="provinceId" />  
 | 
    <result column="city_id" jdbcType="VARCHAR" property="cityId" />  
 | 
    <result column="township_id" jdbcType="VARCHAR" property="townshipId" />  
 | 
    <result column="address_area" jdbcType="VARCHAR" property="addressArea" />  
 | 
    <result column="detail_address" jdbcType="VARCHAR" property="detailAddress" />  
 | 
    <result column="lay_floor" jdbcType="VARCHAR" property="layFloor" />  
 | 
    <result column="longitude" jdbcType="VARCHAR" property="longitude" />  
 | 
    <result column="latitude" jdbcType="VARCHAR" property="latitude" />  
 | 
    <result column="stair_type" jdbcType="VARCHAR" property="stairType" />  
 | 
    <result column="top_flag" jdbcType="SMALLINT" property="topFlag" />  
 | 
    <result column="top_flag_user" jdbcType="SMALLINT" property="topFlagUser" />  
 | 
  </resultMap>  
 | 
  <sql id="Base_Column_List">  
 | 
    id, nick_name, user_name, regster_type, mobile, address_remark, disc, user_id, create_time,  
 | 
    del_flag, user_image, province_id, city_id, township_id, address_area, detail_address,   
 | 
    lay_floor, longitude, latitude,stair_type,real_user_id  
 | 
  </sql>  
 | 
  <select id="find" resultMap="BaseResultMap" >  
 | 
      select DISTINCT t.id,t.user_image,t.user_name,t.mobile,t.create_time ,t.regster_type ,t.address_remark ,t.detail_address,t.longitude,t.latitude,t.nick_name,t.disc,t.real_user_id ,t.user_id   from  xzx_user_target_info t  
 | 
    left join  xzx_user_info u on t.mobile=u.mobile_phone and u.del_flag=0 and u.is_prohibit=0  
 | 
    where 1=1  
 | 
    <if test="userId != null and userId != ''">  
 | 
      and t.user_id=#{userId}  
 | 
    </if>  
 | 
  
 | 
    <if test="searchName != null and searchName != ''">  
 | 
        and (t.mobile like concat("%",#{searchName},"%") or t.detail_address  like concat("%",#{searchName},"%") or t.address_remark  like concat("%",#{searchName},"%"))  
 | 
    </if>  
 | 
    <if test="status!=null and status != ''">  
 | 
            and t.regster_type=#{status}  
 | 
    </if>  
 | 
    order by  t.create_time desc  
 | 
  </select>  
 | 
  
 | 
  <select id="findPage" resultMap="BaseResultMap" >  
 | 
    SELECT DISTINCT  
 | 
    t.id,  
 | 
    t.user_image,  
 | 
    t.user_name,  
 | 
    t.mobile,  
 | 
    t.create_time,  
 | 
    t.regster_type,  
 | 
    t.address_remark,  
 | 
    t.address_area,  
 | 
    t.detail_address,  
 | 
    t.longitude,  
 | 
    t.latitude,  
 | 
    t.nick_name,  
 | 
    t.disc,  
 | 
    t.real_user_id,  
 | 
    t.user_id,  
 | 
    t.top_flag,  
 | 
    t.top_flag_user,  
 | 
    ROUND(lat_lng_distance(#{latitude}, #{longitude}, t.latitude, t.longitude), 3) as distance  
 | 
    FROM  
 | 
    xzx_user_target_info t  
 | 
    inner join xzx_user_other_info b on (t.user_id=b.user_id or t.real_user_id=b.user_id)  
 | 
    WHERE t.del_flag=0 and b.partner_id=#{partnerId}  
 | 
  
 | 
    <if test="userId != null and userId != ''">  
 | 
      and (t.user_id=#{userId} or t.real_user_id=#{userId} )  
 | 
    </if>  
 | 
  
 | 
    <if test="searchName != null and searchName != ''">  
 | 
      and (t.mobile like concat("%",#{searchName},"%") or t.user_name  like concat("%",#{searchName},"%") or from_base64(t.nick_name)  like concat("%",#{searchName},"%"))  
 | 
    </if>  
 | 
  
 | 
    <choose>  
 | 
      <when test="orderType != null and orderType != ''">  
 | 
        <choose>  
 | 
          <when test="orderType==1">  
 | 
            order by   t.create_time desc  
 | 
          </when>  
 | 
          <when test="orderType==2">  
 | 
            order by   t.user_name asc  
 | 
          </when>  
 | 
          <when test="orderType==3">  
 | 
            order by  distance asc  
 | 
          </when>  
 | 
          <when test="orderType==4">  
 | 
            order by  t.regster_type desc  
 | 
          </when>  
 | 
        </choose>  
 | 
      </when>  
 | 
      <otherwise>  
 | 
        order by   t.create_time desc  
 | 
      </otherwise>  
 | 
    </choose>  
 | 
  
 | 
  </select>  
 | 
  
 | 
  
 | 
  <select id="recommend" resultMap="BaseResultMap">  
 | 
    SELECT DISTINCT  
 | 
    t.id,  
 | 
    t.user_image,  
 | 
    t.user_name,  
 | 
    t.mobile,  
 | 
    t.create_time,  
 | 
    t.regster_type,  
 | 
    t.address_remark,  
 | 
    t.address_area,  
 | 
    t.detail_address,  
 | 
    t.longitude,  
 | 
    t.latitude,  
 | 
    t.nick_name,  
 | 
    t.disc,  
 | 
    t.real_user_id,  
 | 
    t.user_id,  
 | 
    t.top_flag,  
 | 
    t.top_flag_user  
 | 
    FROM  
 | 
    xzx_user_target_info t  
 | 
    inner join xzx_user_other_info b on (t.user_id=b.user_id or t.real_user_id=b.user_id)  
 | 
    WHERE t.del_flag=0 and b.partner_id=#{partnerId}  
 | 
    and t.regster_type=3  
 | 
    <if test="userId != null and userId != ''">  
 | 
      and t.real_user_id=#{userId}  
 | 
    </if>  
 | 
    order by  t.create_time desc  
 | 
  </select>  
 | 
    <select id="queryList" resultType="com.xzx.gc.model.admin.TargetUserModel">  
 | 
        SELECT y.id, y.nick_name,y.user_name, y.mobile, y.regster_type, y.promoterName,y.promoter,y.real_user_id,  
 | 
                    y.create_time, y.detail_address, y.address_remark, y.disc,x.regist_time, y.latitude, y.longitude,  
 | 
                    IFNULL(z.latitude, 0) AS latitudex, IFNULL(z.longitude, 0) AS longitudex  
 | 
               FROM  
 | 
             (  
 | 
                select a.*,b.nick_name as promoterName,t.nick_name as promoter from xzx_user_target_info a  
 | 
                left join xzx_user_other_info b on a.real_user_id = b.user_id  
 | 
                left join xzx_user_other_info t on t.user_id = a.user_id  
 | 
                where a.del_flag = 0  
 | 
                    <if test="regsterType != null and regsterType != ''">  
 | 
                      AND a.regster_type in (#{regsterType},#{regsterType1})  
 | 
                    </if>  
 | 
                  <if test="nickName != null and nickName != ''">  
 | 
                      AND a.nick_name like concat('%',#{nickName} ,'%')  
 | 
                  </if>  
 | 
                  <if test="mobile != null and mobile != ''">  
 | 
                    AND a.mobile like concat('%',#{mobile} ,'%')  
 | 
                  </if>  
 | 
                  <if test="promoterName != null and promoterName != ''">  
 | 
                    AND b.name like concat('%',#{promoterName} ,'%')  
 | 
                  </if>  
 | 
                  <if test="promoter != null and promoter != ''">  
 | 
                    AND t.name like concat('%',#{promoter} ,'%')  
 | 
                  </if>  
 | 
            ) y  
 | 
            LEFT JOIN xzx_user_info x ON x.mobile_phone = y.mobile  
 | 
            LEFT JOIN xzx_user_address_info z ON y.mobile = z.mobile_phone AND z.flag = 1 AND z.del_flag=0  
 | 
            <if test="startTime != null and startTime != ''">  
 | 
                      where x.regist_time BETWEEN #{startTime} AND #{endTime}  
 | 
            </if>  
 | 
            GROUP BY y.id  
 | 
    </select>  
 | 
  
 | 
  <select id="queryUser" resultType="com.xzx.gc.model.admin.TargetUserModel">  
 | 
         SELECT a.mobile_phone as mobile, a.nick_name as nickName,  
 | 
          b.order_id as orderId, c.longitude as longitudex, c.latitude as latitudex FROM xzx_user_info a  
 | 
          LEFT JOIN xzx_order_info b on a.user_id = b.create_user_id  
 | 
          LEFT JOIN xzx_user_address_info c ON a.user_id=c.user_id  
 | 
          WHERE a.del_flag=0 GROUP BY a.mobile_phone  
 | 
  </select>  
 | 
  
 | 
  <select id="queryTgNameByRealUserId"   resultType="java.lang.String">  
 | 
    select b.name from xzx_user_target_info a  
 | 
      left join xzx_user_other_info b on a.real_user_id=b.user_id  
 | 
    where a.mobile=#{mobilePhone} and b.user_type=6 and b.del_flag=0  
 | 
  </select>  
 | 
  
 | 
  <select id="queryTgNameByUserId"   resultType="java.lang.String">  
 | 
    select b.name from xzx_user_target_info a  
 | 
      left join xzx_user_other_info b on a.user_id=b.user_id  
 | 
    where a.mobile=#{mobilePhone} and b.user_type=6 and b.del_flag=0  
 | 
  </select>  
 | 
  
 | 
    <update id="UpdateUserApiByTargetUserId">  
 | 
        update xzx_user_target_info set is_prohibit=#{flag} where user_id=#{userId}  
 | 
    </update>  
 | 
  
 | 
    <select id="queryUnregisteredApiList" parameterType="com.xzx.gc.model.admin.CollectorModel"  
 | 
            resultType="com.xzx.gc.model.admin.CollectorModel">  
 | 
        select a.township_id as area,b.del_flag as delFlag,  
 | 
        (select level_3_name from xzx_sys_address_level_info where level_3_id=a.township_id) as areaName ,  
 | 
        a.mobile as mobilePhone,a.create_time as createTime,  
 | 
        a.user_name as name,a.nick_name as nickName,  
 | 
        b.name as tgyName,  
 | 
        a.address_remark as address,  
 | 
        (select c.partner_name from xzx_city_partner c where c.id=b.partner_id) as partnerName  
 | 
        from xzx_user_target_info a  
 | 
        left join xzx_user_other_info b on b.user_id=a.user_id  
 | 
        where a.real_user_id is null  
 | 
        <if test="area != null and area != ''">  
 | 
            AND a.township_id=#{area}  
 | 
        </if>  
 | 
        <if test="startTime != null and startTime != ''">  
 | 
            AND a.create_time<![CDATA[>= ]]>#{startTime}  
 | 
        </if>  
 | 
        <if test="endTime != null and endTime != ''">  
 | 
            AND a.create_time<![CDATA[<= ]]>#{endTime}  
 | 
        </if>  
 | 
        <if test=" partnerIds != null and partnerIds.size() != 0">  
 | 
            AND b.partner_id in  
 | 
            <foreach collection="partnerIds" index="index" item="id" open="(" separator="," close=")">  
 | 
                #{id}  
 | 
            </foreach>  
 | 
        </if>  
 | 
        group by a.mobile  
 | 
        order by a.create_time desc  
 | 
    </select>  
 | 
</mapper> 
 |