PartnerUserMapper.xml 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321
  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.jzg.mapper.PartnerUserMapper">
  4. <resultMap id="BaseMapper" type="com.jzg.entity.param.PartnerRuleEntity">
  5. <id property="id" column="id"/>
  6. <result property="upgrade" column="upgrade"/>
  7. <result property="relegation" column="relegation"/>
  8. <result property="gradeName" column="grade_name"/>
  9. <result property="grade" column="grade"/>
  10. <result property="appraise" column="appraise"/>
  11. <result property="relSatisfy" column="rel_satisfy"/>
  12. <result property="strategy" column="strategy"/>
  13. <result property="khDays" column="kh_days"/>
  14. <result property="fallTick" column="fall_tick"/>
  15. <result property="fallAmount" column="fall_amount"/>
  16. <result property="systemCode" column="system_code"/>
  17. <association property="cycle" column="id=id" select="selectCycle" />
  18. <collection property="strategyArray" column="id=id" select="selectStrategy" />
  19. <collection property="requirement" column="id=id" select="selectRequirement" />
  20. </resultMap>
  21. <resultMap id="partner_attribute" type="com.jzg.entity.PartnerAttribute">
  22. <result property="id" column="id"/>
  23. <result property="min" column="min"/>
  24. <result property="max" column="max"/>
  25. <result property="satisfy" column="satisfy"/>
  26. <result property="ruleId" column="rule_id"/>
  27. <result property="cycle" column="cycle"/>
  28. <result property="requirement" column="requirement"/>
  29. <result property="strategy" column="strategy"/>
  30. <result property="type" column="type"/>
  31. <result property="checked" column="checked"/>
  32. <result property="fixedDays" column="fixed_days"/>
  33. <result property="taskDays" column="task_days"/>
  34. </resultMap>
  35. <select id="queryPage" resultType="com.jzg.entity.vo.PartnerUserVo">
  36. SELECT tb.* FROM (
  37. SELECT
  38. db.`name`,
  39. db.partStatus,
  40. db.mobile,
  41. db.dept_id,
  42. db.grade,
  43. info.user_id,
  44. info.create_by,
  45. info.create_time,
  46. d.`name` deptName,
  47. sa.partner_status AS `status`,
  48. info.referrer_id,
  49. referrer.`name` AS referrerName,
  50. info.leader_id,
  51. leader.`name` AS leaderIdName,
  52. (SELECT sum(pd.extract_fee) FROM partner_premium_details pd WHERE pd.user_id = db.user_id AND pd.is_delete = 0) kickback,
  53. (SELECT sum(distinct pr.sumpremium) FROM partner_premium_details pr WHERE pr.user_id = db.user_id AND pr.is_delete = 0) premium,
  54. ( SELECT GROUP_CONCAT( s.type_attr SEPARATOR ',' ) FROM sys_user_jzg_info_salesman s WHERE s.type_attr in (3,6) and s.sys_user_jzg_info_id = info.id AND s.is_delete = 0 ) AS typeAttr
  55. FROM
  56. (
  57. SELECT
  58. `name`,
  59. `status` as partStatus,
  60. mobile,
  61. user_id,
  62. dept_id,
  63. GROUP_CONCAT(grade ORDER BY grade ASC SEPARATOR ',') AS grade
  64. FROM
  65. partner_user
  66. <where>
  67. is_delete = 0
  68. AND grade BETWEEN 1 AND 4
  69. <if test="queryVo.name != null and queryVo.name != ''">
  70. and (name like concat('%', #{queryVo.name}, '%') or mobile like concat('%', #{queryVo.name}, '%'))
  71. </if>
  72. <if test="queryVo.mobile != null and queryVo.mobile != ''">
  73. and mobile like concat('%', #{queryVo.mobile}, '%')
  74. </if>
  75. <if test="queryVo.userId != null and queryVo.userId != ''">
  76. and user_id like concat('%', #{queryVo.userId}, '%')
  77. </if>
  78. <if test="queryVo.deptId != null and queryVo.deptId != ''">
  79. and dept_id like concat('%', #{queryVo.deptId}, '%')
  80. </if>
  81. <if test="queryVo.deptName != null and queryVo.deptName != ''">
  82. and dept_name like concat('%', #{queryVo.deptName}, '%')
  83. </if>
  84. <if test="queryVo.grade != null and queryVo.grade != ''">
  85. and grade like concat('%', #{queryVo.grade}, '%')
  86. </if>
  87. <if test="queryVo.commissionRate != null and queryVo.commissionRate != ''">
  88. and commission_rate like concat('%', #{queryVo.commissionRate}, '%')
  89. </if>
  90. <if test="queryVo.referrerId != null and queryVo.referrerId != ''">
  91. and referrer_id like concat('%', #{queryVo.referrerId}, '%')
  92. </if>
  93. <if test="queryVo.isEnable != null and queryVo.isEnable != ''">
  94. and status != #{queryVo.isEnable}
  95. </if>
  96. </where>
  97. GROUP BY
  98. `name`,
  99. mobile,
  100. user_id,
  101. dept_id,
  102. `status`
  103. ) db
  104. LEFT JOIN sys_dept d ON d.id = db.dept_id AND d.is_delete = 0
  105. LEFT JOIN sys_user_jzg_info info ON info.id = db.user_id AND info.is_delete = 0
  106. LEFT JOIN sys_user_jzg_info referrer ON referrer.id = info.referrer_id AND referrer.is_delete = 0
  107. LEFT JOIN sys_user_jzg_info leader ON leader.id = info.leader_id AND leader.is_delete = 0
  108. LEFT JOIN sys_user referrerMobile ON referrerMobile.id = referrer.user_id AND referrerMobile.is_delete = 0
  109. LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = db.user_id AND sa.is_delete = 0
  110. <where>
  111. and sa.type_attr = 3
  112. <if test="queryVo.status != null and queryVo.status != ''">
  113. and sa.partner_status = #{queryVo.status}
  114. </if>
  115. <if test="queryVo.deptId != null and queryVo.deptId != ''">
  116. and db.dept_id = #{queryVo.deptId}
  117. </if>
  118. <if test="queryVo.referrerName != null and queryVo.referrerName != ''">
  119. and referrer.name like concat('%', #{queryVo.referrerName}, '%') or referrerMobile.mobile like concat('%', #{queryVo.referrerName}, '%')
  120. </if>
  121. </where>
  122. order by info.create_time desc
  123. ) tb
  124. <where>
  125. <if test="queryVo.typeAttr != null and queryVo.typeAttr != ''">
  126. FIND_IN_SET(#{queryVo.typeAttr}, tb.typeAttr)
  127. </if>
  128. </where>
  129. </select>
  130. <select id="selectRecommender" resultType="java.util.Map">
  131. SELECT
  132. user_id userId,
  133. `name`
  134. FROM
  135. partner_user
  136. <where>
  137. AND is_delete = 0
  138. AND grade = #{level}
  139. </where>
  140. </select>
  141. <select id="selectByUserId" resultType="com.jzg.entity.vo.RelationalVo">
  142. WITH RECURSIVE cte_name AS (
  143. SELECT
  144. p.id,
  145. p.NAME AS userName,
  146. p.mobile,
  147. p.user_id,
  148. p.dept_id,
  149. (SELECT `name` FROM sys_dept d WHERE d.id = p.dept_id AND d.is_delete = 0) AS deptName,
  150. (SELECT name FROM partner_user u WHERE u.user_id = p.referrer_id AND u.is_delete = 0) AS suggestName,
  151. p.grade AS type,
  152. p.referrer_id,
  153. p.create_time
  154. FROM
  155. partner_user p
  156. WHERE p.user_id = #{id} AND grade = #{grade}
  157. UNION ALL
  158. SELECT
  159. pu.id,
  160. pu.NAME AS userName,
  161. pu.mobile,
  162. pu.user_id,
  163. pu.dept_id,
  164. (SELECT `name` FROM sys_dept d WHERE d.id = pu.dept_id AND d.is_delete = 0) AS deptName,
  165. (SELECT name FROM partner_user u WHERE u.user_id = pu.referrer_id AND u.is_delete = 0) AS suggestName,
  166. pu.grade AS type,
  167. pu.referrer_id,
  168. pu.create_time
  169. FROM
  170. partner_user pu
  171. INNER JOIN cte_name rt ON pu.referrer_id = rt.user_id
  172. WHERE pu.grade = (rt.type + 1)
  173. )
  174. SELECT * FROM cte_name
  175. </select>
  176. <select id="selectTodayOverview" resultType="com.jzg.entity.vo.TodayOverview">
  177. SELECT
  178. ifnull((
  179. SELECT COUNT(DISTINCT company_id) FROM partner_premium_details WHERE is_delete = 0 AND status = 1 AND user_id IN
  180. <foreach collection="params.relatedPerList" item="item" index="index" separator="," open="(" close=")">
  181. #{item}
  182. </foreach>
  183. <if test="params.startTime != null and params.endTime != null">
  184. AND create_time BETWEEN #{params.startTime} AND #{params.endTime}
  185. </if>
  186. ),0) numberOrders,
  187. ifnull(
  188. (SELECT count(id) FROM partner_user WHERE is_delete = 0 AND user_id IN
  189. <foreach collection="params.relatedPerList" item="item" index="index" separator="," open="(" close=")">
  190. #{item}
  191. </foreach>
  192. <if test="params.startTime != null and params.endTime != null">
  193. AND create_time BETWEEN #{params.startTime} AND #{params.endTime}
  194. </if> ),0
  195. ) addPerNumber,
  196. ifnull((
  197. SELECT SUM(db.sumpremium) FROM (SELECT DISTINCT company_id,sumpremium FROM partner_premium_details
  198. WHERE is_delete = 0 AND status = 1 AND user_id IN
  199. <foreach collection="params.relatedPerList" item="item" index="index" separator="," open="(" close=")">
  200. #{item}
  201. </foreach>
  202. <if test="params.startTime != null and params.endTime != null">
  203. AND create_time BETWEEN #{params.startTime} AND #{params.endTime}
  204. </if>
  205. ) db
  206. ),0
  207. ) premium,
  208. ifnull(
  209. (SELECT SUM(extract_fee) FROM partner_premium_details where is_delete = 0 AND status = 1 AND user_id = #{params.userId}
  210. <if test="params.startTime != null and params.endTime != null">
  211. AND create_time BETWEEN #{params.startTime} AND #{params.endTime}
  212. </if> ),0
  213. ) commission
  214. </select>
  215. <resultMap id="homeVo" type="com.jzg.entity.vo.TeamOverviewVo">
  216. <result property="grade" column="grade"/>
  217. <result property="gradeName" column="grade_name"/>
  218. </resultMap>
  219. <select id="selectTeamOverview" resultMap="homeVo">
  220. SELECT
  221. grade,
  222. grade_name
  223. FROM
  224. partner_rule
  225. <where>
  226. AND is_delete = 0
  227. AND grade != 5
  228. </where>
  229. </select>
  230. <select id="selectStatisticsMap" resultType="java.util.Map">
  231. SELECT
  232. ifnull(
  233. (
  234. SELECT COUNT( p.id) FROM partner_user p LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p.user_id AND sa.is_delete = 0 WHERE p.is_delete = 0 AND sa.partner_status = 3 AND p.referrer_id = #{params.userId} AND p.grade = (#{grade} + 1)
  235. <if test="params.startTime != null and params.endTime != null">
  236. and DATE(p.create_time) BETWEEN #{params.startTime} AND #{params.endTime}
  237. </if>
  238. ),0
  239. ) v1,
  240. ifnull(
  241. ( SELECT COUNT(p.id) FROM partner_user p LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p.user_id AND sa.is_delete = 0 WHERE p.is_delete = 0 AND sa.partner_status = 3 AND grade = (#{grade} + 2 )
  242. AND p.referrer_id IN( SELECT user_id FROM partner_user WHERE is_delete = 0 AND referrer_id = #{params.userId} AND grade = (#{grade} + 1) )
  243. <if test="params.startTime != null and params.endTime != null">
  244. and DATE(p.create_time) BETWEEN #{params.startTime} AND #{params.endTime}
  245. </if>
  246. ),0
  247. ) v2,
  248. ifnull(
  249. ( SELECT
  250. COUNT( p.id )
  251. FROM
  252. partner_user p
  253. LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p.user_id AND sa.is_delete = 0
  254. WHERE
  255. p.is_delete = 0 AND sa.partner_status = 3
  256. AND p.referrer_id = #{params.userId}
  257. AND p.grade = (#{grade} + 1)
  258. AND to_days(p.create_time) = to_days(now()) ),0
  259. ) v3,
  260. ifnull(
  261. (SELECT
  262. COUNT(u1.id)
  263. FROM
  264. partner_user u1
  265. LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id =u1.user_id AND sa.is_delete = 0
  266. WHERE
  267. u1.is_delete = 0 AND sa.partner_status = 3 and u1.grade = (#{grade} + 2) AND to_days(u1.create_time) = to_days(now()) AND
  268. u1.referrer_id IN (
  269. SELECT
  270. u.user_id
  271. FROM
  272. partner_user u
  273. LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id =u.user_id AND sa.is_delete = 0
  274. WHERE
  275. u.is_delete = 0 AND sa.partner_status = 3 AND
  276. u.grade = (#{grade} + 1)
  277. AND u.referrer_id = #{params.userId}
  278. )),0
  279. ) v4,
  280. ifnull((SELECT sum(sumpremium) FROM partner_premium_details WHERE is_delete = 0 AND status = 1 AND to_days(create_time) = to_days(now()) AND user_id = #{params.userId} and source = #{grade}),0
  281. ) v5,
  282. ifnull(
  283. (SELECT SUM(extract_fee) FROM partner_premium_details WHERE is_delete = 0 AND status = 1 AND source = #{grade} AND to_days(create_time) = to_days(now()) AND user_id = #{params.userId}),0
  284. ) v6
  285. </select>
  286. <select id="selectStatistics" resultType="java.util.Map">
  287. <if test="grade == 1">
  288. SELECT
  289. ifnull(
  290. (SELECT
  291. COUNT( p.id )
  292. FROM
  293. partner_user p
  294. LEFT JOIN sys_user_jzg_info u ON u.id = p.user_id AND u.is_delete = 0
  295. WHERE
  296. p.is_delete = 0 AND u.STATUS = 3
  297. AND p.referrer_id = #{params.userId}
  298. AND p.grade = 2),0
  299. ) v1,
  300. ifnull(
  301. ( SELECT
  302. COUNT(u1.id)
  303. FROM
  304. partner_user u1
  305. LEFT JOIN sys_user_jzg_info u ON u.id = u1.user_id AND u.is_delete = 0
  306. WHERE
  307. u1.is_delete = 0 AND u.`status` = 3 AND u1.grade = 3 AND
  308. u1.referrer_id IN (
  309. SELECT
  310. p.user_id
  311. FROM
  312. partner_user p
  313. LEFT JOIN sys_user_jzg_info u ON u.id = p.user_id AND u.is_delete = 0
  314. WHERE
  315. p.is_delete = 0 AND u.STATUS = 3
  316. AND p.referrer_id = #{params.userId}
  317. AND p.grade = 2
  318. ) ),0
  319. ) v2,
  320. ifnull(
  321. ( SELECT
  322. COUNT( p.id )
  323. FROM
  324. partner_user p
  325. LEFT JOIN sys_user_jzg_info u ON u.id = p.user_id AND u.is_delete = 0
  326. WHERE
  327. p.is_delete = 0 AND u.STATUS = 3
  328. AND p.referrer_id = #{params.userId}
  329. AND p.grade = 2
  330. AND to_days(p.create_time) = to_days(now()) ),0
  331. ) v3,
  332. ifnull(
  333. (SELECT
  334. COUNT(u1.id)
  335. FROM
  336. partner_user u1
  337. LEFT JOIN sys_user_jzg_info u ON u.id = u1.user_id AND u.is_delete = 0
  338. WHERE
  339. u1.is_delete = 0 AND u.`status` = 3 and u1.grade = 3 AND to_days(u1.create_time) = to_days(now()) AND
  340. u1.referrer_id IN (
  341. SELECT
  342. u.user_id
  343. FROM
  344. partner_user u
  345. LEFT JOIN sys_user_jzg_info t ON t.id = u.user_id AND t.is_delete = 0
  346. WHERE
  347. t.`status` = 3 AND
  348. u.grade = 2
  349. AND u.referrer_id = #{params.userId}
  350. )),0
  351. ) v4
  352. </if>
  353. <if test="grade == 2">
  354. SELECT
  355. IFNULL((
  356. SELECT COUNT(1)
  357. FROM partner_user pu
  358. LEFT JOIN sys_user su ON su.id = pu.user_id AND su.is_delete = 0
  359. WHERE pu.is_delete = 0
  360. AND pu.grade = 3
  361. AND pu.referrer_id = #{params.userId}
  362. ), 0) AS v1,
  363. IFNULL((
  364. SELECT COUNT(1)
  365. FROM partner_user pu
  366. LEFT JOIN sys_user su ON su.id = pu.user_id AND su.is_delete = 0
  367. LEFT JOIN sys_user_jzg_info jzg ON jzg.id = pu.user_id AND jzg.is_delete = 0
  368. WHERE pu.is_delete = 0
  369. AND pu.grade = 4
  370. AND jzg.`status` = 3
  371. AND pu.referrer_id IN (
  372. SELECT pu2.user_id
  373. FROM partner_user pu2
  374. LEFT JOIN sys_user_jzg_info jzg2 ON jzg2.id = pu2.user_id AND jzg2.is_delete = 0
  375. WHERE pu2.is_delete = 0
  376. AND pu2.referrer_id = #{params.userId}
  377. AND pu2.grade = 3
  378. AND jzg2.`status` = 3
  379. )
  380. ), 0) AS v2,
  381. IFNULL((
  382. SELECT COUNT(1)
  383. FROM partner_user pu
  384. LEFT JOIN sys_user su ON su.id = pu.user_id AND su.is_delete = 0
  385. WHERE pu.is_delete = 0
  386. AND pu.grade = 3
  387. AND pu.referrer_id = #{params.userId}
  388. AND TO_DAYS(pu.create_time) = TO_DAYS(NOW())
  389. ), 0) AS v3,
  390. IFNULL((
  391. SELECT COUNT(1)
  392. FROM partner_user pu
  393. LEFT JOIN sys_user su ON su.id = pu.user_id AND su.is_delete = 0
  394. WHERE pu.is_delete = 0
  395. AND pu.grade = 4
  396. AND TO_DAYS(pu.create_time) = TO_DAYS(NOW())
  397. AND pu.referrer_id IN (
  398. SELECT user_id
  399. FROM partner_user pu2
  400. LEFT JOIN sys_user su2 ON su2.id = pu2.user_id AND su2.is_delete = 0
  401. WHERE pu2.is_delete = 0
  402. AND pu2.grade = 3
  403. AND pu2.referrer_id = #{params.userId}
  404. )
  405. ), 0) AS v4,
  406. IFNULL((
  407. SELECT SUM(sumpremium)
  408. FROM partner_premium_details pd
  409. WHERE pd.is_delete = 0
  410. AND pd.status = 1
  411. AND TO_DAYS(pd.create_time) = TO_DAYS(NOW())
  412. AND pd.user_id = #{params.userId}
  413. AND pd.source = #{grade}
  414. ), 0) AS v5,
  415. IFNULL((
  416. SELECT SUM(extract_fee)
  417. FROM partner_premium_details pd
  418. WHERE pd.is_delete = 0
  419. AND pd.status = 1
  420. AND TO_DAYS(pd.create_time) = TO_DAYS(NOW())
  421. AND pd.user_id = #{params.userId}
  422. AND pd.source = #{grade}
  423. ), 0) AS v6
  424. </if>
  425. <if test="grade == 3">
  426. SELECT
  427. IFNULL((
  428. SELECT COUNT(1)
  429. FROM partner_user pu
  430. LEFT JOIN sys_user su
  431. ON su.id = pu.user_id AND su.is_delete = 0
  432. WHERE pu.is_delete = 0
  433. AND pu.grade = 4
  434. AND pu.referrer_id = #{params.userId}
  435. ), 0) AS v1,
  436. IFNULL((
  437. SELECT COUNT(1)
  438. FROM partner_user pu
  439. LEFT JOIN sys_user su
  440. ON su.id = pu.user_id AND su.is_delete = 0
  441. LEFT JOIN sys_user_jzg_info jzg
  442. ON jzg.id = pu.user_id AND jzg.is_delete = 0
  443. WHERE pu.is_delete = 0
  444. AND pu.grade = 5
  445. AND jzg.`status` = 3
  446. AND pu.referrer_id IN (
  447. SELECT pu2.user_id
  448. FROM partner_user pu2
  449. LEFT JOIN sys_user_jzg_info jzg2
  450. ON jzg2.id = pu2.user_id AND jzg2.is_delete = 0
  451. WHERE pu2.is_delete = 0
  452. AND pu2.referrer_id = #{params.userId}
  453. AND pu2.grade = 4
  454. AND jzg2.`status` = 3
  455. )
  456. ), 0) AS v2,
  457. IFNULL((
  458. SELECT COUNT(1)
  459. FROM partner_user pu
  460. LEFT JOIN sys_user su
  461. ON su.id = pu.user_id AND su.is_delete = 0
  462. WHERE pu.is_delete = 0
  463. AND pu.grade = 4
  464. AND pu.referrer_id = #{params.userId}
  465. AND TO_DAYS(pu.create_time) = TO_DAYS(NOW())
  466. ), 0) AS v3,
  467. IFNULL((
  468. SELECT COUNT(1)
  469. FROM partner_user pu
  470. LEFT JOIN sys_user su
  471. ON su.id = pu.user_id AND su.is_delete = 0
  472. WHERE pu.is_delete = 0
  473. AND pu.grade = 5
  474. AND TO_DAYS(pu.create_time) = TO_DAYS(NOW())
  475. AND pu.referrer_id IN (
  476. SELECT pu2.user_id
  477. FROM partner_user pu2
  478. LEFT JOIN sys_user su2
  479. ON su2.id = pu2.user_id AND su2.is_delete = 0
  480. WHERE pu2.is_delete = 0
  481. AND pu2.grade = 4
  482. AND pu2.referrer_id = #{params.userId}
  483. )
  484. ), 0) AS v4,
  485. IFNULL((
  486. SELECT SUM(pd.sumpremium)
  487. FROM partner_premium_details pd
  488. WHERE pd.is_delete = 0
  489. AND pd.status = 1
  490. AND TO_DAYS(pd.create_time) = TO_DAYS(NOW())
  491. AND pd.user_id = #{params.userId}
  492. AND pd.source = #{grade}
  493. ), 0) AS v5,
  494. IFNULL((
  495. SELECT SUM(pd.extract_fee)
  496. FROM partner_premium_details pd
  497. WHERE pd.is_delete = 0
  498. AND pd.status = 1
  499. AND TO_DAYS(pd.create_time) = TO_DAYS(NOW())
  500. AND pd.user_id = #{params.userId}
  501. AND pd.source = #{grade}
  502. ), 0) AS v6
  503. </if>
  504. <if test="grade == 4">
  505. SELECT
  506. IFNULL((
  507. SELECT COUNT(1)
  508. FROM partner_user pu
  509. LEFT JOIN sys_user su
  510. ON su.id = pu.user_id AND su.is_delete = 0
  511. WHERE pu.is_delete = 0
  512. AND pu.grade = 5
  513. AND pu.referrer_id = #{params.userId}
  514. ), 0) AS v1,
  515. IFNULL((
  516. SELECT COUNT(1)
  517. FROM partner_user pu
  518. LEFT JOIN sys_user su
  519. ON su.id = pu.user_id AND su.is_delete = 0
  520. LEFT JOIN sys_user_jzg_info jzg
  521. ON jzg.id = pu.user_id AND jzg.is_delete = 0
  522. WHERE pu.is_delete = 0
  523. AND pu.grade = 6
  524. AND jzg.`status` = 3
  525. AND pu.referrer_id IN (
  526. SELECT pu2.user_id
  527. FROM partner_user pu2
  528. LEFT JOIN sys_user_jzg_info jzg2
  529. ON jzg2.id = pu2.user_id AND jzg2.is_delete = 0
  530. WHERE pu2.is_delete = 0
  531. AND pu2.referrer_id = #{params.userId}
  532. AND pu2.grade = 5
  533. AND jzg2.`status` = 3
  534. )
  535. ), 0) AS v2,
  536. IFNULL((
  537. SELECT COUNT(1)
  538. FROM partner_user pu
  539. LEFT JOIN sys_user su
  540. ON su.id = pu.user_id AND su.is_delete = 0
  541. WHERE pu.is_delete = 0
  542. AND pu.grade = 5
  543. AND pu.referrer_id = #{params.userId}
  544. AND TO_DAYS(pu.create_time) = TO_DAYS(NOW())
  545. ), 0) AS v3,
  546. IFNULL((
  547. SELECT COUNT(1)
  548. FROM partner_user pu
  549. LEFT JOIN sys_user su
  550. ON su.id = pu.user_id AND su.is_delete = 0
  551. WHERE pu.is_delete = 0
  552. AND pu.grade = 6
  553. AND TO_DAYS(pu.create_time) = TO_DAYS(NOW())
  554. AND pu.referrer_id IN (
  555. SELECT pu2.user_id
  556. FROM partner_user pu2
  557. LEFT JOIN sys_user su2
  558. ON su2.id = pu2.user_id AND su2.is_delete = 0
  559. WHERE pu2.is_delete = 0
  560. AND pu2.grade = 5
  561. AND pu2.referrer_id = #{params.userId}
  562. )
  563. ), 0) AS v4,
  564. IFNULL((
  565. SELECT SUM(pd.sumpremium)
  566. FROM partner_premium_details pd
  567. WHERE pd.is_delete = 0
  568. AND pd.status = 1
  569. AND pd.source = #{grade}
  570. AND pd.user_id = #{params.userId}
  571. AND TO_DAYS(pd.create_time) = TO_DAYS(NOW())
  572. ), 0) AS v5,
  573. IFNULL((
  574. SELECT SUM(pd.extract_fee)
  575. FROM partner_premium_details pd
  576. WHERE pd.is_delete = 0
  577. AND pd.status = 1
  578. AND pd.source = #{grade}
  579. AND pd.user_id = #{params.userId}
  580. AND TO_DAYS(pd.create_time) = TO_DAYS(NOW())
  581. ), 0) AS v6
  582. </if>
  583. </select>
  584. <resultMap id="SelectUserVo" type="com.jzg.entity.vo.SelectUserVo">
  585. <result property="grade" column="grade"/>
  586. <result property="gradeName" column="grade_name"/>
  587. <result property="userId" column="userId"/>
  588. <collection property="userVoList" column="{userId = userId,grade = grade}" select="userVoList" />
  589. </resultMap>
  590. <resultMap id="UserVoListVo" type="com.jzg.entity.vo.MyUserVo">
  591. <result property="userName" column="userName"/>
  592. <result property="userId" column="userId"/>
  593. <result property="grade" column="grade"/>
  594. <association property="partnerTotal" column="{userId = userId}" select="selectPartnerTotal" />
  595. </resultMap>
  596. <select id="userVoList" resultMap="UserVoListVo" >
  597. SELECT
  598. p.`name` AS userName,
  599. p.user_id AS userId,
  600. #{grade} AS grade
  601. FROM partner_user p
  602. LEFT JOIN sys_user_jzg_info t
  603. ON t.user_id = p.user_id
  604. AND t.is_delete = 0
  605. AND t.`status` = 3
  606. <where>
  607. p.is_delete = 0
  608. AND p.grade = #{grade}
  609. AND p.referrer_id = #{userId}
  610. </where>
  611. </select>
  612. <select id="selectUser" resultMap="SelectUserVo">
  613. select grade,grade_name,#{userId} as userId from partner_rule
  614. <where>
  615. is_delete = 0
  616. AND grade = #{grade}
  617. </where>
  618. </select>
  619. <!-- 该sql不能使用 -->
  620. <select id="selectPartnerTotal" resultType="java.util.Map">
  621. SELECT (
  622. SELECT
  623. COUNT(p1.user_id)
  624. FROM
  625. partner_user p1
  626. LEFT JOIN sys_user u ON u.id = p1.user_id AND u.is_delete = 0
  627. WHERE
  628. p1.is_delete = 0
  629. AND u.STATUS = 1
  630. AND p1.referrer_id = #{userId}
  631. ) partnerSum,
  632. (
  633. SELECT
  634. (
  635. COALESCE ( SUM( jq_premium ), 0 ) + COALESCE ( SUM( sy_premium ), 0 ) + COALESCE ( SUM( no_premium ), 0 )) AS total_sum
  636. FROM
  637. ins_fee_order_new
  638. WHERE
  639. is_delete = 0
  640. AND user_id IN (
  641. SELECT
  642. p1.user_id AS userId
  643. FROM
  644. partner_user p1
  645. LEFT JOIN sys_user u ON u.id = p1.user_id AND u.is_delete = 0
  646. WHERE
  647. p1.is_delete = 0
  648. AND u.STATUS = 1
  649. AND p1.referrer_id = #{userId}
  650. )
  651. ) premium,
  652. (
  653. SELECT COUNT(1) FROM partner_user WHERE is_delete = 0
  654. ) commission
  655. </select>
  656. <select id="userCountIdsVo" resultType="java.lang.Integer">
  657. SELECT count(p1.id)
  658. FROM partner_user p1
  659. LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p1.user_id AND sa.is_delete = 0
  660. <where>
  661. p1.is_delete = 0
  662. AND sa.partner_status = 3
  663. <if test="params != null">
  664. <if test="params.timeFrame != null and params.timeFrame.length > 0">
  665. AND p1.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
  666. </if>
  667. <if test="params.countCycle != null">
  668. <if test="params.countCycle == 'Day'">
  669. AND DATE(p1.create_time) = CURDATE()
  670. </if>
  671. <if test="params.countCycle == 'Week'">
  672. AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;= date(p1.create_time)
  673. </if>
  674. <if test="params.countCycle == 'Month'">
  675. AND YEAR(p1.create_time) = YEAR(CURDATE()) AND MONTH(p1.create_time) = MONTH(CURDATE())
  676. </if>
  677. </if>
  678. </if>
  679. <if test="ids != null and ids.size() > 0">
  680. AND p1.user_id in
  681. <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
  682. #{item}
  683. </foreach>
  684. </if>
  685. </where>
  686. </select>
  687. <select id="userCountVo" resultType="java.lang.Integer">
  688. WITH RECURSIVE sub_partners AS (
  689. SELECT p1.id, p1.user_id,p1.grade
  690. FROM partner_user p1
  691. LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p1.user_id AND sa.is_delete = 0
  692. WHERE p1.is_delete = 0 AND sa.partner_status = 3 AND p1.referrer_id = #{userId} and p1.grade = #{grade}
  693. <if test="params != null">
  694. <if test="params.timeFrame != null and params.timeFrame.length > 0">
  695. AND p1.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
  696. </if>
  697. <if test="params.countCycle != null">
  698. <if test="params.countCycle == 'Day'">
  699. AND DATE(p1.create_time) = CURDATE()
  700. </if>
  701. <if test="params.countCycle == 'Week'">
  702. AND YEARWEEK(p1.create_time, 1) = YEARWEEK(CURDATE(), 1)
  703. </if>
  704. <if test="params.countCycle == 'Month'">
  705. AND YEAR(p1.create_time) = YEAR(CURDATE()) AND MONTH(p1.create_time) = MONTH(CURDATE())
  706. </if>
  707. </if>
  708. </if>
  709. UNION ALL
  710. SELECT p.id, p.user_id,p.grade
  711. FROM partner_user p
  712. LEFT JOIN sys_user_jzg_info_salesman u1 ON u1.sys_user_jzg_info_id = p.user_id AND u1.is_delete = 0
  713. INNER JOIN sub_partners sp ON p.referrer_id = sp.user_id
  714. WHERE p.is_delete = 0 AND u1.partner_status = 3 AND p.grade = (sp.grade + 1)
  715. <if test="params != null">
  716. <if test="params.timeFrame != null and params.timeFrame.length > 0">
  717. AND p.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
  718. </if>
  719. <if test="params.countCycle != null">
  720. <if test="params.countCycle == 'Day'">
  721. AND DATE(p.create_time) = CURDATE()
  722. </if>
  723. <if test="params.countCycle == 'Week'">
  724. AND YEARWEEK(p.create_time, 1) = YEARWEEK(CURDATE(), 1)
  725. </if>
  726. <if test="params.countCycle == 'Month'">
  727. AND YEAR(p.create_time) = YEAR(CURDATE()) AND MONTH(p.create_time) = MONTH(CURDATE())
  728. </if>
  729. </if>
  730. </if>
  731. )
  732. SELECT count(1) AS total FROM sub_partners
  733. </select>
  734. <select id="selectJuniorList" resultType="java.lang.String">
  735. SELECT
  736. p.user_id
  737. FROM
  738. partner_user p
  739. LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p.user_id AND sa.is_delete = 0
  740. <where>
  741. p.is_delete = 0
  742. AND sa.partner_status = 3
  743. AND p.grade = #{grade}
  744. AND p.referrer_id in
  745. <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
  746. #{item}
  747. </foreach>
  748. <if test="params != null">
  749. <if test="params.timeFrame != null and params.timeFrame.length > 0">
  750. AND p.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
  751. </if>
  752. <if test="params.countCycle != null">
  753. <if test="params.countCycle == 'Day'">
  754. AND DATE(p.create_time) = CURDATE()
  755. </if>
  756. <if test="params.countCycle == 'Week'">
  757. AND YEARWEEK(p.create_time, 1) = YEARWEEK(CURDATE(), 1)
  758. </if>
  759. <if test="params.countCycle == 'Month'">
  760. AND DATE_SUB(CURDATE(), INTERVAL 30 DAY) &lt;= date(p.create_time)
  761. </if>
  762. </if>
  763. </if>
  764. </where>
  765. </select>
  766. <select id="userCountVo2" resultType="com.jzg.entity.vo.SummaryStatisticsVo">
  767. SELECT
  768. DATE_FORMAT( p.create_time, '%Y-%m-%d' ) AS createTime,
  769. count( p.id ) AS total
  770. FROM
  771. partner_user p
  772. <where>
  773. p.is_delete = 0
  774. AND p.user_id in
  775. <foreach collection="userId" item="item" index="index" separator="," open="(" close=")">
  776. #{item}
  777. </foreach>
  778. <if test="params != null">
  779. <if test="params.timeFrame != null and params.timeFrame.length > 0">
  780. AND p.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
  781. </if>
  782. <if test="params.countCycle != null">
  783. <if test="params.countCycle == 'Day'">
  784. AND DATE(p.create_time) = CURDATE()
  785. </if>
  786. <if test="params.countCycle == 'Week'">
  787. AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;= date(p.create_time)
  788. </if>
  789. <if test="params.countCycle == 'Month'">
  790. AND YEAR(p.create_time) = YEAR(CURDATE()) AND MONTH(p.create_time) = MONTH(CURDATE())
  791. </if>
  792. </if>
  793. </if>
  794. </where>
  795. GROUP BY
  796. createTime
  797. </select>
  798. <select id="selectJuniorListUser" resultType="com.jzg.entity.PartnerUser">
  799. SELECT
  800. p.id,
  801. p.user_id,
  802. p.`name`,
  803. p.grade
  804. FROM
  805. partner_user p
  806. LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = p.user_id AND sa.is_delete = 0
  807. <where>
  808. p.is_delete = 0
  809. AND sa.partner_status = 3
  810. and p.grade = #{grade}
  811. AND p.referrer_id in
  812. <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
  813. #{item}
  814. </foreach>
  815. <if test="params != null">
  816. <if test="params.timeFrame != null and params.timeFrame.length > 0">
  817. AND p.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
  818. </if>
  819. <if test="params.countCycle != null">
  820. <if test="params.countCycle == 'Day'">
  821. AND DATE(p.create_time) = CURDATE()
  822. </if>
  823. <if test="params.countCycle == 'Week'">
  824. AND YEARWEEK(p.create_time, 1) = YEARWEEK(CURDATE(), 1)
  825. </if>
  826. <if test="params.countCycle == 'Month'">
  827. AND YEAR(p.create_time) = YEAR(CURDATE()) AND MONTH(create_time) = MONTH(CURDATE())
  828. </if>
  829. </if>
  830. </if>
  831. </where>
  832. </select>
  833. <select id="selectByReferrerId" resultType="com.jzg.entity.vo.RelationalVo">
  834. SELECT
  835. p.id,
  836. p.NAME AS userName,
  837. p.mobile,
  838. p.user_id,
  839. p.dept_id,
  840. (SELECT `name` FROM sys_dept d WHERE d.id = p.dept_id AND d.is_delete = 0) AS deptName,
  841. (SELECT `name` FROM sys_user_jzg_info u WHERE u.id = p.referrer_id AND u.is_delete = 0) AS suggestName,
  842. p.grade AS type,
  843. p.referrer_id,
  844. p.create_time
  845. FROM
  846. partner_user p
  847. LEFT JOIN sys_user_jzg_info u ON u.id = p.user_id AND u.is_delete = 0
  848. <where>
  849. p.is_delete = 0
  850. AND p.referrer_id = #{userId}
  851. AND p.grade = #{grade}
  852. </where>
  853. </select>
  854. <select id="selectQuerySuperiors" resultType="com.jzg.entity.vo.RelationalVo">
  855. SELECT
  856. p.id,
  857. p.NAME AS userName,
  858. p.mobile,
  859. p.user_id,
  860. p.dept_id,
  861. (SELECT `name` FROM sys_dept d WHERE d.id = p.dept_id AND d.is_delete = 0) AS deptName,
  862. (SELECT username FROM sys_user u WHERE u.id = p.referrer_id AND u.is_delete = 0) AS suggestName,
  863. p.grade AS type,
  864. p.referrer_id,
  865. p.create_time
  866. FROM
  867. partner_user p
  868. LEFT JOIN sys_user_jzg_info u ON u.id = p.user_id AND u.is_delete = 0
  869. <where>
  870. p.is_delete = 0
  871. AND p.user_id = #{userId}
  872. AND p.grade = #{grade}
  873. </where>
  874. </select>
  875. <select id="myPerformanceTotal" resultType="com.alibaba.fastjson.JSONObject">
  876. select
  877. (select count(DISTINCT company_id) from partner_premium_details WHERE is_delete = 0 AND user_id in
  878. <foreach collection="list" item="item" index="index" separator="," open="(" close=")">
  879. #{item}
  880. </foreach>
  881. <if test="map.startTime != '' and map.startTime != null">
  882. and DATE(create_time) BETWEEN #{map.startTime} AND #{map.endTime}
  883. </if>
  884. ) numberOrders,
  885. IFNULL((
  886. SELECT SUM(db.sumpremium) FROM (
  887. SELECT sumpremium FROM partner_premium_details WHERE is_delete = 0 AND user_id in
  888. <foreach collection="list" item="item" index="index" separator="," open="(" close=")">
  889. #{item}
  890. </foreach>
  891. <if test="map.startTime != '' and map.startTime != null">
  892. and DATE(create_time) BETWEEN #{map.startTime} AND #{map.endTime}
  893. </if>
  894. GROUP BY issuer_id,sumpremium ) db
  895. ),0
  896. ) totalPremium,
  897. IFNULL((
  898. SELECT SUM(extract_fee) FROM partner_premium_details WHERE is_delete = 0 AND user_id = #{map.userId}
  899. <if test="map.startTime != '' and map.startTime != null">
  900. and DATE(create_time) BETWEEN #{map.startTime} AND #{map.endTime}
  901. </if>
  902. ),0
  903. ) commission
  904. </select>
  905. <select id="queryDataList" resultType="com.alibaba.fastjson.JSONObject">
  906. SELECT
  907. orderno ordersNo,
  908. licenseno carId,
  909. issuer_name agent,
  910. sumpremium premium,
  911. extract_fee commission,
  912. create_time issuanceTime,
  913. source,
  914. user_id userId,
  915. app_status appStatus
  916. FROM
  917. partner_premium_details
  918. <where>
  919. is_delete = 0
  920. AND status = 1
  921. AND user_id = #{map.userId}
  922. and source = #{map.grade}
  923. <if test="map.startTime != '' and map.startTime != null">
  924. and DATE(create_time) BETWEEN #{map.startTime} AND #{map.endTime}
  925. </if>
  926. <if test="map.appStatus != null">
  927. and app_status = #{map.appStatus}
  928. </if>
  929. </where>
  930. </select>
  931. <select id="selectNumber" resultType="java.lang.Integer">
  932. SELECT COUNT(1) FROM (
  933. SELECT
  934. p.user_id,
  935. p.grade,
  936. p.referrer_id,
  937. sa.partner_status,
  938. sa.partner_review_time AS approve_time
  939. FROM
  940. partner_user p
  941. LEFT JOIN sys_user_jzg_info_salesman sa ON p.user_id = sa.sys_user_jzg_info_id AND sa.is_delete = 0
  942. WHERE p.is_delete = 0 AND sa.type_attr = 3 AND sa.partner_status = 3 AND p.referrer_id = #{userId} AND p.grade = #{number}
  943. <if test="param != null and param != ''">
  944. AND p.user_id != #{param}
  945. </if>
  946. ) db
  947. <where>
  948. <if test="period.startDate != null and period.endDate != null">
  949. db.approve_time BETWEEN #{period.startDate} AND #{period.endDate}
  950. </if>
  951. </where>
  952. </select>
  953. <select id="selectNumber4" resultType="java.lang.Integer">
  954. SELECT
  955. COUNT( p.user_id )
  956. FROM
  957. partner_user p
  958. LEFT JOIN sys_user_jzg_info t ON t.user_id = p.user_id AND t.is_delete = 0
  959. <where>
  960. p.is_delete = 0
  961. AND t.`status` = 3
  962. AND grade = #{number}
  963. <if test="period.startDate != null and period.endDate != null">
  964. AND t.approve_time BETWEEN #{period.startDate} AND #{period.endDate}
  965. </if>
  966. AND p.referrer_id = #{userId}
  967. </where>
  968. </select>
  969. <select id="selectByUserIdNumber" resultType="java.lang.Integer">
  970. SELECT
  971. COUNT( p.user_id )
  972. FROM
  973. partner_user p
  974. LEFT JOIN sys_user_jzg_info t ON t.user_id = p.user_id AND t.is_delete = 0
  975. <where>
  976. p.is_delete = 0
  977. AND t.`status` = 3
  978. AND grade = #{number}
  979. <if test="period.startDate != null and period.endDate != null">
  980. AND t.approve_time BETWEEN #{period.startDate} AND #{period.endDate}
  981. </if>
  982. AND p.referrer_id = #{userId}
  983. </where>
  984. </select>
  985. <select id="queryUser" resultType="com.jzg.entity.PartnerUser">
  986. SELECT * from partner_user
  987. <where>
  988. is_delete = 0
  989. AND user_id = #{referrerId}
  990. AND grade = #{grade}
  991. </where>
  992. </select>
  993. <select id="queryByUserId" resultType="com.jzg.entity.PartnerUser">
  994. SELECT * from partner_user
  995. <where>
  996. is_delete = 0
  997. AND grade &lt; 5
  998. AND user_id = #{referrerId}
  999. </where>
  1000. order by grade desc
  1001. </select>
  1002. <select id="assessment" resultType="java.lang.Integer">
  1003. SELECT
  1004. COUNT( 1 ) AS total_count
  1005. FROM
  1006. partner_user u
  1007. LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = u.user_id AND sa.is_delete = 0
  1008. <where>
  1009. u.is_delete = 0
  1010. AND sa.type_attr = 3
  1011. AND sa.partner_status = 3
  1012. AND u.grade = #{grade}
  1013. AND u.referrer_id = #{userId}
  1014. <if test="period.startDate != null and period.endDate != null">
  1015. AND sa.partner_review_time BETWEEN #{period.startDate} AND #{period.endDate}
  1016. </if>
  1017. </where>
  1018. </select>
  1019. <select id="querySuperiors" resultType="java.lang.String">
  1020. WITH RECURSIVE cte_name AS (
  1021. SELECT
  1022. user_id,
  1023. referrer_id,
  1024. grade
  1025. FROM
  1026. partner_user
  1027. WHERE
  1028. is_delete = 0
  1029. AND user_id = #{userId}
  1030. AND grade = #{original}
  1031. UNION ALL
  1032. SELECT
  1033. t.user_id,
  1034. t.referrer_id,
  1035. t.grade
  1036. FROM
  1037. partner_user t
  1038. INNER JOIN cte_name ON t.user_id = cte_name.referrer_id
  1039. WHERE
  1040. t.is_delete = 0
  1041. AND t.grade = (cte_name.grade - 1)
  1042. )
  1043. SELECT user_id FROM cte_name where grade = #{grade};
  1044. </select>
  1045. <select id="querySubordinateUserId" resultType="java.lang.String">
  1046. WITH RECURSIVE cte_name AS (
  1047. SELECT
  1048. user_id,
  1049. referrer_id,
  1050. grade
  1051. FROM partner_user
  1052. WHERE is_delete = 0 AND referrer_id = #{levelUserId} AND grade = '5'
  1053. UNION ALL
  1054. SELECT
  1055. t.user_id,
  1056. t.referrer_id,
  1057. t.grade
  1058. FROM partner_user t INNER JOIN cte_name ON t.referrer_id = cte_name.user_id
  1059. WHERE t.is_delete = 0 AND t.grade = (cte_name.grade + 1)
  1060. )
  1061. SELECT user_id FROM cte_name
  1062. </select>
  1063. <select id="querySubordinate" resultType="java.lang.String">
  1064. WITH RECURSIVE cte_name AS (
  1065. SELECT
  1066. user_id,
  1067. referrer_id,
  1068. grade
  1069. FROM partner_user
  1070. WHERE is_delete = 0 AND referrer_id IN(SELECT user_id FROM partner_user WHERE is_delete = 0 AND referrer_id = #{levelUserId} AND grade = '4') AND grade = '5'
  1071. UNION ALL
  1072. SELECT
  1073. t.user_id,
  1074. t.referrer_id,
  1075. t.grade
  1076. FROM partner_user t INNER JOIN cte_name ON t.referrer_id = cte_name.user_id
  1077. WHERE t.is_delete = 0 AND t.grade = (cte_name.grade + 1)
  1078. )
  1079. SELECT user_id FROM cte_name
  1080. </select>
  1081. <select id="getLevelAllUserId" resultType="java.lang.String">
  1082. WITH RECURSIVE cte_name AS (
  1083. SELECT
  1084. user_id,
  1085. referrer_id,
  1086. grade
  1087. FROM partner_user
  1088. WHERE is_delete = 0 AND user_id = #{userId} AND grade = (SELECT min(grade) FROM partner_user WHERE is_delete = 0 AND user_id = #{userId})
  1089. UNION ALL
  1090. SELECT
  1091. t.user_id,
  1092. t.referrer_id,
  1093. t.grade
  1094. FROM partner_user t INNER JOIN cte_name ON t.referrer_id = cte_name.user_id
  1095. WHERE t.is_delete = 0 AND t.grade = (cte_name.grade + 1)
  1096. )
  1097. SELECT DISTINCT user_id FROM cte_name WHERE grade &lt; 5
  1098. </select>
  1099. <select id="queryUserRuleVo" resultType="com.jzg.entity.vo.UserRuleVo">
  1100. SELECT (
  1101. SELECT COUNT(1) FROM partner_user WHERE is_delete = 0 AND referrer_id = '99140105M36001' AND grade = '4'
  1102. ) AS invitationsNumber,
  1103. (
  1104. SELECT SUM(db.sumpremium) FROM (
  1105. SELECT DISTINCT orderno,sumpremium FROM partner_premium_details WHERE is_delete = 0 AND (user_id,source) IN (
  1106. WITH RECURSIVE cte_name AS (
  1107. SELECT
  1108. user_id,
  1109. referrer_id,
  1110. grade,
  1111. CAST(user_id AS CHAR(1000)) AS path
  1112. FROM
  1113. partner_user
  1114. WHERE
  1115. is_delete = 0
  1116. AND user_id = '99140105M36001' and grade = 1
  1117. UNION ALL
  1118. SELECT
  1119. t.user_id,
  1120. t.referrer_id,
  1121. t.grade,
  1122. CONCAT(cte_name.path, ',', t.user_id) AS path
  1123. FROM
  1124. partner_user t
  1125. INNER JOIN cte_name ON t.referrer_id = cte_name.user_id AND t.grade = (cte_name.grade + 1)
  1126. WHERE
  1127. t.is_delete = 0
  1128. AND FIND_IN_SET(t.user_id, cte_name.path) = 0
  1129. )
  1130. SELECT user_id,grade FROM cte_name
  1131. )
  1132. ) db
  1133. ) AS memberPremium,
  1134. (
  1135. SELECT SUM(da.sumpremium) FROM (
  1136. SELECT DISTINCT orderno,sumpremium FROM partner_premium_details WHERE is_delete = 0 AND user_id = '99140105M36001'
  1137. ) da
  1138. ) AS yourPremium
  1139. </select>
  1140. <select id="selectOwnSumPremium" resultType="java.math.BigDecimal">
  1141. SELECT SUM(db.sumpremium) AS premium FROM (
  1142. SELECT DISTINCT orderno,sumpremium FROM partner_premium_details WHERE is_delete = 0 AND status = 1 AND user_id IN(
  1143. SELECT user_id FROM partner_user WHERE is_delete = 0 AND user_id IN(
  1144. SELECT id FROM sys_user WHERE is_delete = 0 AND identity = (SELECT identity FROM sys_user WHERE is_delete = 0 AND id = #{userId})
  1145. ) AND grade > 4
  1146. )
  1147. <if test="period.startDate != null and period.endDate != null">
  1148. AND create_time BETWEEN #{period.startDate} AND #{period.endDate}
  1149. </if>
  1150. ) db
  1151. </select>
  1152. <select id="subordinateMembersInsurancePremiums" resultType="java.math.BigDecimal">
  1153. SELECT SUM(db.sumpremium) FROM (
  1154. SELECT DISTINCT orderno,sumpremium FROM partner_premium_details WHERE is_delete = 0 AND status = 1 AND user_id IN(
  1155. WITH RECURSIVE cte_name AS (
  1156. SELECT user_id,referrer_id, grade FROM partner_user WHERE is_delete = 0 and user_id = #{userId} AND grade = #{grade}
  1157. UNION ALL
  1158. SELECT t.user_id, t.referrer_id, t.grade FROM partner_user t
  1159. INNER JOIN cte_name ON t.referrer_id = cte_name.user_id
  1160. WHERE t.is_delete = 0 and t.grade = (cte_name.grade + 1)
  1161. ) SELECT DISTINCT user_id FROM cte_name WHERE user_id != #{userId} )
  1162. <if test="period.startDate != null and period.endDate != null">
  1163. AND create_time BETWEEN #{period.startDate} AND #{period.endDate}
  1164. </if>
  1165. ) db
  1166. </select>
  1167. <select id="partnerDetails" resultType="com.jzg.entity.vo.PartnerDetailsVo">
  1168. SELECT
  1169. info.*,
  1170. referrer.`name` AS referrerName,
  1171. leader.`name` AS leaderIdName,
  1172. (SELECT
  1173. GROUP_CONCAT(p.grade SEPARATOR ',')
  1174. FROM
  1175. partner_user p
  1176. WHERE
  1177. p.is_delete = 0
  1178. AND p.user_id = info.user_id) AS gradeList
  1179. FROM
  1180. sys_user_jzg_info info
  1181. LEFT JOIN sys_user_jzg_info_salesman s ON s.sys_user_jzg_info_id = info.id AND s.is_delete = 0
  1182. LEFT JOIN sys_user_jzg_info referrer ON referrer.user_id = info.referrer_id AND referrer.is_delete = 0
  1183. LEFT JOIN sys_user_jzg_info leader ON leader.user_id = info.leader_id AND leader.is_delete = 0
  1184. <where>
  1185. info.is_delete = 0
  1186. AND s.type_attr = 3
  1187. and info.user_id = #{userId}
  1188. </where>
  1189. </select>
  1190. <select id="selectLoginList" resultType="com.jzg.entity.PartnerUser">
  1191. SELECT id,grade,user_id FROM partner_user
  1192. <where>
  1193. is_delete = 0
  1194. AND user_id = #{userId}
  1195. AND grade &lt; 5
  1196. </where>
  1197. </select>
  1198. <select id="queryAppUserInfoVoByUserId" resultType="com.jzg.entity.vo.AppUserInfoVo">
  1199. SELECT
  1200. u.id user_id,u.mobile,info.id as userInfoId
  1201. FROM
  1202. sys_user u
  1203. LEFT JOIN sys_user_jzg_info info ON info.user_id = u.id AND info.is_delete = 0
  1204. <where>
  1205. u.is_delete = 0
  1206. AND u.id = #{userId}
  1207. </where>
  1208. </select>
  1209. <select id="selectListByUserId" resultType="com.jzg.entity.PartnerUser">
  1210. SELECT * FROM partner_user
  1211. <where>
  1212. is_delete = 0
  1213. AND user_id = (
  1214. SELECT
  1215. info.id
  1216. FROM sys_user_jzg_info info
  1217. INNER JOIN sys_user_jzg_info_salesman sa
  1218. ON sa.sys_user_jzg_info_id = info.id AND sa.is_delete = 0
  1219. WHERE
  1220. info.is_delete = 0
  1221. AND sa.type_attr = 3
  1222. AND sa.partner_status = 3
  1223. AND info.user_id = #{userId}
  1224. )
  1225. </where>
  1226. </select>
  1227. <select id="selectFee" resultType="com.jzg.entity.vo.SysPartnerAccount">
  1228. SELECT
  1229. COALESCE(SUM(CASE WHEN 1=1 THEN extract_fee END), 0) AS totalAmount,
  1230. COALESCE(SUM(CASE WHEN 1=1 THEN history_fee END), 0) AS transferAmount,
  1231. COALESCE(SUM(CASE WHEN 1=1 THEN expired_amount END), 0) AS expiredAmount,
  1232. COALESCE(SUM(CASE WHEN 1=1 THEN cash_fee - expired_amount END), 0) AS unreportedAmount
  1233. FROM partner_partner_account
  1234. <where>
  1235. is_delete = 0
  1236. AND user_id = (
  1237. SELECT
  1238. info.id
  1239. FROM
  1240. sys_user_jzg_info info
  1241. INNER JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = info.id AND sa.is_delete = 0
  1242. WHERE
  1243. info.is_delete = 0
  1244. AND sa.type_attr = 3
  1245. AND sa.partner_status = 3
  1246. AND info.user_id = #{userId}
  1247. )
  1248. </where>
  1249. </select>
  1250. <select id="distinctSystemCode" resultType="java.lang.String">
  1251. SELECT DISTINCT system_code FROM partner_user
  1252. <where>
  1253. is_delete = 0
  1254. AND system_code is not null
  1255. AND system_code != ''
  1256. </where>
  1257. </select>
  1258. </mapper>