CrmStatisticsFunnelMapper.xml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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.CrmStatisticsFunnelMapper">
  4. <select id="selectCustomerCountByDate" resultType="java.lang.Long">
  5. SELECT
  6. COUNT(*)
  7. FROM crm_customer
  8. WHERE deleted = 0
  9. AND owner_user_id IN
  10. <!-- TODO @puhui999:这个 foreach 搞个缩进哈 - -->
  11. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  12. #{userId}
  13. </foreach>
  14. AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
  15. <!-- TODO @puhui999:下面这个,就不缩进啦 - -->
  16. #{times[1],javaType=java.time.LocalDateTime}
  17. </select>
  18. <select id="selectBusinessCountByDateAndEndStatus" resultType="java.lang.Long">
  19. SELECT
  20. COUNT(*)
  21. FROM crm_business
  22. WHERE deleted = 0
  23. <if test="status != null">
  24. AND end_status = #{status}
  25. </if>
  26. AND owner_user_id IN
  27. <foreach collection="reqVO.userIds" item="userId" open="(" close=")" separator=",">
  28. #{userId}
  29. </foreach>
  30. AND create_time BETWEEN #{reqVO.times[0],javaType=java.time.LocalDateTime} AND
  31. #{reqVO.times[1],javaType=java.time.LocalDateTime}
  32. </select>
  33. <select id="selectBusinessSummaryListGroupByEndStatus"
  34. resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.funnel.CrmStatisticsBusinessSummaryByEndStatusRespVO">
  35. SELECT
  36. end_status AS endStatus,
  37. COUNT(*) AS businessCount,
  38. SUM(total_price) AS totalPrice
  39. FROM crm_business
  40. WHERE deleted = 0 AND end_status IS NOT NULL
  41. AND owner_user_id IN
  42. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  43. #{userId}
  44. </foreach>
  45. AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
  46. #{times[1],javaType=java.time.LocalDateTime}
  47. GROUP BY end_status
  48. </select>
  49. <select id="selectBusinessSummaryGroupByDate"
  50. resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.funnel.CrmStatisticsBusinessSummaryByDateRespVO">
  51. SELECT
  52. DATE_FORMAT(create_time, '%Y-%m-%d') AS time,
  53. COUNT(*) AS businessCreateCount,
  54. SUM(total_price) AS totalPrice
  55. FROM crm_business
  56. WHERE deleted = 0
  57. AND owner_user_id IN
  58. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  59. #{userId}
  60. </foreach>
  61. AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
  62. #{times[1],javaType=java.time.LocalDateTime}
  63. GROUP BY time
  64. </select>
  65. <select id="selectBusinessInversionRateSummaryByDate"
  66. resultType="cn.iocoder.yudao.module.crm.controller.admin.statistics.vo.funnel.CrmStatisticsBusinessInversionRateSummaryByDateRespVO">
  67. SELECT
  68. DATE_FORMAT(create_time, '%Y-%m-%d') AS time,
  69. COUNT(*) AS businessCount,
  70. SUM(IF(end_status = 1, 1, 0)) AS businessWinCount
  71. FROM crm_business
  72. WHERE deleted = 0
  73. AND owner_user_id IN
  74. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  75. #{userId}
  76. </foreach>
  77. AND create_time BETWEEN #{times[0],javaType=java.time.LocalDateTime} AND
  78. #{times[1],javaType=java.time.LocalDateTime}
  79. GROUP BY time
  80. </select>
  81. </mapper>