EsmUserReferrerMapper.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ydtech.modules.esm.dao.EsmUserReferrerMapper">
  6. <resultMap id="SysUserMap" type="com.ydtech.modules.admin.model.SysUser">
  7. </resultMap>
  8. <resultMap id="QueryChannelMap" type="com.ydtech.modules.esm.model.QueryChannel">
  9. </resultMap>
  10. <select id="queryOrderCount" resultType="com.ydtech.modules.esm.model.vo.EsmUserPolicyVO">
  11. select a.id,
  12. a.username,
  13. a.policynum as ordernum,
  14. a.sumpremium as sumpremium,
  15. b.policynum as bjpolicynum,
  16. b.sumpremium as bjsumpremium,
  17. c.policynum as policynum
  18. from (
  19. SELECT
  20. su.id,
  21. su.NAME AS username,
  22. COALESCE ( count( iac.id ), 0 ) AS policynum,
  23. COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
  24. FROM
  25. sys_user su
  26. LEFT JOIN ins_orders io ON io.userid = su.id
  27. AND io.createtime BETWEEN #{startDate} AND #{endDate}
  28. LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
  29. AND iac.orderstatus = 3
  30. WHERE
  31. su.id IN
  32. <foreach item="item" index="index" collection="userList" open="(" separator="," close=")">
  33. #{item}
  34. </foreach>
  35. GROUP BY
  36. su.id,
  37. su.NAME
  38. ) a,
  39. (
  40. SELECT
  41. su.id,
  42. su.NAME AS username,
  43. COALESCE ( count( iac.id ), 0 ) AS policynum,
  44. COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
  45. FROM
  46. sys_user su
  47. LEFT JOIN ins_orders io ON io.userid = su.id
  48. AND io.createtime BETWEEN #{startDate} AND #{endDate}
  49. LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
  50. WHERE
  51. su.id IN
  52. <foreach item="item" index="index" collection="userList" open="(" separator="," close=")">
  53. #{item}
  54. </foreach>
  55. GROUP BY
  56. su.id,
  57. su.NAME
  58. )b,
  59. (
  60. SELECT
  61. su.id,
  62. su.NAME AS username,
  63. COALESCE ( count( iac.id ), 0 ) AS policynum,
  64. COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
  65. FROM
  66. sys_user su
  67. LEFT JOIN ins_orders io ON io.userid = su.id
  68. AND io.createtime BETWEEN #{startDate} AND #{endDate}
  69. LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
  70. AND iac.orderstatus = 2
  71. WHERE
  72. su.id IN
  73. <foreach item="item" index="index" collection="userList" open="(" separator="," close=")">
  74. #{item}
  75. </foreach>
  76. GROUP BY
  77. su.id,
  78. su.NAME
  79. )c
  80. where a.id = b.id and b.id = c.id
  81. </select>
  82. <select id="queryOrderCountHz" resultType="com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO">
  83. SELECT
  84. sum(jqpremium + sypremium + jypremium) sumpremium
  85. FROM
  86. ins_orders io
  87. LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
  88. LEFT JOIN sys_user su ON io.userid = su.id
  89. WHERE
  90. iac.orderstatus = 3
  91. AND io.orderstatus = 3
  92. AND io.createtime BETWEEN #{startDate} AND #{endDate}
  93. AND io.userid in
  94. <foreach item="item" index="index" collection="userList" open="(" separator="," close=")">
  95. #{item}
  96. </foreach>
  97. </select>
  98. <select id="getUserPage" resultMap="SysUserMap">
  99. SELECT
  100. su.*
  101. FROM
  102. esm_user_referrer eur
  103. LEFT JOIN sys_user su ON su.id = eur.id
  104. WHERE
  105. su.id != 'admin'
  106. AND su.STATUS = 1
  107. AND referrer_id IS NOT NULL
  108. <if test="dto.userId != null and dto.userId != ''">
  109. AND su.id = #{dto.userId}
  110. </if>
  111. <if test="dto.name != null and dto.name != ''">
  112. AND su.name = #{dto.name}
  113. </if>
  114. <if test="dto.mobile != null and dto.mobile != ''">
  115. AND su.mobile = #{dto.mobile}
  116. </if>
  117. </select>
  118. <select id="getQueryChannelPage" resultMap="QueryChannelMap">
  119. SELECT
  120. sd.id as deptId,
  121. sd.name as deptName,
  122. sd.address,
  123. count( su.id ) AS count
  124. FROM
  125. sys_dept sd
  126. LEFT JOIN sys_user su ON su.dept_id = sd.id
  127. WHERE
  128. management_source = 1
  129. <if test="queryChannel.deptId != null and queryChannel.deptId != ''">
  130. AND sd.id = #{queryChannel.deptId}
  131. </if>
  132. <if test="queryChannel.deptName != null and queryChannel.deptName != ''">
  133. AND sd.name = #{queryChannel.deptName}
  134. </if>
  135. GROUP BY
  136. sd.id
  137. </select>
  138. <select id="getByTeam" resultType="com.ydtech.modules.admin.model.dto.SysUserTeamDto">
  139. with recursive t1 as (select *
  140. from esm_user_referrer
  141. WHERE referrer_id = #{userId}
  142. and id !=#{userId}
  143. union all
  144. select r1.*
  145. from esm_user_referrer r1
  146. INNER JOIN t1 on t1.id = r1.referrer_id
  147. WHERE r1.level &lt; #{level})
  148. select u.id as id , u.name as name , u.mobile as mobile, u.status as status
  149. from t1
  150. LEFT JOIN sys_user u on t1.id = u.id
  151. where 1=1
  152. <if test="managementQueryVo.criteria != null and managementQueryVo.criteria != ''">
  153. and ( u.id = #{managementQueryVo.criteria}
  154. or u.name = #{managementQueryVo.criteria}
  155. or u.mobile = #{managementQueryVo.criteria})
  156. </if>
  157. <if test="managementQueryVo.authenticationStatus != null and managementQueryVo.authenticationStatus != ''">
  158. AND u.status = #{managementQueryVo.authenticationStatus}
  159. </if>
  160. </select>
  161. <select id="employeeIncreaseReportYear" resultType="com.ydtech.modules.admin.model.dto.EmployeeIncreaseReportDto">
  162. SELECT
  163. CONCAT(YEAR(us.create_time),'-',LPAD(MONTH(us.create_time), 2, '0')) reportDate,
  164. count(0) as employeeIncreaseCount
  165. FROM
  166. esm_user_referrer eur
  167. LEFT JOIN sys_user us ON eur.id = us.id
  168. WHERE
  169. us.create_time &gt;= #{beginTime} and us.create_time &lt;= #{endTime}
  170. <if test="ids != null and ids.size() > 0">
  171. and eur.id in
  172. <foreach collection="ids" item="item" open="(" separator="," close=")">
  173. #{item}
  174. </foreach>
  175. </if>
  176. GROUP BY CONCAT(YEAR(us.create_time),'-',LPAD(MONTH(us.create_time), 2, '0'))
  177. </select>
  178. <select id="employeeIncreaseReportMonth" resultType="com.ydtech.modules.admin.model.dto.EmployeeIncreaseReportDto">
  179. SELECT
  180. CONCAT(YEAR(us.create_time),'-',LPAD(MONTH(us.create_time), 2, '0'),'-',LPAD(Day(us.create_time), 2, '0')) reportDate,
  181. count(0) as employeeIncreaseCount
  182. FROM
  183. esm_user_referrer eur
  184. LEFT JOIN sys_user us ON eur.id = us.id
  185. WHERE
  186. us.create_time &gt;= #{beginTime} and us.create_time &lt;= #{endTime}
  187. <if test="ids != null and ids.size() > 0">
  188. and eur.id in
  189. <foreach collection="ids" item="item" open="(" separator="," close=")">
  190. #{item}
  191. </foreach>
  192. </if>
  193. GROUP BY CONCAT(YEAR(us.create_time),'-',LPAD(MONTH(us.create_time), 2, '0'),'-',LPAD(Day(us.create_time), 2, '0'))
  194. </select>
  195. <select id="employeeIncreaseReportDay" resultType="com.ydtech.modules.admin.model.dto.EmployeeIncreaseReportDto">
  196. SELECT
  197. CONCAT(YEAR ( us.create_time ),'-',LPAD( MONTH ( us.create_time ), 2, '0' ),'-',LPAD( DAY ( us.create_time ), 2, '0' ),' ',LPAD( HOUR ( us.create_time ), 2, '0' ))
  198. reportDate,
  199. count( 0 ) AS employeeIncreaseCount
  200. FROM
  201. esm_user_referrer eur
  202. LEFT JOIN sys_user us ON eur.id = us.id
  203. WHERE
  204. us.create_time &gt;= #{beginTime} and us.create_time &lt;= #{endTime}
  205. <if test="ids != null and ids.size() > 0">
  206. and eur.id in
  207. <foreach collection="ids" item="item" open="(" separator="," close=")">
  208. #{item}
  209. </foreach>
  210. </if>
  211. GROUP BY CONCAT(YEAR ( us.create_time ),'-',LPAD( MONTH ( us.create_time ), 2, '0' ),'-',LPAD( DAY ( us.create_time ), 2, '0' ),' ',LPAD( HOUR ( us.create_time ), 2, '0' ))
  212. </select>
  213. <select id="queryOrderCountForUser" resultType="com.ydtech.modules.esm.model.vo.EsmUserPolicyForUserVO">
  214. select a.companyId as companyId,
  215. a.companyName as companyName,
  216. a.policynum as bjpolicynum,
  217. a.sumpremium as bjsumpremium,
  218. b.policynum as ordernum,
  219. b.sumpremium as sumpremium,
  220. c.policynum as policynum
  221. from (
  222. SELECT
  223. iac.company_id AS companyId,
  224. iac.inscompany AS companyName,
  225. COALESCE ( count( iac.company_id ), 0 ) AS policynum,
  226. COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
  227. FROM
  228. sys_user su
  229. LEFT JOIN ins_orders io ON io.userid = su.id
  230. AND io.createtime BETWEEN #{startDate} AND #{endDate}
  231. LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
  232. WHERE
  233. su.id = #{userId}
  234. GROUP BY
  235. iac.company_id,
  236. iac.inscompany
  237. ) a left join
  238. (
  239. SELECT
  240. iac.company_id AS companyId,
  241. iac.inscompany AS companyName,
  242. COALESCE ( count( iac.company_id ), 0 ) AS policynum,
  243. COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
  244. FROM
  245. sys_user su
  246. LEFT JOIN ins_orders io ON io.userid = su.id
  247. AND io.createtime BETWEEN #{startDate} AND #{endDate}
  248. LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
  249. AND iac.orderstatus = 3
  250. WHERE
  251. su.id = #{userId}
  252. GROUP BY
  253. iac.company_id,
  254. iac.inscompany
  255. )b on a.companyId = b.companyId
  256. left join
  257. (
  258. SELECT
  259. iac.company_id AS companyId,
  260. iac.inscompany AS companyName,
  261. COALESCE ( count( iac.company_id ), 0 ) AS policynum,
  262. COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
  263. FROM
  264. sys_user su
  265. LEFT JOIN ins_orders io ON io.userid = su.id
  266. AND io.createtime BETWEEN #{startDate} AND #{endDate}
  267. LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
  268. AND iac.orderstatus = 2
  269. WHERE
  270. su.id = #{userId}
  271. GROUP BY
  272. iac.company_id,
  273. iac.inscompany
  274. )c on a.companyId = c.companyId
  275. where a.companyId is not null
  276. </select>
  277. </mapper>