三七 vor 1 Woche
Ursprung
Commit
209a5c1e33
1 geänderte Dateien mit 2 neuen und 452 gelöschten Zeilen
  1. 2 452
      fs-service/src/main/resources/mapper/crm/CrmCustomerMapper.xml

+ 2 - 452
fs-service/src/main/resources/mapper/crm/CrmCustomerMapper.xml

@@ -629,7 +629,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             SELECT b.customer_id FROM crm_business b GROUP BY b.customer_id HAVING b.customer_id IS NOT NULL )
     </select>
 
-    <select id="selectCrmLineCustomerListQuery" resultType="com.fs.crm.vo.CrmLineCustomerListQueryVO">
+    <select id="selectCrmLineCustomerListQueryInfo" resultType="com.fs.crm.vo.CrmLineCustomerListQueryVO">
+
         select c.*,u.nick_name as company_user_nick_name,u2.nick_name as create_user_name
         from  crm_customer c
         left join company_user u on u.user_id=c.receive_user_id
@@ -714,458 +715,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             order by c.customer_id desc
         </if>
 
-
     </select>
 
-    <select id="selectTransferCustomerList" resultType="com.fs.crm.vo.CrmLineCustomerListQueryVO">
-        select c.*,u.nick_name as company_user_nick_name,u2.nick_name as create_user_name
-        from  crm_customer c
-        left join company_user u on u.user_id=c.receive_user_id
-        left join company_user u2 on u2.user_id=c.create_user_id
-        where c.is_del = 0 and (u.status = 1 or u.del_flag = 2)
-        <if test="maps.isLine != null">
-            and c.is_line = #{maps.isLine}
-        </if>
-        <if test="maps.customerCode != null and  maps.customerCode !='' ">
-            and c.customer_code like CONCAT('%',#{maps.customerCode},'%')
-        </if>
-        <if test="maps.customerName != null and  maps.customerName !='' ">
-            and c.customer_name like CONCAT('%',#{maps.customerName},'%')
-        </if>
-        <if test="maps.customerCompanyName != null and  maps.customerCompanyName !='' ">
-            and c.customer_company_name like CONCAT('%',#{maps.customerCompanyName},'%')
-        </if>
-        <if test="maps.companyUserNickName != null and  maps.companyUserNickName !=''">
-            and u.nick_name like CONCAT('%',#{maps.companyUserNickName},'%')
-        </if>
-        <if test="maps.createUserName != null and  maps.createUserName !='' ">
-            and u2.nick_name like CONCAT('%',#{maps.createUserName},'%')
-        </if>
-        <if test="maps.mobile != null and  maps.mobile !='' ">
-            and c.mobile like CONCAT('%',#{maps.mobile},'%')
-        </if>
-        <if test="maps.receiveUserId == -1">
-            and c.receive_user_id is NULL
-        </if>
-        <if test="maps.receiveUserId == 0">
-            and c.receive_user_id is NOT NULL
-        </if>
-        <if test="maps.receiveUserId != null and maps.receiveUserId != 0 and maps.receiveUserId != -1">
-            and c.receive_user_id = #{maps.receiveUserId}
-        </if>
-        <if test="maps.status != null and maps.status !='' ">
-            and c.status =#{maps.status}
-        </if>
-        <if test="maps.isReceive != null ">
-            and c.is_receive =#{maps.isReceive}
-        </if>
-        <if test="maps.customerType != null ">
-            and c.customer_type =#{maps.customerType}
-        </if>
-        <if test="maps.companyId != null ">
-            and c.company_id =#{maps.companyId}
-        </if>
-        <if test="maps.source != null and maps.source !='' ">
-            and c.source =#{maps.source}
-        </if>
-        <if test="maps.tags != null ">
-            and
-            <foreach collection="maps.tags.split(',')" item="tag" open="(" close=")" separator="OR">
-                find_in_set(#{tag},c.tags)
-            </foreach>
-        </if>
-        <if test="maps.isPool != null ">
-            and c.is_pool = #{maps.isPool}
-        </if>
-        <if test="maps.createTime != null ">
-            and  DATE_FORMAT(c.create_time, '%Y-%m-%d')  = DATE_FORMAT(#{maps.createTime}, '%Y-%m-%d')
-        </if>
-        <if test="maps.beginTime != null and maps.beginTime !='' ">
-            and date_format(c.create_time,'%y%m%d') &gt;= date_format(#{maps.beginTime},'%y%m%d')
-        </if>
-        <if test="maps.endTime != null and maps.endTime !='' ">
-            and date_format(c.create_time,'%y%m%d') &lt;= date_format(#{maps.endTime},'%y%m%d')
-        </if>
-        <if test="maps.beginReceiveTime != null and maps.beginReceiveTime !='' ">
-            and date_format(c.receive_time,'%y%m%d') &gt;= date_format(#{maps.beginReceiveTime},'%y%m%d')
-        </if>
-        <if test="maps.endReceiveTime != null and maps.endReceiveTime !='' ">
-            and date_format(c.receive_time,'%y%m%d') &lt;= date_format(#{maps.endReceiveTime},'%y%m%d')
-        </if>
-
-
-        ${maps.params.dataScope}
-        <if test="maps.orderBy != null and maps.orderBy != ''">
-            order by c.next_time ${maps.orderBy} ,c.customer_id desc
-        </if>
-        <if test="maps.orderBy == null or maps.orderBy == ''">
-            order by c.customer_id desc
-        </if>
-    </select>
-
-    <select id="selectCrmMyCustomerListQueryInfo" resultType="com.fs.crm.vo.CrmMyCustomerListQueryVO">
-        select cu.*,c.create_time as customer_create_time,c.visit_status,c.visit_time,c.remark,c.register_desc,c.register_submit_time,
-        c.customer_code,c.customer_name,c.mobile,c.sex,c.weixin,c.address,c.is_receive,c.customer_type,c.source,
-        c.tags,c.receive_time,c.content,c.next_time,c.customer_company_name
-        from crm_customer_user cu
-        inner join crm_customer c on c.customer_user_id=cu.customer_user_id
-        where cu.is_pool=0 and c.is_pool = 0
-        <if test="maps.companyId != null ">
-            and cu.company_id =#{maps.companyId}
-        </if>
-        <if test="maps.companyUserId != null ">
-            and cu.company_user_id =#{maps.companyUserId}
-        </if>
-        <if test="maps.isLine != null ">
-            and c.is_line = #{maps.isLine}
-        </if>
-        <if test="maps.address != null and  maps.address !='' ">
-            and c.address like CONCAT('%',#{maps.address},'%')
-        </if>
-        <if test="maps.customerCode != null and  maps.customerCode !='' ">
-            and c.customer_code like CONCAT('%',#{maps.customerCode},'%')
-        </if>
-        <if test="maps.customerName != null and  maps.customerName !='' ">
-            and c.customer_name like CONCAT('%',#{maps.customerName},'%')
-        </if>
-        <if test="maps.customerCompanyName != null and  maps.customerCompanyName !='' ">
-            and c.customer_company_name like CONCAT('%',#{maps.customerCompanyName},'%')
-        </if>
-
-        <if test="maps.mobile != null and  maps.mobile !='' ">
-            and c.mobile like CONCAT('%',#{maps.mobile},'%')
-        </if>
-        <if test="maps.status != null and  maps.status !='' ">
-            and c.visit_status IN
-            <foreach collection="maps.status.split(',')" item="item" index="index" open="(" separator="," close=")">
-                #{item}
-            </foreach>
-        </if>
-        <if test="maps.isHisOrder != null and maps.isHisOrder==1 ">
-            and (select ifnull(count(1),0) from crm_customer_his_order h where h.customer_id=c.customer_id )  &gt; 0
-        </if>
-        <if test="maps.isHisOrder != null and maps.isHisOrder==0 ">
-            and (select ifnull(count(1),0) from crm_customer_his_order h where h.customer_id=c.customer_id )  = 0
-        </if>
-
-        <if test="maps.customerType != null ">
-            and c.customer_type IN
-            <foreach collection="maps.customerType.split(',')"  item="item" index="index"  open="(" separator="," close=")">
-                #{item}
-            </foreach>
-        </if>
-        <if test="maps.source != null and  maps.source !='' ">
-            and c.source IN
-            <foreach collection="maps.source.split(',')" item="item" index="index" open="(" separator="," close=")">
-                #{item}
-            </foreach>
-        </if>
-        <if test="maps.tags != null and  maps.tags !='' ">
-            and
-            <foreach collection="maps.tags.split(',')" item="tag" index="index" open="(" close=")" separator="OR">
-                find_in_set(#{tag},c.tags)
-            </foreach>
-        </if>
-        <if test="maps.customerCreateTime != null ">
-            AND date_format(c.create_time,'%y%m%d') &gt;= date_format(#{maps.customerCreateTime[0]},'%y%m%d')
-            AND date_format(c.create_time,'%y%m%d') &lt;= date_format(#{maps.customerCreateTime[1]},'%y%m%d')
-        </if>
-        <if test="maps.beginTime != null and  maps.beginTime !='' ">
-            and date_format(c.receive_time,'%y%m%d') &gt;= date_format(#{maps.beginTime},'%y%m%d')
-        </if>
-        <if test="maps.endTime != null and  maps.endTime !='' ">
-            and date_format(c.receive_time,'%y%m%d') &lt;= date_format(#{maps.endTime},'%y%m%d')
-        </if>
-        ${maps.params.dataScope}
-        <if test="maps.orderBy != null and maps.orderBy != ''">
-            order by c.next_time ${maps.orderBy} ,cu.customer_user_id desc
-        </if>
-        <if test="maps.orderBy == null or maps.orderBy == ''">
-            order by cu.customer_user_id desc
-        </if>
-
-    </select>
-
-    <select id="selectCrmCustomerListByUnPool" resultType="com.fs.crm.vo.CrmCustomerUnPoolListQueryVO">
-        WITH RankedCustomers AS (
-        select c.*,ROW_NUMBER() OVER (PARTITION BY c.customer_id ORDER BY c.create_time DESC) AS rn from (
-        <if test="param1 != null">
-            (SELECT
-            *,
-            '领取未跟进' AS pool_type,
-            (receive_time+ INTERVAL ${param1.limitDay} DAY) AS pooling_time,
-            TIMESTAMPDIFF(MINUTE, NOW(), (receive_time + INTERVAL ${param1.limitDay} DAY)) AS `time`
-            from crm_customer n
-            WHERE n.is_del = 0
-            AND n.is_pool = 0
-            AND n.is_receive = 1
-            <if test="param2 != null">
-                AND n.visit_status IS NULL
-                AND n.receive_user_id IS NOT NULL
-                AND n.customer_id NOT IN (SELECT v.customer_id FROM `crm_customer_visit` v GROUP BY v.customer_id HAVING v.customer_id is NOT NULL)
-            </if>
-
-            )
-
-        </if>
-        <if test="param2 != null">
-            UNION(
-            SELECT *,
-            '未继续跟进' AS pool_type,
-            (GREATEST(
-            IFNULL(visit_time, '1000-01-01'),
-            IFNULL(sys_visit_time, '1000-01-01')
-            ) + INTERVAL ${param2.limitDay} DAY) AS pooling_time,
-            TIMESTAMPDIFF(
-            MINUTE,
-            NOW(),
-            (GREATEST(
-            IFNULL(visit_time, '1000-01-01'),
-            IFNULL(sys_visit_time, '1000-01-01')
-            ) + INTERVAL ${param2.limitDay} DAY)
-            ) AS `time`
-            FROM crm_customer
-            WHERE is_del = 0
-            AND is_pool = 0
-            AND visit_status IS NOT NULL
-            AND visit_time IS NOT NULL
-            )
-        </if>
-        <if test="param3!=null">
-            UNION(SELECT c.*,
-            '未有商机' AS pool_type,
-            (c.create_time + INTERVAL ${param3.limitDay} DAY) AS pooling_time,
-            TIMESTAMPDIFF(MINUTE, NOW(), (c.create_time + INTERVAL ${param3.limitDay} DAY)) AS `time`
-            FROM `crm_customer` c
-            WHERE c.is_del = 0
-            AND c.is_pool = 0
-            AND c.customer_id NOT IN (
-            SELECT b.customer_id FROM crm_business b WHERE b.create_time > (NOW()-INTERVAL ${param3.limitDay} DAY)
-            AND b.customer_id
-            IS NOT NULL GROUP BY b.customer_id)
-            )
-        </if>
-
-        ) as c
-        where c.is_del = 0 and c.is_pool_rule = 1
-        <if test="param.customerCode != null  and param.customerCode != ''"> and c.customer_code = #{param.customerCode}</if>
-        <if test="param.customerName != null  and param.customerName !=''"> and c.customer_name like concat('%', #{param.customerName}, '%')</if>
-        <if test="param.customerCompanyName != null  and param.customerCompanyName !=''"> and c.customer_company_name like concat('%', #{param.customerCompanyName}, '%')</if>
-        <if test="param.mobile != null  and param.mobile != ''"> and c.mobile= #{param.mobile}</if>
-        <if test="param.sex != null "> and c.sex =#{param.sex}</if>
-        <if test="param.weixin != null  and param.weixin != ''"> and c.weixin= #{param.weixin}</if>
-        <if test="param.createUserId != null "> and c.create_user_id = #{param.createUserId}</if>
-        <if test="param.receiveUserId != null "> and c.receive_user_id = #{param.receiveUserId}</if>
-        <if test="param.customerUserId != null "> and c.customer_user_id = #{param.customerUserId}</if>
-        <if test="param.deptId != null "> and c.dept_id = #{deptId}</if>
-        <if test="param.customerType != null "> and c.customer_type = #{param.customerType}</if>
-        <if test="param.companyId != null "> and c.company_id = #{param.companyId}</if>
-        <if test="param.source != null and param.source != ''"> and c.source = #{param.source}</if>
-        <if test="param.tags != null  and param.tags != ''"> and c.tags = #{param.tags}</if>
-        <if test="param.beginTime != null and param.beginTime !='' ">
-            and date_format(c.create_time,'%y%m%d') &gt;= date_format(#{param.beginTime},'%y%m%d')
-        </if>
-        <if test="param.endTime != null and param.endTime !='' ">
-            and date_format(c.create_time,'%y%m%d') &lt;= date_format(#{param.endTime},'%y%m%d')
-        </if>
-        <if test="param.beginReceiveTime != null and param.beginReceiveTime !='' ">
-            and date_format(c.receive_time,'%y%m%d%H%i%s') &gt;= date_format(#{param.beginReceiveTime},'%y%m%d%H%i%s')
-        </if>
-        <if test="param.endReceiveTime != null and param.endReceiveTime !='' ">
-            and date_format(c.receive_time,'%y%m%d%H%i%s') &lt;= date_format(#{param.endReceiveTime},'%y%m%d%H%i%s')
-        </if>
-        <if test="param.companyUserNickName != null and  param.companyUserNickName !='' ">
-            and cu.nick_name like CONCAT('%',#{param.companyUserNickName},'%')
-        </if>
-        )
-        SELECT r.*,cu.nick_name as company_user_nick_name
-        FROM RankedCustomers r
-        left join company_user cu on cu.user_id=r.receive_user_id
-        WHERE r.rn = 1
-        <if test="param.orderBy != null and param.orderBy != ''">
-            order by r.next_time ${param.orderBy} ,r.`time` asc
-        </if>
-        <if test="param.orderBy == null or param.orderBy == ''">
-            order by r.`time` asc
-        </if>
-        limit #{param.start}, #{param.pageSize};
-    </select>
-
-    <select id="countCrmCustomerListByUnPool" resultType="long">
-        WITH RankedCustomers AS (
-        select c.*,ROW_NUMBER() OVER (PARTITION BY c.customer_id ORDER BY c.create_time DESC) AS rn from (
-        <if test="param1 != null">
-            (SELECT *,
-            (receive_time+ INTERVAL ${param1.limitDay} DAY) AS pooling_time,
-            TIMESTAMPDIFF(MINUTE, NOW(), (receive_time + INTERVAL ${param1.limitDay} DAY)) AS `time`
-            from crm_customer
-            WHERE is_del = 0
-            AND is_pool = 0
-            AND is_receive = 1
-            <if test="param2 != null">
-                AND visit_status IS NULL
-                AND receive_user_id IS NOT NULL
-                AND customer_id NOT IN (SELECT v.customer_id FROM `crm_customer_visit` v GROUP BY v.customer_id HAVING v.customer_id is NOT NULL)
-            </if>
-            )
-
-        </if>
-        <if test="param2 != null">
-            UNION(
-            SELECT *,
-            (GREATEST(
-            IFNULL(visit_time, '1000-01-01'),
-            IFNULL(sys_visit_time, '1000-01-01')
-            ) + INTERVAL ${param2.limitDay} DAY) AS pooling_time,
-            TIMESTAMPDIFF(
-            MINUTE,
-            NOW(),
-            (GREATEST(
-            IFNULL(visit_time, '1000-01-01'),
-            IFNULL(sys_visit_time, '1000-01-01')
-            ) + INTERVAL ${param2.limitDay} DAY)
-            ) AS `time`
-            FROM crm_customer
-            WHERE is_del = 0
-            AND is_pool = 0
-            AND visit_status IS NOT NULL
-            AND visit_time IS NOT NULL
-            )
-        </if>
-        <if test="param3!=null">
-            UNION(SELECT c.*,
-            (c.create_time + INTERVAL ${param3.limitDay} DAY) AS pooling_time,
-            TIMESTAMPDIFF(MINUTE, NOW(), (c.create_time + INTERVAL ${param3.limitDay} DAY)) AS `time`
-            FROM `crm_customer` c
-            WHERE c.is_del = 0
-            AND c.is_pool = 0
-            AND c.customer_id NOT IN (
-            SELECT b.customer_id FROM crm_business b WHERE b.create_time > (NOW()-INTERVAL ${param3.limitDay} DAY)
-            AND b.customer_id
-            IS NOT NULL GROUP BY b.customer_id)
-            )
-        </if>
-        ) as c
-        where c.is_del = 0 and c.is_pool_rule = 1
-        <if test="param.customerCode != null  and param.customerCode != ''"> and c.customer_code = #{param.customerCode}</if>
-        <if test="param.customerName != null  and param.customerName !=''"> and c.customer_name like concat('%', #{param.customerName}, '%')</if>
-        <if test="param.customerCompanyName != null  and param.customerCompanyName !=''"> and c.customer_company_name like concat('%', #{param.customerCompanyName}, '%')</if>
-        <if test="param.mobile != null  and param.mobile != ''"> and c.mobile= #{param.mobile}</if>
-        <if test="param.sex != null "> and c.sex =#{param.sex}</if>
-        <if test="param.weixin != null  and param.weixin != ''"> and c.weixin= #{param.weixin}</if>
-        <if test="param.createUserId != null "> and c.create_user_id = #{param.createUserId}</if>
-        <if test="param.receiveUserId != null "> and c.receive_user_id = #{param.receiveUserId}</if>
-        <if test="param.customerUserId != null "> and c.customer_user_id = #{param.customerUserId}</if>
-        <if test="param.deptId != null "> and c.dept_id = #{deptId}</if>
-        <if test="param.customerType != null "> and c.customer_type = #{param.customerType}</if>
-        <if test="param.companyId != null "> and c.company_id = #{param.companyId}</if>
-        <if test="param.source != null and param.source != ''"> and c.source = #{param.source}</if>
-        <if test="param.tags != null  and param.tags != ''"> and c.tags = #{param.tags}</if>
-        <if test="param.beginTime != null and param.beginTime !='' ">
-            and date_format(c.create_time,'%y%m%d') &gt;= date_format(#{param.beginTime},'%y%m%d')
-        </if>
-        <if test="param.endTime != null and param.endTime !='' ">
-            and date_format(c.create_time,'%y%m%d') &lt;= date_format(#{param.endTime},'%y%m%d')
-        </if>
-        <if test="param.beginReceiveTime != null and param.beginReceiveTime !='' ">
-            and date_format(c.receive_time,'%y%m%d%H%i%s') &gt;= date_format(#{param.beginReceiveTime},'%y%m%d%H%i%s')
-        </if>
-        <if test="param.endReceiveTime != null and param.endReceiveTime !='' ">
-            and date_format(c.receive_time,'%y%m%d%H%i%s') &lt;= date_format(#{param.endReceiveTime},'%y%m%d%H%i%s')
-        </if>
-        <if test="param.companyUserNickName != null and  param.companyUserNickName !='' ">
-            and cu.nick_name like CONCAT('%',#{param.companyUserNickName},'%')
-        </if>
-        )
-        SELECT count(1)
-        FROM RankedCustomers r
-        left join company_user cu on cu.user_id=r.receive_user_id
-        WHERE r.rn = 1
-
-        ;
-    </select>
-
-    <select id="selectCrmCustomerByCondition" resultType="com.fs.crm.domain.CrmCustomer">
-        <include refid="selectCrmCustomerVo"/>
-        where is_del = 0
-        <if test="(customerCompanyName != null and  customerCompanyName !='') and (mobile != null and  mobile !='')">
-            and(
-            <if test="customerCompanyName != null and  customerCompanyName !=''">
-                customer_company_name like #{customerCompanyName}
-            </if>
-            <if test="mobile != null and  mobile !=''">
-                or mobile like #{mobile}
-            </if>
-            )
-        </if>
-        <if test="(customerCompanyName != null and  customerCompanyName !='') and (mobile == null or  mobile =='')">
-            and customer_company_name like #{customerCompanyName}
-        </if>
-        <if test="(customerCompanyName == null or  customerCompanyName =='') and (mobile != null and  mobile !='')">
-            and mobile like #{mobile}
-        </if>
-
-    </select>
-
-
-    <update id="recoverCrmLineCustomerList">
-        update crm_customer c set  c.is_pool = 1,c.pool_time = now()
-        <where>
-            <if test="maps.isLine != null">
-                and c.is_line = #{maps.isLine}
-            </if>
-            <if test="maps.customerCode != null and  maps.customerCode !='' ">
-                and c.customer_code like CONCAT('%',#{maps.customerCode},'%')
-            </if>
-            <if test="maps.customerName != null and  maps.customerName !='' ">
-                and c.customer_name like CONCAT('%',#{maps.customerName},'%')
-            </if>
-            <if test="maps.mobile != null and  maps.mobile !='' ">
-                and c.mobile like CONCAT('%',#{maps.mobile},'%')
-            </if>
-            <if test="maps.receiveUserId == -1">
-                and c.receive_user_id is NULL
-            </if>
-            <if test="maps.receiveUserId == 0">
-                and c.receive_user_id is NOT NULL
-            </if>
-            <if test="maps.receiveUserId != null and maps.receiveUserId != 0 and maps.receiveUserId != -1">
-                and c.receive_user_id = #{maps.receiveUserId}
-            </if>
-            <if test="maps.status != null and maps.status !='' ">
-                and c.status =#{maps.status}
-            </if>
-            <if test="maps.isReceive != null ">
-                and c.is_receive =#{maps.isReceive}
-            </if>
-            <if test="maps.customerType != null ">
-                and c.customer_type =#{maps.customerType}
-            </if>
-            <if test="maps.companyId != null ">
-                and c.company_id =#{maps.companyId}
-            </if>
-            <if test="maps.source != null and maps.source !='' ">
-                and c.source =#{maps.source}
-            </if>
-            <if test="maps.tags != null ">
-                and
-                <foreach collection="maps.tags.split(',')" item="tag" open="(" close=")" separator="OR">
-                    find_in_set(#{tag},c.tags)
-                </foreach>
-            </if>
-            <if test="maps.isPool != null ">
-                and c.is_pool = #{maps.isPool}
-            </if>
-            <if test="maps.createTime != null ">
-                and  DATE_FORMAT(c.create_time, '%Y-%m-%d')  = DATE_FORMAT(#{maps.createTime}, '%Y-%m-%d')
-            </if>
-            <if test="maps.beginTime != null and maps.beginTime !='' ">
-                and date_format(c.create_time,'%y%m%d') &gt;= date_format(#{maps.beginTime},'%y%m%d')
-            </if>
-            <if test="maps.endTime != null and maps.endTime !='' ">
-                and date_format(c.create_time,'%y%m%d') &lt;= date_format(#{maps.endTime},'%y%m%d')
-            </if>
-        </where>
-    </update>
 
 </mapper>