EsmUserReferrerMapper.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422
  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="queryOrderCountHzNew" resultType="com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO">
  99. SELECT
  100. sum(iac.sumpremium) sumpremium
  101. FROM
  102. ins_orders io
  103. LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
  104. LEFT JOIN sys_user su ON io.userid = su.id
  105. WHERE
  106. iac.orderstatus = 3
  107. AND io.orderstatus = 3
  108. <if test="startDate !=null and startDate !='' and endDate!=null and endDate!='' ">
  109. AND io.createtime BETWEEN #{startDate} AND #{endDate}
  110. </if>
  111. AND io.userid in
  112. <foreach item="item" index="index" collection="userList" open="(" separator="," close=")">
  113. #{item}
  114. </foreach>
  115. </select>
  116. <select id="getUserPage" resultMap="SysUserMap">
  117. SELECT
  118. su.*
  119. FROM
  120. esm_user_referrer eur
  121. LEFT JOIN sys_user su ON su.id = eur.id
  122. WHERE
  123. su.id != 'admin'
  124. AND su.STATUS = 1
  125. AND referrer_id IS NOT NULL
  126. <if test="dto.userId != null and dto.userId != ''">
  127. AND su.id = #{dto.userId}
  128. </if>
  129. <if test="dto.name != null and dto.name != ''">
  130. AND su.name = #{dto.name}
  131. </if>
  132. <if test="dto.mobile != null and dto.mobile != ''">
  133. AND su.mobile = #{dto.mobile}
  134. </if>
  135. </select>
  136. <select id="getQueryChannelPage" resultMap="QueryChannelMap">
  137. SELECT
  138. sd.id as deptId,
  139. sd.name as deptName,
  140. sd.address,
  141. count( su.id ) AS count
  142. FROM
  143. sys_dept sd
  144. LEFT JOIN sys_user su ON su.dept_id = sd.id
  145. WHERE
  146. management_source = 1
  147. <if test="queryChannel.deptId != null and queryChannel.deptId != ''">
  148. AND sd.id = #{queryChannel.deptId}
  149. </if>
  150. <if test="queryChannel.deptName != null and queryChannel.deptName != ''">
  151. AND sd.name = #{queryChannel.deptName}
  152. </if>
  153. GROUP BY
  154. sd.id
  155. </select>
  156. <select id="getByTeam" resultType="com.ydtech.modules.admin.model.dto.SysUserTeamDto">
  157. with recursive t1 as (select *
  158. from esm_user_referrer
  159. WHERE referrer_id = #{userId}
  160. and id !=#{userId}
  161. union all
  162. select r1.*
  163. from esm_user_referrer r1
  164. INNER JOIN t1 on t1.id = r1.referrer_id
  165. WHERE r1.level &lt; #{level})
  166. select u.id as id , u.name as name , u.mobile as mobile, u.status as status
  167. from t1
  168. LEFT JOIN sys_user u on t1.id = u.id
  169. where 1=1
  170. <if test="managementQueryVo.criteria != null and managementQueryVo.criteria != ''">
  171. and ( u.id = #{managementQueryVo.criteria}
  172. or u.name = #{managementQueryVo.criteria}
  173. or u.mobile = #{managementQueryVo.criteria})
  174. </if>
  175. <if test="managementQueryVo.authenticationStatus != null and managementQueryVo.authenticationStatus != ''">
  176. AND u.status = #{managementQueryVo.authenticationStatus}
  177. </if>
  178. </select>
  179. <select id="employeeIncreaseReportYear" resultType="com.ydtech.modules.admin.model.dto.EmployeeIncreaseReportDto">
  180. SELECT
  181. CONCAT(YEAR(us.create_time),'-',LPAD(MONTH(us.create_time), 2, '0')) reportDate,
  182. count(0) as employeeIncreaseCount
  183. FROM
  184. esm_user_referrer eur
  185. LEFT JOIN sys_user us ON eur.id = us.id
  186. WHERE
  187. us.create_time &gt;= #{beginTime} and us.create_time &lt;= #{endTime}
  188. <if test="ids != null and ids.size() > 0">
  189. and eur.id in
  190. <foreach collection="ids" item="item" open="(" separator="," close=")">
  191. #{item}
  192. </foreach>
  193. </if>
  194. GROUP BY CONCAT(YEAR(us.create_time),'-',LPAD(MONTH(us.create_time), 2, '0'))
  195. </select>
  196. <select id="employeeIncreaseReportMonth" resultType="com.ydtech.modules.admin.model.dto.EmployeeIncreaseReportDto">
  197. SELECT
  198. CONCAT(YEAR(us.create_time),'-',LPAD(MONTH(us.create_time), 2, '0'),'-',LPAD(Day(us.create_time), 2, '0')) 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'))
  212. </select>
  213. <select id="employeeIncreaseReportDay" resultType="com.ydtech.modules.admin.model.dto.EmployeeIncreaseReportDto">
  214. SELECT
  215. 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' ))
  216. reportDate,
  217. count( 0 ) AS employeeIncreaseCount
  218. FROM
  219. esm_user_referrer eur
  220. LEFT JOIN sys_user us ON eur.id = us.id
  221. WHERE
  222. us.create_time &gt;= #{beginTime} and us.create_time &lt;= #{endTime}
  223. <if test="ids != null and ids.size() > 0">
  224. and eur.id in
  225. <foreach collection="ids" item="item" open="(" separator="," close=")">
  226. #{item}
  227. </foreach>
  228. </if>
  229. 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' ))
  230. </select>
  231. <select id="queryOrderCountForUser" resultType="com.ydtech.modules.esm.model.vo.EsmUserPolicyForUserVO">
  232. select a.companyId as companyId,
  233. a.companyName as companyName,
  234. a.policynum as bjpolicynum,
  235. a.sumpremium as bjsumpremium,
  236. b.policynum as ordernum,
  237. b.sumpremium as sumpremium,
  238. c.policynum as policynum
  239. from (
  240. SELECT
  241. iac.company_id AS companyId,
  242. iac.inscompany AS companyName,
  243. COALESCE ( count( iac.company_id ), 0 ) AS policynum,
  244. COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
  245. FROM
  246. sys_user su
  247. LEFT JOIN ins_orders io ON io.userid = su.id
  248. AND io.createtime BETWEEN #{startDate} AND #{endDate}
  249. LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
  250. WHERE
  251. su.id = #{userId}
  252. GROUP BY
  253. iac.company_id,
  254. iac.inscompany
  255. ) a left join
  256. (
  257. SELECT
  258. iac.company_id AS companyId,
  259. iac.inscompany AS companyName,
  260. COALESCE ( count( iac.company_id ), 0 ) AS policynum,
  261. COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
  262. FROM
  263. sys_user su
  264. LEFT JOIN ins_orders io ON io.userid = su.id
  265. AND io.createtime BETWEEN #{startDate} AND #{endDate}
  266. LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
  267. AND iac.orderstatus = 3
  268. WHERE
  269. su.id = #{userId}
  270. GROUP BY
  271. iac.company_id,
  272. iac.inscompany
  273. )b on a.companyId = b.companyId
  274. left join
  275. (
  276. SELECT
  277. iac.company_id AS companyId,
  278. iac.inscompany AS companyName,
  279. COALESCE ( count( iac.company_id ), 0 ) AS policynum,
  280. COALESCE ( sum( jqpremium + sypremium + jypremium ), 0 ) AS sumpremium
  281. FROM
  282. sys_user su
  283. LEFT JOIN ins_orders io ON io.userid = su.id
  284. AND io.createtime BETWEEN #{startDate} AND #{endDate}
  285. LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
  286. AND iac.orderstatus = 2
  287. WHERE
  288. su.id = #{userId}
  289. GROUP BY
  290. iac.company_id,
  291. iac.inscompany
  292. )c on a.companyId = c.companyId
  293. where a.companyId is not null
  294. </select>
  295. <select id="getbyUserNextLevel" resultType="com.ydtech.modules.admin.model.dto.EsmUserReferrerDTO">
  296. SELECT
  297. eur.id as "id",
  298. eur.level as "level",
  299. su.name as "userName",
  300. eur.referrer_id as "referrerId"
  301. FROM
  302. esm_user_referrer eur
  303. LEFT JOIN sys_user su ON su.id = eur.id
  304. <where>
  305. su.id != 'admin'
  306. AND su.STATUS = 1
  307. AND referrer_id IS NOT NULL
  308. <if test="userId !=null and userId !=''">
  309. AND eur.referrer_id =#{userId}
  310. </if>
  311. </where>
  312. </select>
  313. <select id="getUserLevel" resultType="com.ydtech.modules.admin.model.dto.EsmUserReferrerDTO">
  314. SELECT
  315. eur.id as "id",
  316. eur.level as "level",
  317. eur.affiliation as "affiliation",
  318. eur.referrer_id as "referrerId",
  319. su.status as "status",
  320. su.name as "userName"
  321. FROM
  322. esm_user_referrer eur
  323. LEFT JOIN sys_user su ON su.id = eur.id
  324. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  325. <where>
  326. su.id != 'admin'
  327. AND su.STATUS = 1
  328. AND referrer_id IS NOT NULL
  329. <if test="vo.userId !=null and vo.userId !=''">
  330. AND eur.referrer_id =#{vo.userId}
  331. </if>
  332. <if test="vo.level !=null and vo.level !=''">
  333. AND eur.level =#{vo.level}
  334. </if>
  335. <if test="vo.managementSource !=null and vo.managementSource !=''">
  336. AND sd.management_source =#{vo.managementSource}
  337. </if>
  338. <if test="vo.ids != null and vo.ids.size()>0 ">
  339. AND eur.referrer_id IN
  340. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  341. #{item}
  342. </foreach>
  343. </if>
  344. <if test="vo.provinceId != null and vo.provinceId != ''">
  345. and sd.id like concat('%',#{vo.provinceId},'%')
  346. </if>
  347. <if test="vo.cityId != null and vo.cityId != ''">
  348. and sd.id like concat('%',#{vo.cityId},'%')
  349. </if>
  350. <if test="vo.countyId != null and vo.countyId != ''">
  351. and sd.id like concat('%',#{vo.countyId},'%')
  352. </if>
  353. <if test="vo.houseId != null and vo.houseId != ''">
  354. and sd.id like concat('%',#{vo.houseId},'%')
  355. </if>
  356. <if test="vo.deptId != null and vo.deptId != ''">
  357. and sd.id like concat('%',#{vo.deptId},'%')
  358. </if>
  359. </where>
  360. </select>
  361. <select id="getUserIdsByUserId" resultType="com.ydtech.modules.admin.model.dto.SysUserTeamDto">
  362. with recursive t1 as (select *
  363. from esm_user_referrer
  364. WHERE referrer_id =#{userId}
  365. and id !=#{userId}
  366. union all
  367. select r1.*
  368. from esm_user_referrer r1
  369. INNER JOIN t1 on t1.id = r1.referrer_id
  370. )
  371. select u.id as id , u.name as name , u.mobile as mobile, u.status as status
  372. from t1
  373. LEFT JOIN sys_user u on t1.id = u.id
  374. WHERE u.id is not null
  375. </select>
  376. <select id="getByTeamByLevel" resultType="com.ydtech.modules.admin.model.dto.SysUserTeamDto">
  377. with recursive t1 as (select *
  378. from esm_user_referrer
  379. WHERE referrer_id = #{userId}
  380. and id !=#{userId}
  381. union all
  382. select r1.*
  383. from esm_user_referrer r1
  384. INNER JOIN t1 on t1.id = r1.referrer_id
  385. <where>
  386. <if test="level != null and level != ''">
  387. r1.level = #{level}
  388. </if>
  389. </where>
  390. )
  391. select u.id as id , u.name as name , u.mobile as mobile, u.status as status
  392. from t1
  393. LEFT JOIN sys_user u on t1.id = u.id
  394. <where>
  395. u.id is not null
  396. <if test="status != null and status != ''">
  397. AND u.status = #{status}
  398. </if>
  399. </where>
  400. </select>
  401. </mapper>