CrmStatisticsCustomerMapper.xml 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="cn.iocoder.yudao.module.crm.dal.mysql.statistics.CrmStatisticsCustomerMapper">
  4. <select id="selectCustomerCountGroupbyDate"
  5. resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
  6. SELECT
  7. DATE_FORMAT( create_time, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
  8. count(*) AS count
  9. FROM
  10. crm_customer
  11. WHERE
  12. deleted = 0
  13. AND owner_user_id IN
  14. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  15. #{userId}
  16. </foreach>
  17. AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
  18. #{times[1],javaType=java.time.LocalDateTime}
  19. GROUP BY category
  20. </select>
  21. <select id="selectDealCustomerCountGroupbyDate"
  22. resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
  23. SELECT
  24. DATE_FORMAT( b.order_date, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
  25. count( DISTINCT a.id ) AS count
  26. FROM
  27. crm_customer AS a
  28. LEFT JOIN crm_contract AS b ON b.customer_id = a.id
  29. WHERE
  30. a.deleted = 0 AND b.deleted = 0
  31. AND b.audit_status = 20
  32. AND a.owner_user_id IN
  33. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  34. #{userId}
  35. </foreach>
  36. AND b.create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
  37. #{times[1],javaType=java.time.LocalDateTime}
  38. GROUP BY category
  39. </select>
  40. <select id="selectRecordCountGroupbyDate"
  41. resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
  42. SELECT
  43. DATE_FORMAT( create_time, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
  44. count(*) AS count
  45. FROM
  46. crm_follow_up_record
  47. WHERE
  48. creator IN
  49. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  50. #{userId}
  51. </foreach>
  52. AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
  53. #{times[1],javaType=java.time.LocalDateTime}
  54. AND biz_type = #{bizType,javaType=java.lang.Integer}
  55. GROUP BY category
  56. </select>
  57. <select id="selectDistinctRecordCountGroupbyDate"
  58. resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
  59. SELECT
  60. DATE_FORMAT( create_time, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
  61. count(DISTINCT biz_id) AS count
  62. FROM
  63. crm_follow_up_record
  64. WHERE
  65. creator IN
  66. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  67. #{userId}
  68. </foreach>
  69. AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
  70. #{times[1],javaType=java.time.LocalDateTime}
  71. AND biz_type = #{bizType,javaType=java.lang.Integer}
  72. GROUP BY category
  73. </select>
  74. <select id="selectRecordCountGroupbyType"
  75. resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
  76. SELECT
  77. type AS category,
  78. count(*) AS count
  79. FROM crm_follow_up_record
  80. WHERE
  81. creator IN
  82. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  83. #{userId}
  84. </foreach>
  85. AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
  86. #{times[1],javaType=java.time.LocalDateTime}
  87. AND biz_type = #{bizType,javaType=java.lang.Integer}
  88. GROUP BY category
  89. </select>
  90. <select id="selectCustomerCycleGroupbyDate"
  91. resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.customer.CrmStatisticsCustomerCountVO">
  92. SELECT
  93. DATE_FORMAT( b.order_date, #{sqlDateFormat,javaType=java.lang.String} ) AS category,
  94. IFNULL( TRUNCATE ( AVG( TIMESTAMPDIFF( DAY, a.create_time, b.order_date )), 1 ), 0 ) AS cycle
  95. FROM crm_customer AS a
  96. LEFT JOIN crm_contract AS b ON b.customer_id = a.id
  97. WHERE
  98. a.deleted = 0 AND b.deleted = 0
  99. AND b.audit_status = 20
  100. AND a.owner_user_id IN
  101. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  102. #{userId}
  103. </foreach>
  104. AND b.create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
  105. #{times[1],javaType=java.time.LocalDateTime}
  106. GROUP BY category
  107. </select>
  108. </mapper>