PartnerUserMapper.xml 51 KB

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