CrmBiRankingMapper.xml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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.bi.CrmBiRankingMapper">
  4. <select id="selectContractPriceRank"
  5. resultType="cn.iocoder.yudao.module.crm.controller.admin.bi.vo.CrmBiRanKRespVO">
  6. SELECT IFNULL(SUM(price), 0) AS count, owner_user_id
  7. FROM crm_contract
  8. WHERE deleted = 0
  9. AND audit_status = 20
  10. and owner_user_id in
  11. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  12. #{userId}
  13. </foreach>
  14. AND order_date between #{times[0],javaType=java.time.LocalDateTime} and
  15. #{times[1],javaType=java.time.LocalDateTime}
  16. GROUP BY owner_user_id
  17. </select>
  18. <select id="selectReceivablePriceRank"
  19. resultType="cn.iocoder.yudao.module.crm.controller.admin.bi.vo.CrmBiRanKRespVO">
  20. SELECT IFNULL(SUM(price), 0) AS count, owner_user_id
  21. FROM crm_receivable
  22. WHERE deleted = 0
  23. AND audit_status = 20
  24. AND owner_user_id in
  25. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  26. #{userId}
  27. </foreach>
  28. AND return_time between #{times[0],javaType=java.time.LocalDateTime} and
  29. #{times[1],javaType=java.time.LocalDateTime}
  30. GROUP BY owner_user_id
  31. </select>
  32. <select id="selectContractCountRank"
  33. resultType="cn.iocoder.yudao.module.crm.controller.admin.bi.vo.CrmBiRanKRespVO">
  34. SELECT COUNT(1) AS count, owner_user_id
  35. FROM crm_contract
  36. WHERE deleted = 0
  37. AND audit_status = 20
  38. AND owner_user_id in
  39. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  40. #{userId}
  41. </foreach>
  42. AND order_date between #{times[0],javaType=java.time.LocalDateTime} and
  43. #{times[1],javaType=java.time.LocalDateTime}
  44. GROUP BY owner_user_id
  45. </select>
  46. <!-- TODO 待定 这里是否需要关联 crm_contract_product 表,计算销售额 -->
  47. <select id="selectProductSalesRank"
  48. resultType="cn.iocoder.yudao.module.crm.controller.admin.bi.vo.CrmBiRanKRespVO">
  49. SELECT COUNT(1) AS count, owner_user_id
  50. FROM crm_contract
  51. WHERE deleted = 0
  52. AND audit_status = 20
  53. AND owner_user_id in
  54. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  55. #{userId}
  56. </foreach>
  57. AND order_date between #{times[0],javaType=java.time.LocalDateTime} and
  58. #{times[1],javaType=java.time.LocalDateTime}
  59. GROUP BY owner_user_id
  60. </select>
  61. <select id="selectCustomerCountRank"
  62. resultType="cn.iocoder.yudao.module.crm.controller.admin.bi.vo.CrmBiRanKRespVO">
  63. SELECT COUNT(1) AS count, owner_user_id
  64. FROM crm_customer
  65. WHERE deleted = 0
  66. AND owner_user_id in
  67. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  68. #{userId}
  69. </foreach>
  70. AND create_time between #{times[0],javaType=java.time.LocalDateTime} and
  71. #{times[1],javaType=java.time.LocalDateTime}
  72. GROUP BY owner_user_id
  73. </select>
  74. <select id="selectContactsCountRank"
  75. resultType="cn.iocoder.yudao.module.crm.controller.admin.bi.vo.CrmBiRanKRespVO">
  76. SELECT COUNT(1) AS count, owner_user_id
  77. FROM crm_contact
  78. WHERE deleted = 0
  79. AND owner_user_id in
  80. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  81. #{userId}
  82. </foreach>
  83. AND create_time between #{times[0],javaType=java.time.LocalDateTime} and
  84. #{times[1],javaType=java.time.LocalDateTime}
  85. GROUP BY owner_user_id
  86. </select>
  87. <select id="selectFollowCountRank"
  88. resultType="cn.iocoder.yudao.module.crm.controller.admin.bi.vo.CrmBiRanKRespVO">
  89. SELECT COUNT(1) AS count, cc.owner_user_id
  90. FROM crm_follow_up_record AS cfur LEFT JOIN crm_contact AS cc ON FIND_IN_SET(cc.id, cfur.contact_ids)
  91. WHERE cfur.deleted = 0
  92. AND cc.deleted = 0
  93. AND cc.owner_user_id in
  94. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  95. #{userId}
  96. </foreach>
  97. AND cfur.create_time between #{times[0],javaType=java.time.LocalDateTime} and
  98. #{times[1],javaType=java.time.LocalDateTime}
  99. GROUP BY cc.owner_user_id
  100. </select>
  101. <select id="selectFollowCustomerCountRank"
  102. resultType="cn.iocoder.yudao.module.crm.controller.admin.bi.vo.CrmBiRanKRespVO">
  103. SELECT COUNT(DISTINCT cc.id) AS count, cc.owner_user_id
  104. FROM crm_follow_up_record AS cfur LEFT JOIN crm_contact AS cc ON FIND_IN_SET(cc.id, cfur.contact_ids)
  105. WHERE cfur.deleted = 0
  106. AND cc.deleted = 0
  107. AND cc.owner_user_id in
  108. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  109. #{userId}
  110. </foreach>
  111. AND cfur.create_time between #{times[0],javaType=java.time.LocalDateTime} and
  112. #{times[1],javaType=java.time.LocalDateTime}
  113. GROUP BY cc.owner_user_id
  114. </select>
  115. </mapper>