KuaishouRuleSettlementDataMapper.xml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ruixuan.isc.mapper.KuaishouRuleSettlementDataMapper">
  6. <resultMap type="com.ruixuan.isc.entity.KuaishouRuleSettlementData" id="KuaishouRuleSettlementDataResult">
  7. <result property="id" column="id"/>
  8. <result property="ruleId" column="rule_id"/>
  9. <result property="ruleType" column="rule_type"/>
  10. <result property="ruleName" column="rule_name"/>
  11. <result property="sonRuleId" column="son_rule_id"/>
  12. <result property="relateId" column="relate_id"/>
  13. <result property="itemIds" column="item_ids"/>
  14. <result property="promoterId" column="promoter_id"/>
  15. <result property="promoterName" column="promoter_name"/>
  16. <result property="itemCreateId" column="item_create_id"/>
  17. <result property="itemCreateName" column="item_create_name"/>
  18. <result property="promoterCreateId" column="promoter_create_id"/>
  19. <result property="promoterCreateName" column="promoter_create_name"/>
  20. <result property="orderNum" column="order_num"/>
  21. <result property="validOrderNum" column="valid_order_num"/>
  22. <result property="yesterdayOrderNum" column="yesterday_order_num"/>
  23. <result property="yesterdayValidOrderNum" column="yesterday_valid_order_num"/>
  24. <result property="statDate" column="stat_date"/>
  25. <result property="anchorAmount" column="anchor_amount"/>
  26. <result property="referenceAmount" column="reference_amount"/>
  27. <result property="settlementStatus" column="settlement_status"/>
  28. <result property="createTime" column="create_time"/>
  29. <result property="updateTime" column="update_time"/>
  30. </resultMap>
  31. <sql id="selectKuaishouRuleSettlementDataVo">
  32. select id, rule_id, rule_type,rule_name, son_rule_id, relate_id, item_ids, promoter_id, promoter_name, item_create_id, item_create_name, promoter_create_id, promoter_create_name, order_num, valid_order_num, yesterday_order_num, yesterday_valid_order_num, stat_date, anchor_amount, reference_amount, settlement_status, create_time, update_time from kuaishou_rule_settlement_data
  33. </sql>
  34. <select id="selectKuaishouRuleSettlementDataList" parameterType="com.ruixuan.isc.entity.KuaishouRuleSettlementData"
  35. resultMap="KuaishouRuleSettlementDataResult">
  36. <include refid="selectKuaishouRuleSettlementDataVo"/>
  37. <where>
  38. <if test="ruleId != null ">and rule_id = #{ruleId}</if>
  39. <if test="ruleName != null ">and rule_name like concat('%', #{ruleName}, '%')</if>
  40. <if test="sonRuleId != null ">and son_rule_id = #{sonRuleId}</if>
  41. <if test="relateId != null ">and relate_id = #{relateId}</if>
  42. <if test="itemIds != null and itemIds != ''">and item_ids = #{itemIds}</if>
  43. <if test="promoterId != null ">and promoter_id = #{promoterId}</if>
  44. <if test="promoterName != null and promoterName != ''">and promoter_name like concat('%', #{promoterName},
  45. '%')
  46. </if>
  47. <if test="itemCreateId != null ">and item_create_id = #{itemCreateId}</if>
  48. <if test="itemCreateName != null and itemCreateName != ''">and item_create_name like concat('%',
  49. #{itemCreateName}, '%')
  50. </if>
  51. <if test="promoterCreateId != null ">and promoter_create_id = #{promoterCreateId}</if>
  52. <if test="promoterCreateName != null and promoterCreateName != ''">and promoter_create_name like
  53. concat('%', #{promoterCreateName}, '%')
  54. </if>
  55. <if test="orderNum != null ">and order_num = #{orderNum}</if>
  56. <if test="validOrderNum != null ">and valid_order_num = #{validOrderNum}</if>
  57. <if test="yesterdayOrderNum != null ">and yesterday_order_num = #{yesterdayOrderNum}</if>
  58. <if test="yesterdayValidOrderNum != null ">and yesterday_valid_order_num = #{yesterdayValidOrderNum}</if>
  59. <if test="statDate != null ">and stat_date = #{statDate}</if>
  60. <if test="anchorAmount != null ">and anchor_amount = #{anchorAmount}</if>
  61. <if test="referenceAmount != null ">and reference_amount = #{referenceAmount}</if>
  62. <if test="settlementStatus != null ">and settlement_status = #{settlementStatus}</if>
  63. </where>
  64. </select>
  65. <select id="selectKuaishouRuleSettlementDataById" parameterType="java.lang.Long"
  66. resultMap="KuaishouRuleSettlementDataResult">
  67. <include refid="selectKuaishouRuleSettlementDataVo"/>
  68. where id = #{id}
  69. </select>
  70. <insert id="insertKuaishouRuleSettlementData" parameterType="com.ruixuan.isc.entity.KuaishouRuleSettlementData">
  71. insert into kuaishou_rule_settlement_data
  72. <trim prefix="(" suffix=")" suffixOverrides=",">
  73. <if test="id != null">id,</if>
  74. <if test="ruleId != null">rule_id,</if>
  75. <if test="ruleType != null">rule_type,</if>
  76. <if test="ruleName != null">rule_name,</if>
  77. <if test="sonRuleId != null">son_rule_id,</if>
  78. <if test="relateId != null">relate_id,</if>
  79. <if test="itemIds != null">item_ids,</if>
  80. <if test="promoterId != null">promoter_id,</if>
  81. <if test="promoterName != null">promoter_name,</if>
  82. <if test="itemCreateId != null">item_create_id,</if>
  83. <if test="itemCreateName != null">item_create_name,</if>
  84. <if test="promoterCreateId != null">promoter_create_id,</if>
  85. <if test="promoterCreateName != null">promoter_create_name,</if>
  86. <if test="orderNum != null">order_num,</if>
  87. <if test="validOrderNum != null">valid_order_num,</if>
  88. <if test="yesterdayOrderNum != null">yesterday_order_num,</if>
  89. <if test="yesterdayValidOrderNum != null">yesterday_valid_order_num,</if>
  90. <if test="statDate != null">stat_date,</if>
  91. <if test="anchorAmount != null">anchor_amount,</if>
  92. <if test="referenceAmount != null">reference_amount,</if>
  93. <if test="settlementStatus != null">settlement_status,</if>
  94. <if test="createTime != null">create_time,</if>
  95. <if test="updateTime != null">update_time,</if>
  96. </trim>
  97. <trim prefix="values (" suffix=")" suffixOverrides=",">
  98. <if test="id != null">#{id},</if>
  99. <if test="ruleId != null">#{ruleId},</if>
  100. <if test="ruleType != null">#{ruleType},</if>
  101. <if test="ruleName != null">#{ruleName},</if>
  102. <if test="sonRuleId != null">#{sonRuleId},</if>
  103. <if test="relateId != null">#{relateId},</if>
  104. <if test="itemIds != null">#{itemIds},</if>
  105. <if test="promoterId != null">#{promoterId},</if>
  106. <if test="promoterName != null">#{promoterName},</if>
  107. <if test="itemCreateId != null">#{itemCreateId},</if>
  108. <if test="itemCreateName != null">#{itemCreateName},</if>
  109. <if test="promoterCreateId != null">#{promoterCreateId},</if>
  110. <if test="promoterCreateName != null">#{promoterCreateName},</if>
  111. <if test="orderNum != null">#{orderNum},</if>
  112. <if test="validOrderNum != null">#{validOrderNum},</if>
  113. <if test="yesterdayOrderNum != null">#{yesterdayOrderNum},</if>
  114. <if test="yesterdayValidOrderNum != null">#{yesterdayValidOrderNum},</if>
  115. <if test="statDate != null">#{statDate},</if>
  116. <if test="anchorAmount != null">#{anchorAmount},</if>
  117. <if test="referenceAmount != null">#{referenceAmount},</if>
  118. <if test="settlementStatus != null">#{settlementStatus},</if>
  119. <if test="createTime != null">#{createTime},</if>
  120. <if test="updateTime != null">#{updateTime},</if>
  121. </trim>
  122. </insert>
  123. <update id="updateKuaishouRuleSettlementData" parameterType="com.ruixuan.isc.entity.KuaishouRuleSettlementData">
  124. update kuaishou_rule_settlement_data
  125. <trim prefix="SET" suffixOverrides=",">
  126. <if test="ruleId != null">rule_id = #{ruleId},</if>
  127. <if test="ruleType != null">rule_type = #{ruleType},</if>
  128. <if test="ruleName != null">rule_name = #{ruleName},</if>
  129. <if test="sonRuleId != null">son_rule_id = #{sonRuleId},</if>
  130. <if test="relateId != null">relate_id = #{relateId},</if>
  131. <if test="itemIds != null">item_ids = #{itemIds},</if>
  132. <if test="promoterId != null">promoter_id = #{promoterId},</if>
  133. <if test="promoterName != null">promoter_name = #{promoterName},</if>
  134. <if test="itemCreateId != null">item_create_id = #{itemCreateId},</if>
  135. <if test="itemCreateName != null">item_create_name = #{itemCreateName},</if>
  136. <if test="promoterCreateId != null">promoter_create_id = #{promoterCreateId},</if>
  137. <if test="promoterCreateName != null">promoter_create_name = #{promoterCreateName},</if>
  138. <if test="orderNum != null">order_num = #{orderNum},</if>
  139. <if test="validOrderNum != null">valid_order_num = #{validOrderNum},</if>
  140. <if test="yesterdayOrderNum != null">yesterday_order_num = #{yesterdayOrderNum},</if>
  141. <if test="yesterdayValidOrderNum != null">yesterday_valid_order_num = #{yesterdayValidOrderNum},</if>
  142. <if test="statDate != null">stat_date = #{statDate},</if>
  143. <if test="anchorAmount != null">anchor_amount = #{anchorAmount},</if>
  144. <if test="referenceAmount != null">reference_amount = #{referenceAmount},</if>
  145. <if test="settlementStatus != null">settlement_status = #{settlementStatus},</if>
  146. <if test="createTime != null">create_time = #{createTime},</if>
  147. <if test="updateTime != null">update_time = #{updateTime},</if>
  148. </trim>
  149. where id = #{id}
  150. </update>
  151. <update id="updatePromoterStatus">
  152. update kuaishou_rule_settlement_data set settlement_status = #{status}
  153. where promoter_id = #{promoterId}
  154. and stat_date = #{statDate}
  155. and settlement_status = 2
  156. </update>
  157. <delete id="deleteKuaishouRuleSettlementDataById" parameterType="java.lang.Long">
  158. delete from kuaishou_rule_settlement_data where id = #{id}
  159. </delete>
  160. <delete id="deleteKuaishouRuleSettlementDataByIds" parameterType="java.lang.String">
  161. delete from kuaishou_rule_settlement_data where id in
  162. <foreach item="id" collection="array" open="(" separator="," close=")">
  163. #{id}
  164. </foreach>
  165. </delete>
  166. <select id="data" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
  167. select * from (
  168. select t1.relate_id as 'relateId',
  169. 1 as 'ruleId',
  170. group_concat(t1.item_id) as 'itemIds',
  171. t1.promoter_id as 'promoterId',
  172. t1.promoter_name as 'promoterName',
  173. t1.item_create_id as 'itemCreateId',
  174. t1.item_create_name as 'itemCreateName',
  175. t1.promoter_create_id as 'promoterCreateId',
  176. t1.promoter_create_name as 'promoterCreateName',
  177. ifnull(sum(t1.order_num),0) as 'orderNum',
  178. ifnull(sum(t1.valid_order_num),0 ) as 'validOrderNum',
  179. ifnull(sum(t1.yesterday_order_num),0 ) as 'yesterdayOrderNum',
  180. ifnull(sum(t1.yesterday_valid_order_num),0) as 'yesterdayValidOrderNum',
  181. t1.stat_date as 'statDate'
  182. from kuaishou_rule_order_data t1
  183. left join kuaishou_item_list t2 on t1.item_id = t2.item_id
  184. where t1.stat_date = #{statDate}
  185. and t2.rule_id is null
  186. and t1.relate_id is not null
  187. group by t1.relate_id, t1.promoter_id ) t order by t.validOrderNum
  188. </select>
  189. <select id="getRuleList" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
  190. select
  191. id as 'id',
  192. rule_id as 'ruleId',
  193. start_item_count as 'startItemCount',
  194. end_item_count as 'endItemCount',
  195. anchor_amount as 'anchorAmount',
  196. reference_amount as 'referenceAmount',
  197. sort_count as 'sortCount'
  198. from kuaishou_rule_detail where rule_id = #{ruleId}
  199. </select>
  200. <select id="lastRule" resultType="com.alibaba.fastjson.JSONObject">
  201. select son_rule_id as 'sonRuleId',
  202. (select sort_count from kuaishou_rule_detail where id = t1.son_rule_id) as 'sortCount',
  203. IFNULL(valid_order_num,0) as 'validOrderNum'
  204. from kuaishou_rule_settlement_data t1
  205. where 1 = 1
  206. <if test="relateId != null and relateId != ''">
  207. and relate_id = #{relateId}
  208. </if>
  209. and promoter_id = #{promoterId}
  210. and rule_id = #{ruleId}
  211. and settlement_status != 1
  212. order by create_time desc limit 1
  213. </select>
  214. <select id="getTotalAmount" resultType="com.alibaba.fastjson.JSONObject">
  215. select
  216. ifnull(sum(anchor_amount),0) as 'anchorAmount',
  217. ifnull(sum(reference_amount),0) as 'referenceAmount'
  218. from kuaishou_rule_detail
  219. where rule_id = #{ruleId}
  220. and sort_count &gt; #{lastSortCount}
  221. and sort_count &lt;= #{currentSortCount}
  222. </select>
  223. <select id="selectIncentiveLog" resultType="java.lang.Integer">
  224. select ifnull(incentive_count,0) from kuaishou_rule_incentive_log where relate_id = #{relateId}
  225. and promoter_id = #{promoterId} order by create_time desc limit 1
  226. </select>
  227. <select id="selectPromoterIncentiveLog" resultType="java.lang.Integer" parameterType="java.lang.Long">
  228. select ifnull(incentive_count,0) from kuaishou_protomer_rule_incentive_log where promoter_id = #{promoterId} order by create_time desc limit 1
  229. </select>
  230. <insert id="replaceIncentiveLog">
  231. replace into kuaishou_rule_incentive_log (
  232. relate_id,
  233. promoter_id,
  234. rule_id,
  235. incentive_count,
  236. last_incentive_count
  237. ) values (
  238. #{relateId},
  239. #{promoterId},
  240. #{ruleId},
  241. #{incentivizedCount},
  242. #{lastIncentivizedCount}
  243. )
  244. </insert>
  245. <insert id="replacePromoterIncentiveLog">
  246. replace into kuaishou_protomer_rule_incentive_log (
  247. promoter_id,
  248. rule_id,
  249. incentive_count,
  250. last_incentive_count
  251. ) values (
  252. #{promoterId},
  253. #{ruleId},
  254. #{incentivizedCount},
  255. #{lastIncentivizedCount}
  256. )
  257. </insert>
  258. <select id="getTotalByCountAndRuleId" resultType="com.alibaba.fastjson.JSONObject">
  259. select
  260. ifnull(round(sum(anchor_amount) * #{incentivizedCount}, 2),0) as 'anchorAmount',
  261. ifnull(round(sum(reference_amount) * #{incentivizedCount}, 2) ,0) as 'referenceAmount'
  262. from kuaishou_rule_detail where rule_id = #{ruleId}
  263. </select>
  264. <select id="getMaxRuleCountByRuleId" resultType="java.lang.Integer" parameterType="java.lang.Long">
  265. select max(sort_count) from kuaishou_rule_detail where rule_id = #{ruleId}
  266. </select>
  267. <select id="getSettlementDate" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
  268. <!-- select t.* from (
  269. select
  270. promoter_id as 'promoterId',
  271. promoter_name as 'promoterName',
  272. sum(anchor_amount) as 'anchorAmount',
  273. sum(reference_amount) as 'referenceAmount'
  274. from kuaishou_rule_settlement_data
  275. where stat_date = #{statDate}
  276. and settlement_status != 3
  277. <if test="promoterId != null and promoterId != '' ">
  278. and promoter_id = #{promoterId}
  279. </if>
  280. <if test="promoterName != null and promoterName != '' ">
  281. AND promoter_name LIKE CONCAT('%', #{promoterName}, '%')
  282. </if>
  283. group by promoter_id) t order by t.anchorAmount desc-->
  284. select t.*, t2.item_title as 'itemName'
  285. from (select id as 'id',
  286. rule_name as 'ruleName',
  287. item_ids as 'itemIds',
  288. substring_index(item_ids, ',', 1) as 'itemId',
  289. promoter_id as 'promoterId',
  290. promoter_name as 'promoterName',
  291. order_num as 'orderNum',
  292. valid_order_num as 'validOrderNum',
  293. last_settlement_order_num as 'lastSettlementOrderNum',
  294. anchor_amount as 'anchorAmount',
  295. reference_amount as 'referenceAmount',
  296. settlement_status as 'settlementStatus',
  297. (
  298. case
  299. when settlement_status = 1 then '未达到结算规则'
  300. when settlement_status = 2 then '待结算'
  301. when settlement_status = 3 then '已结算'
  302. else '-'
  303. end
  304. ) as 'settlementStatusDesc'
  305. from kuaishou_rule_settlement_data t1
  306. where t1.stat_date = #{statDate}
  307. and settlement_status >= 2
  308. and anchor_amount > 0
  309. <if test="promoterId != null and promoterId != '' ">
  310. and t1.promoter_id = #{promoterId}
  311. </if>
  312. <if test="promoterName != null and promoterName != '' ">
  313. AND t1.promoter_name LIKE CONCAT('%', #{promoterName}, '%')
  314. </if>
  315. ) t
  316. left join kuaishou_item_list t2 on t.itemId = t2.item_id
  317. order by t.settlementStatus asc
  318. </select>
  319. <select id="getPromoterSettlementDetail" resultType="com.alibaba.fastjson.JSONObject">
  320. select
  321. id as 'id',
  322. rule_id as 'ruleId',
  323. rule_name as 'ruleName',
  324. son_rule_id as 'sonRuleId',
  325. item_ids as 'itemIds',
  326. promoter_id as 'promoterId',
  327. promoter_name as 'promoterName',
  328. item_create_id as 'itemCreateId',
  329. item_create_name as 'itemCreateName',
  330. promoter_create_id as 'promoterCreateId',
  331. promoter_create_name as 'promoterCreateName',
  332. order_num as 'orderNum',
  333. valid_order_num as 'validOrderNum',
  334. last_settlement_order_num as 'lastSettlementOrderNum',
  335. anchor_amount as 'anchorAmount',
  336. reference_amount as 'referenceAmount',
  337. (case
  338. when settlement_status = 1 then '未达到结算要求'
  339. when settlement_status = 2 then '待结算'
  340. when settlement_status = 3 then '已结算'
  341. else ''
  342. end
  343. ) as 'settlementStatusStr',
  344. settlement_status as 'settlementStatus'
  345. from kuaishou_rule_settlement_data
  346. where promoter_id = #{promoterId}
  347. and stat_date = #{date}
  348. <if test="settlementStatus != null and settlementStatus != ''">
  349. and settlement_status = #{settlementStatus}
  350. </if>
  351. order by anchor_amount desc
  352. </select>
  353. <select id="getRuleJson" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
  354. select
  355. id as 'id',
  356. rule_id as 'ruleId',
  357. start_item_count as 'startItemCount',
  358. anchor_amount as 'anchorAmount',
  359. reference_amount as 'referenceAmount',
  360. sort_count as 'sortCount'
  361. from kuaishou_rule_detail where rule_id = #{ruleId}
  362. order by create_time desc limit 1
  363. </select>
  364. <select id="getData" resultType="com.alibaba.fastjson.JSONObject">
  365. select t.*, tt.rule_type
  366. from (select *
  367. from (select t1.relate_id as 'relateId',
  368. (case
  369. when t2.rule_id is not null
  370. then t2.rule_id
  371. else 1
  372. end
  373. ) as 'ruleId',
  374. group_concat(t1.item_id) as 'itemIds',
  375. t1.promoter_id as 'promoterId',
  376. t1.promoter_name as 'promoterName',
  377. t1.item_create_id as 'itemCreateId',
  378. t1.item_create_name as 'itemCreateName',
  379. t1.promoter_create_id as 'promoterCreateId',
  380. t1.promoter_create_name as 'promoterCreateName',
  381. ifnull(sum(t1.order_num), 0) as 'orderNum',
  382. ifnull(sum(t1.valid_order_num), 0) as 'validOrderNum',
  383. ifnull(sum(t1.yesterday_order_num), 0) as 'yesterdayOrderNum',
  384. ifnull(sum(t1.yesterday_valid_order_num), 0) as 'yesterdayValidOrderNum',
  385. t1.stat_date as 'statDate',
  386. round(t2.item_price / 100, 2) as 'itemPrice'
  387. from ruixuan.kuaishou_rule_order_data t1
  388. left join ruixuan.kuaishou_item_list t2 on t1.item_id = t2.item_id
  389. where t1.item_id = 20789864366937
  390. and t1.promoter_id = 3495457926
  391. and t1.stat_date = 20230911
  392. and t1.relate_id is not null
  393. group by t1.relate_id, t1.promoter_id) t
  394. where t.itemPrice >= 6
  395. order by t.validOrderNum desc) t
  396. left join ruixuan.kuaishou_settlement_rules tt
  397. on t.ruleId = tt.id
  398. </select>
  399. <insert id="replaceDatas">
  400. replace into kuaishou_rule_settlement_data(
  401. rule_id,
  402. rule_type,
  403. rule_name,
  404. son_rule_id,
  405. relate_id,
  406. item_ids,
  407. promoter_id,
  408. promoter_name,
  409. item_create_id,
  410. item_create_name,
  411. promoter_create_id,
  412. promoter_create_name,
  413. order_num,
  414. valid_order_num,
  415. yesterday_order_num,
  416. yesterday_valid_order_num,
  417. stat_date,
  418. anchor_amount,
  419. reference_amount,
  420. settlement_status,
  421. last_settlement_order_num
  422. )
  423. values
  424. <foreach collection="adds" item="add" separator=",">
  425. (
  426. #{add.ruleId},
  427. #{add.ruleType},
  428. #{add.ruleName},
  429. #{add.sonRuleId},
  430. #{add.relateId},
  431. #{add.itemIds},
  432. #{add.promoterId},
  433. #{add.promoterName},
  434. #{add.itemCreateId},
  435. #{add.itemCreateName},
  436. #{add.promoterCreateId},
  437. #{add.promoterCreateName},
  438. #{add.orderNum},
  439. #{add.validOrderNum},
  440. #{add.yesterdayOrderNum},
  441. #{add.yesterdayValidOrderNum},
  442. #{add.statDate},
  443. #{add.anchorAmount},
  444. #{add.referenceAmount},
  445. #{add.settlementStatus},
  446. #{add.lastSettlementOrderNum}
  447. )
  448. </foreach>
  449. </insert>
  450. </mapper>