KuaishouRuleSettlementDataMapper.xml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  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 relate_id = #{relateId}
  206. and promoter_id = #{promoterId}
  207. and rule_id = #{ruleId}
  208. and settlement_status != 1
  209. order by create_time desc limit 1
  210. </select>
  211. <select id="getTotalAmount" resultType="com.alibaba.fastjson.JSONObject">
  212. select
  213. ifnull(sum(anchor_amount),0) as 'anchorAmount',
  214. ifnull(sum(reference_amount),0) as 'referenceAmount'
  215. from kuaishou_rule_detail
  216. where rule_id = #{ruleId}
  217. and sort_count &gt; #{lastSortCount}
  218. and sort_count &lt;= #{currentSortCount}
  219. </select>
  220. <select id="selectIncentiveLog" resultType="java.lang.Integer">
  221. select ifnull(incentive_count,0) from kuaishou_rule_incentive_log where relate_id = #{relateId}
  222. and promoter_id = #{promoterId} order by create_time desc limit 1
  223. </select>
  224. <insert id="replaceIncentiveLog">
  225. replace into kuaishou_rule_incentive_log (
  226. relate_id,
  227. promoter_id,
  228. rule_id,
  229. incentive_count,
  230. last_incentive_count
  231. ) values (
  232. #{relateId},
  233. #{promoterId},
  234. #{ruleId},
  235. #{incentivizedCount},
  236. #{lastIncentivizedCount}
  237. )
  238. </insert>
  239. <select id="getTotalByCountAndRuleId" resultType="com.alibaba.fastjson.JSONObject">
  240. select
  241. ifnull(round(sum(anchor_amount) * #{incentivizedCount}, 2),0) as 'anchorAmount',
  242. ifnull(round(sum(reference_amount) * #{incentivizedCount}, 2) ,0) as 'referenceAmount'
  243. from kuaishou_rule_detail where rule_id = #{ruleId}
  244. </select>
  245. <select id="getMaxRuleCountByRuleId" resultType="java.lang.Integer" parameterType="java.lang.Long">
  246. select max(sort_count) from kuaishou_rule_detail where rule_id = #{ruleId}
  247. </select>
  248. <select id="getSettlementDate" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
  249. <!-- select t.* from (
  250. select
  251. promoter_id as 'promoterId',
  252. promoter_name as 'promoterName',
  253. sum(anchor_amount) as 'anchorAmount',
  254. sum(reference_amount) as 'referenceAmount'
  255. from kuaishou_rule_settlement_data
  256. where stat_date = #{statDate}
  257. and settlement_status != 3
  258. <if test="promoterId != null and promoterId != '' ">
  259. and promoter_id = #{promoterId}
  260. </if>
  261. <if test="promoterName != null and promoterName != '' ">
  262. AND promoter_name LIKE CONCAT('%', #{promoterName}, '%')
  263. </if>
  264. group by promoter_id) t order by t.anchorAmount desc-->
  265. select t.*, t2.item_title as 'itemName'
  266. from (select id as 'id',
  267. rule_name as 'ruleName',
  268. item_ids as 'itemIds',
  269. substring_index(item_ids, ',', 1) as 'itemId',
  270. promoter_id as 'promoterId',
  271. promoter_name as 'promoterName',
  272. order_num as 'orderNum',
  273. valid_order_num as 'validOrderNum',
  274. last_settlement_order_num as 'lastSettlementOrderNum',
  275. anchor_amount as 'anchorAmount',
  276. reference_amount as 'referenceAmount',
  277. settlement_status as 'settlementStatus',
  278. (
  279. case
  280. when settlement_status = 1 then '未达到结算规则'
  281. when settlement_status = 2 then '待结算'
  282. when settlement_status = 3 then '已结算'
  283. else '-'
  284. end
  285. ) as 'settlementStatusDesc'
  286. from kuaishou_rule_settlement_data t1
  287. where t1.stat_date = #{statDate}
  288. and settlement_status >= 2
  289. and anchor_amount > 0
  290. <if test="promoterId != null and promoterId != '' ">
  291. and t1.promoter_id = #{promoterId}
  292. </if>
  293. <if test="promoterName != null and promoterName != '' ">
  294. AND t1.promoter_name LIKE CONCAT('%', #{promoterName}, '%')
  295. </if>
  296. ) t
  297. left join kuaishou_item_list t2 on t.itemId = t2.item_id
  298. order by t.settlementStatus asc
  299. </select>
  300. <select id="getPromoterSettlementDetail" resultType="com.alibaba.fastjson.JSONObject">
  301. select
  302. id as 'id',
  303. rule_id as 'ruleId',
  304. rule_name as 'ruleName',
  305. son_rule_id as 'sonRuleId',
  306. item_ids as 'itemIds',
  307. promoter_id as 'promoterId',
  308. promoter_name as 'promoterName',
  309. item_create_id as 'itemCreateId',
  310. item_create_name as 'itemCreateName',
  311. promoter_create_id as 'promoterCreateId',
  312. promoter_create_name as 'promoterCreateName',
  313. order_num as 'orderNum',
  314. valid_order_num as 'validOrderNum',
  315. last_settlement_order_num as 'lastSettlementOrderNum',
  316. anchor_amount as 'anchorAmount',
  317. reference_amount as 'referenceAmount',
  318. (case
  319. when settlement_status = 1 then '未达到结算要求'
  320. when settlement_status = 2 then '待结算'
  321. when settlement_status = 3 then '已结算'
  322. else ''
  323. end
  324. ) as 'settlementStatusStr',
  325. settlement_status as 'settlementStatus'
  326. from kuaishou_rule_settlement_data
  327. where promoter_id = #{promoterId}
  328. and stat_date = #{date}
  329. <if test="settlementStatus != null and settlementStatus != ''">
  330. and settlement_status = #{settlementStatus}
  331. </if>
  332. order by anchor_amount desc
  333. </select>
  334. <select id="getRuleJson" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
  335. select
  336. id as 'id',
  337. rule_id as 'ruleId',
  338. start_item_count as 'startItemCount',
  339. anchor_amount as 'anchorAmount',
  340. reference_amount as 'referenceAmount',
  341. sort_count as 'sortCount'
  342. from kuaishou_rule_detail where rule_id = #{ruleId}
  343. order by create_time desc limit 1
  344. </select>
  345. <select id="getData" resultType="com.alibaba.fastjson.JSONObject">
  346. select t.*, tt.rule_type
  347. from (select *
  348. from (select t1.relate_id as 'relateId',
  349. (case
  350. when t2.rule_id is not null
  351. then t2.rule_id
  352. else 1
  353. end
  354. ) as 'ruleId',
  355. group_concat(t1.item_id) as 'itemIds',
  356. t1.promoter_id as 'promoterId',
  357. t1.promoter_name as 'promoterName',
  358. t1.item_create_id as 'itemCreateId',
  359. t1.item_create_name as 'itemCreateName',
  360. t1.promoter_create_id as 'promoterCreateId',
  361. t1.promoter_create_name as 'promoterCreateName',
  362. ifnull(sum(t1.order_num), 0) as 'orderNum',
  363. ifnull(sum(t1.valid_order_num), 0) as 'validOrderNum',
  364. ifnull(sum(t1.yesterday_order_num), 0) as 'yesterdayOrderNum',
  365. ifnull(sum(t1.yesterday_valid_order_num), 0) as 'yesterdayValidOrderNum',
  366. t1.stat_date as 'statDate',
  367. round(t2.item_price / 100, 2) as 'itemPrice'
  368. from ruixuan.kuaishou_rule_order_data t1
  369. left join ruixuan.kuaishou_item_list t2 on t1.item_id = t2.item_id
  370. where t1.item_id = 21112531910237
  371. and t1.promoter_id = 3469906734
  372. and t1.stat_date = 20230911
  373. and t1.relate_id is not null
  374. group by t1.relate_id, t1.promoter_id) t
  375. where t.itemPrice >= 6
  376. order by t.validOrderNum desc) t
  377. left join ruixuan.kuaishou_settlement_rules tt
  378. on t.ruleId = tt.id
  379. </select>
  380. <insert id="replaceDatas">
  381. replace into kuaishou_rule_settlement_data(
  382. rule_id,
  383. rule_type,
  384. rule_name,
  385. son_rule_id,
  386. relate_id,
  387. item_ids,
  388. promoter_id,
  389. promoter_name,
  390. item_create_id,
  391. item_create_name,
  392. promoter_create_id,
  393. promoter_create_name,
  394. order_num,
  395. valid_order_num,
  396. yesterday_order_num,
  397. yesterday_valid_order_num,
  398. stat_date,
  399. anchor_amount,
  400. reference_amount,
  401. settlement_status,
  402. last_settlement_order_num
  403. )
  404. values
  405. <foreach collection="adds" item="add" separator=",">
  406. (
  407. #{add.ruleId},
  408. #{add.ruleType},
  409. #{add.ruleName},
  410. #{add.sonRuleId},
  411. #{add.relateId},
  412. #{add.itemIds},
  413. #{add.promoterId},
  414. #{add.promoterName},
  415. #{add.itemCreateId},
  416. #{add.itemCreateName},
  417. #{add.promoterCreateId},
  418. #{add.promoterCreateName},
  419. #{add.orderNum},
  420. #{add.validOrderNum},
  421. #{add.yesterdayOrderNum},
  422. #{add.yesterdayValidOrderNum},
  423. #{add.statDate},
  424. #{add.anchorAmount},
  425. #{add.referenceAmount},
  426. #{add.settlementStatus},
  427. #{add.lastSettlementOrderNum}
  428. )
  429. </foreach>
  430. </insert>
  431. </mapper>