2024-02-28 21:41:10 +08:00
|
|
|
<?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
|
2024-03-01 00:10:23 +08:00
|
|
|
DATE_FORMAT( create_time, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
|
|
|
|
count(*) AS count
|
2024-02-28 21:41:10 +08:00
|
|
|
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}
|
2024-03-01 00:10:23 +08:00
|
|
|
GROUP BY category
|
2024-02-28 21:41:10 +08:00
|
|
|
</select>
|
|
|
|
|
|
|
|
<select id="selectDealCustomerCountGroupbyDate"
|
|
|
|
resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
|
|
|
|
SELECT
|
2024-03-01 00:10:23 +08:00
|
|
|
DATE_FORMAT( b.order_date, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
|
|
|
|
count( DISTINCT a.id ) AS count
|
2024-02-28 21:41:10 +08:00
|
|
|
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}
|
2024-03-01 00:10:23 +08:00
|
|
|
GROUP BY category
|
2024-02-28 21:41:10 +08:00
|
|
|
</select>
|
|
|
|
|
2024-02-28 23:07:38 +08:00
|
|
|
<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}
|
2024-03-01 00:10:23 +08:00
|
|
|
GROUP BY category
|
2024-02-28 23:07:38 +08:00
|
|
|
</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}
|
2024-03-01 00:10:23 +08:00
|
|
|
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
|
2024-02-28 23:07:38 +08:00
|
|
|
</select>
|
|
|
|
|
2024-02-28 21:41:10 +08:00
|
|
|
</mapper>
|