WmDaCustomerMapper.xml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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="com.qunzhixinxi.hnqz.admin.mapper.WmDaCustomerMapper" >
  4. <resultMap id="BaseResultMap" type="com.qunzhixinxi.hnqz.admin.api.entity.WmDaCustomer" >
  5. <result column="id" property="id" jdbcType="INTEGER" />
  6. <result column="dept_id" property="deptId" jdbcType="INTEGER" />
  7. <result column="customer_number" property="customerNumber" jdbcType="VARCHAR" />
  8. <result column="customer_name" property="customerName" jdbcType="VARCHAR" />
  9. <result column="customer_type" property="customerType" jdbcType="VARCHAR" />
  10. <result column="customer_manager" property="customerManager" jdbcType="VARCHAR" />
  11. <result column="channel_name" property="channelName" jdbcType="VARCHAR" />
  12. <result column="customer_status" property="customerStatus" jdbcType="VARCHAR" />
  13. <result column="remark" property="remark" jdbcType="VARCHAR" />
  14. <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
  15. <result column="create_user" property="createUser" jdbcType="INTEGER" />
  16. <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
  17. <result column="update_user" property="updateUser" jdbcType="INTEGER" />
  18. <!-- 合同列表 -->
  19. <collection property="contractList" javaType="java.util.ArrayList" ofType="com.qunzhixinxi.hnqz.admin.api.entity.Contract">
  20. <result column="title" property="title"/>
  21. <result column="serial_no" property="serialNo"/>
  22. <result column="sign_time" property="signTime"/>
  23. <result column="expiration_time" property="expirationTime"/>
  24. <result column="pic_url" property="picUrl"/>
  25. </collection>
  26. <!-- 跟踪信息列表 -->
  27. <collection property="wmDaTrackList" javaType="java.util.ArrayList" ofType="com.qunzhixinxi.hnqz.admin.api.entity.WmDaTrack">
  28. <result column="trace_principal_name" property="tracePrincipalName" jdbcType="VARCHAR" />
  29. <result column="trace_object_name" property="traceObjectName" jdbcType="VARCHAR" />
  30. <result column="status" property="status" jdbcType="INTEGER" />
  31. </collection>
  32. </resultMap>
  33. <!-- 查询列表用 -->
  34. <resultMap id="customerWithGmvMap" type="com.qunzhixinxi.hnqz.admin.api.entity.WmDaCustomer" >
  35. <result column="id" property="id" jdbcType="INTEGER" />
  36. <result column="customer_name" property="customerName" jdbcType="VARCHAR" />
  37. <result column="customer_type" property="customerType" jdbcType="VARCHAR" />
  38. <result column="customer_manager" property="customerManager" jdbcType="VARCHAR" />
  39. <result column="channel_name" property="channelName" jdbcType="VARCHAR" />
  40. <collection property="deptGmvList" javaType="java.util.ArrayList" ofType="com.qunzhixinxi.hnqz.admin.api.entity.WmDeptGmv">
  41. <result property="id" column="gmv_id"/>
  42. <result property="deptId" column="dept_id"/>
  43. <result property="year" column="year"/>
  44. <result property="month" column="month"/>
  45. <result property="gmv1" column="gmv1"/>
  46. <result property="gmv1Rate" column="gmv1_rate"/>
  47. <result property="gmv2" column="gmv2"/>
  48. <result property="gmv2Rate" column="gmv2_rate"/>
  49. <result property="renlijiaServiceChargeRate" column="renlijia_service_charge_rate"/>
  50. <result property="income" column="income"/>
  51. </collection>
  52. </resultMap>
  53. <!-- 查询列表分页用 -->
  54. <resultMap id="customerWithGmvPageMap" type="com.qunzhixinxi.hnqz.admin.api.entity.WmDaCustomer" >
  55. <result column="id" property="id" jdbcType="INTEGER" />
  56. <result column="customer_name" property="customerName" jdbcType="VARCHAR" />
  57. <result column="customer_type" property="customerType" jdbcType="VARCHAR" />
  58. <result column="customer_manager" property="customerManager" jdbcType="VARCHAR" />
  59. <result column="channel_name" property="channelName" jdbcType="VARCHAR" />
  60. <collection property="deptGmvList" ofType="com.qunzhixinxi.hnqz.admin.api.entity.WmDeptGmv"
  61. select="com.qunzhixinxi.hnqz.admin.mapper.WmDeptGmvMapper.listDeptGmvByDeptId" column="dept_id" />
  62. </resultMap>
  63. <!-- 分页查询 -->
  64. <select id="listCustomerPage" resultMap="BaseResultMap">
  65. SELECT
  66. ac.*, wc.title,
  67. wc.serial_no,
  68. wc.sign_time,
  69. wc.expiration_time,
  70. wc.pic_url,
  71. dt.trace_principal_name,
  72. dt.trace_object_name,
  73. dt.`status`
  74. FROM
  75. wm_af_customer ac
  76. LEFT JOIN wm_contract wc ON wc.customer_id = ac.id
  77. LEFT JOIN wm_da_track dt ON dt.project_id = ac.id
  78. <where>
  79. <if test="query.customerNumber != null and query.customerNumber != ''">
  80. AND ac.customer_id = #{query.customerNumber}
  81. </if>
  82. <if test="query.customerName != null and query.customerName != ''">
  83. AND ac.customer_name LIKE CONCAT('%', #{query.customerName}, '%')
  84. </if>
  85. <if test="query.customerType != null">
  86. AND ac.customer_type = #{query.customerType}
  87. </if>
  88. <if test="query.customerStatus != null">
  89. AND ac.customer_status = #{query.customerStatus}
  90. </if>
  91. <if test="query.customerManager != null and query.customerManager != ''">
  92. AND ac.customer_manager LIKE CONCAT('%', #{query.customerManager}, '%')
  93. </if>
  94. </where>
  95. ORDER BY ac.create_time DESC
  96. </select>
  97. <!-- 查询销售报表展示的客户(停用的,有结算额的要展示) -->
  98. <select id="listCustomerWithGmvPage" resultMap="customerWithGmvPageMap">
  99. SELECT
  100. c.*
  101. FROM
  102. wm_af_customer c
  103. LEFT JOIN
  104. (SELECT dept_id, sum(gmv1) as gmv1_sum, sum(gmv2) as gmv2_sum, sum(CASE `month` WHEN ${endMonth} THEN income ELSE 0 END)
  105. AS last_month_income FROM wm_dept_gmv WHERE `year` = #{year} AND CAST(`month` AS SIGNED INT)
  106. BETWEEN #{startMonth} AND #{endMonth} GROUP BY dept_id) temp
  107. ON temp.dept_id = c.dept_id
  108. <where>
  109. c.dept_id IS NOT NULL
  110. AND (c.customer_status = 'GOING_ONLINE'
  111. OR temp.gmv1_sum != 0
  112. OR temp.gmv2_sum != 0)
  113. <if test="query.customerName != null and query.customerName != ''">
  114. AND c.customer_name LIKE CONCAT('%', #{query.customerName}, '%')
  115. </if>
  116. <if test="query.customerType != null">
  117. AND c.customer_type = #{query.customerType}
  118. </if>
  119. <if test="query.customerManager != null and query.customerManager != ''">
  120. AND c.customer_manager LIKE CONCAT('%', #{query.customerManager}, '%')
  121. </if>
  122. <if test="query.channelName != null and query.channelName != ''">
  123. AND c.channel_name LIKE CONCAT('%', #{query.channelName}, '%')
  124. </if>
  125. </where>
  126. ORDER BY temp.last_month_income DESC
  127. </select>
  128. <!-- 查询销售报表展示的客户(停用的,有结算额的要展示) -->
  129. <select id="listCustomerWithGmv" resultMap="customerWithGmvMap">
  130. SELECT
  131. c.*,
  132. g.id AS gmv_id,
  133. g.YEAR AS year,
  134. g.MONTH AS month,
  135. g.gmv1 AS gmv1,
  136. g.gmv1_rate AS gmv1_rate,
  137. g.gmv2 AS gmv2,
  138. g.gmv2_rate AS gmv2_rate,
  139. g.renlijia_service_charge_rate AS renlijia_service_charge_rate,
  140. g.income AS income
  141. FROM
  142. wm_af_customer c
  143. LEFT JOIN wm_dept_gmv g ON g.dept_id = c.dept_id
  144. LEFT JOIN
  145. (SELECT dept_id, sum(gmv1) as gmv1_sum, sum(gmv2) as gmv2_sum, sum(CASE `month` WHEN ${endMonth} THEN income ELSE 0 END)
  146. AS last_month_income FROM wm_dept_gmv WHERE `year` = #{year} AND CAST(`month` AS SIGNED INT)
  147. BETWEEN #{startMonth} AND #{endMonth} GROUP BY dept_id) temp
  148. ON temp.dept_id = c.dept_id
  149. <where>
  150. c.dept_id IS NOT NULL
  151. AND (c.customer_status = 'GOING_ONLINE'
  152. OR temp.gmv1_sum != 0
  153. OR temp.gmv2_sum != 0)
  154. AND g.`year` = #{year}
  155. AND CAST(g.`month` AS SIGNED INT) BETWEEN #{startMonth} AND #{endMonth}
  156. <if test="query.customerName != null and query.customerName != ''">
  157. AND c.customer_name LIKE CONCAT('%', #{query.customerName}, '%')
  158. </if>
  159. <if test="query.customerType != null">
  160. AND c.customer_type = #{query.customerType}
  161. </if>
  162. <if test="query.customerManager != null and query.customerManager != ''">
  163. AND c.customer_manager LIKE CONCAT('%', #{query.customerManager}, '%')
  164. </if>
  165. <if test="query.channelName != null and query.channelName != ''">
  166. AND c.channel_name LIKE CONCAT('%', #{query.channelName}, '%')
  167. </if>
  168. </where>
  169. ORDER BY temp.last_month_income DESC
  170. </select>
  171. </mapper>