123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="cn.iocoder.yudao.module.crm.dal.mysql.statistics.CrmStatisticsCustomerMapper">
- <select id="selectCustomerCountGroupbyDate"
- resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
- SELECT
- DATE_FORMAT( create_time, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
- count(*) AS count
- FROM
- crm_customer
- WHERE
- deleted = 0
- AND owner_user_id IN
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
- #{times[1],javaType=java.time.LocalDateTime}
- GROUP BY category
- </select>
- <select id="selectDealCustomerCountGroupbyDate"
- resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
- SELECT
- DATE_FORMAT( b.order_date, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
- count( DISTINCT a.id ) AS count
- FROM
- crm_customer AS a
- LEFT JOIN crm_contract AS b ON b.customer_id = a.id
- WHERE
- a.deleted = 0 AND b.deleted = 0
- AND b.audit_status = 20
- AND a.owner_user_id IN
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND b.create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
- #{times[1],javaType=java.time.LocalDateTime}
- GROUP BY category
- </select>
- <select id="selectRecordCountGroupbyDate"
- resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
- SELECT
- DATE_FORMAT( create_time, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
- count(*) AS count
- FROM
- crm_follow_up_record
- WHERE
- creator IN
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
- #{times[1],javaType=java.time.LocalDateTime}
- AND biz_type = #{bizType,javaType=java.lang.Integer}
- GROUP BY category
- </select>
- <select id="selectDistinctRecordCountGroupbyDate"
- resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
- SELECT
- DATE_FORMAT( create_time, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
- count(DISTINCT biz_id) AS count
- FROM
- crm_follow_up_record
- WHERE
- creator IN
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
- #{times[1],javaType=java.time.LocalDateTime}
- AND biz_type = #{bizType,javaType=java.lang.Integer}
- GROUP BY category
- </select>
- <select id="selectRecordCountGroupbyType"
- resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
- SELECT
- type AS category,
- count(*) AS count
- FROM crm_follow_up_record
- WHERE
- creator IN
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
- #{times[1],javaType=java.time.LocalDateTime}
- AND biz_type = #{bizType,javaType=java.lang.Integer}
- GROUP BY category
- </select>
- <select id="selectCustomerCycleGroupbyDate"
- resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
- SELECT
- DATE_FORMAT( b.order_date, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
- IFNULL( TRUNCATE ( AVG( TIMESTAMPDIFF( DAY, a.create_time, b.order_date )), 1 ), 0 ) AS cycle
- FROM crm_customer AS a
- LEFT JOIN crm_contract AS b ON b.customer_id = a.id
- WHERE
- a.deleted = 0 AND b.deleted = 0
- AND b.audit_status = 20
- AND a.owner_user_id IN
- <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
- #{userId}
- </foreach>
- AND b.create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
- #{times[1],javaType=java.time.LocalDateTime}
- GROUP BY category
- </select>
- </mapper>
|