KuaishouRuleSettlementDataMapper.xml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  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="ruleName" column="rule_name"/>
  10. <result property="sonRuleId" column="son_rule_id"/>
  11. <result property="relateId" column="relate_id"/>
  12. <result property="itemIds" column="item_ids"/>
  13. <result property="promoterId" column="promoter_id"/>
  14. <result property="promoterName" column="promoter_name"/>
  15. <result property="itemCreateId" column="item_create_id"/>
  16. <result property="itemCreateName" column="item_create_name"/>
  17. <result property="promoterCreateId" column="promoter_create_id"/>
  18. <result property="promoterCreateName" column="promoter_create_name"/>
  19. <result property="orderNum" column="order_num"/>
  20. <result property="validOrderNum" column="valid_order_num"/>
  21. <result property="yesterdayOrderNum" column="yesterday_order_num"/>
  22. <result property="yesterdayValidOrderNum" column="yesterday_valid_order_num"/>
  23. <result property="statDate" column="stat_date"/>
  24. <result property="anchorAmount" column="anchor_amount"/>
  25. <result property="referenceAmount" column="reference_amount"/>
  26. <result property="settlementStatus" column="settlement_status"/>
  27. <result property="createTime" column="create_time"/>
  28. <result property="updateTime" column="update_time"/>
  29. </resultMap>
  30. <sql id="selectKuaishouRuleSettlementDataVo">
  31. select id, rule_id, 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
  32. </sql>
  33. <select id="selectKuaishouRuleSettlementDataList" parameterType="com.ruixuan.isc.entity.KuaishouRuleSettlementData"
  34. resultMap="KuaishouRuleSettlementDataResult">
  35. <include refid="selectKuaishouRuleSettlementDataVo"/>
  36. <where>
  37. <if test="ruleId != null ">and rule_id = #{ruleId}</if>
  38. <if test="ruleName != null ">and rule_name like concat('%', #{ruleName}, '%')</if>
  39. <if test="sonRuleId != null ">and son_rule_id = #{sonRuleId}</if>
  40. <if test="relateId != null ">and relate_id = #{relateId}</if>
  41. <if test="itemIds != null and itemIds != ''">and item_ids = #{itemIds}</if>
  42. <if test="promoterId != null ">and promoter_id = #{promoterId}</if>
  43. <if test="promoterName != null and promoterName != ''">and promoter_name like concat('%', #{promoterName},
  44. '%')
  45. </if>
  46. <if test="itemCreateId != null ">and item_create_id = #{itemCreateId}</if>
  47. <if test="itemCreateName != null and itemCreateName != ''">and item_create_name like concat('%',
  48. #{itemCreateName}, '%')
  49. </if>
  50. <if test="promoterCreateId != null ">and promoter_create_id = #{promoterCreateId}</if>
  51. <if test="promoterCreateName != null and promoterCreateName != ''">and promoter_create_name like
  52. concat('%', #{promoterCreateName}, '%')
  53. </if>
  54. <if test="orderNum != null ">and order_num = #{orderNum}</if>
  55. <if test="validOrderNum != null ">and valid_order_num = #{validOrderNum}</if>
  56. <if test="yesterdayOrderNum != null ">and yesterday_order_num = #{yesterdayOrderNum}</if>
  57. <if test="yesterdayValidOrderNum != null ">and yesterday_valid_order_num = #{yesterdayValidOrderNum}</if>
  58. <if test="statDate != null ">and stat_date = #{statDate}</if>
  59. <if test="anchorAmount != null ">and anchor_amount = #{anchorAmount}</if>
  60. <if test="referenceAmount != null ">and reference_amount = #{referenceAmount}</if>
  61. <if test="settlementStatus != null ">and settlement_status = #{settlementStatus}</if>
  62. </where>
  63. </select>
  64. <select id="selectKuaishouRuleSettlementDataById" parameterType="java.lang.Long"
  65. resultMap="KuaishouRuleSettlementDataResult">
  66. <include refid="selectKuaishouRuleSettlementDataVo"/>
  67. where id = #{id}
  68. </select>
  69. <insert id="insertKuaishouRuleSettlementData" parameterType="com.ruixuan.isc.entity.KuaishouRuleSettlementData">
  70. insert into kuaishou_rule_settlement_data
  71. <trim prefix="(" suffix=")" suffixOverrides=",">
  72. <if test="id != null">id,</if>
  73. <if test="ruleId != null">rule_id,</if>
  74. <if test="ruleName != null">rule_name,</if>
  75. <if test="sonRuleId != null">son_rule_id,</if>
  76. <if test="relateId != null">relate_id,</if>
  77. <if test="itemIds != null">item_ids,</if>
  78. <if test="promoterId != null">promoter_id,</if>
  79. <if test="promoterName != null">promoter_name,</if>
  80. <if test="itemCreateId != null">item_create_id,</if>
  81. <if test="itemCreateName != null">item_create_name,</if>
  82. <if test="promoterCreateId != null">promoter_create_id,</if>
  83. <if test="promoterCreateName != null">promoter_create_name,</if>
  84. <if test="orderNum != null">order_num,</if>
  85. <if test="validOrderNum != null">valid_order_num,</if>
  86. <if test="yesterdayOrderNum != null">yesterday_order_num,</if>
  87. <if test="yesterdayValidOrderNum != null">yesterday_valid_order_num,</if>
  88. <if test="statDate != null">stat_date,</if>
  89. <if test="anchorAmount != null">anchor_amount,</if>
  90. <if test="referenceAmount != null">reference_amount,</if>
  91. <if test="settlementStatus != null">settlement_status,</if>
  92. <if test="createTime != null">create_time,</if>
  93. <if test="updateTime != null">update_time,</if>
  94. </trim>
  95. <trim prefix="values (" suffix=")" suffixOverrides=",">
  96. <if test="id != null">#{id},</if>
  97. <if test="ruleId != null">#{ruleId},</if>
  98. <if test="ruleName != null">#{ruleName},</if>
  99. <if test="sonRuleId != null">#{sonRuleId},</if>
  100. <if test="relateId != null">#{relateId},</if>
  101. <if test="itemIds != null">#{itemIds},</if>
  102. <if test="promoterId != null">#{promoterId},</if>
  103. <if test="promoterName != null">#{promoterName},</if>
  104. <if test="itemCreateId != null">#{itemCreateId},</if>
  105. <if test="itemCreateName != null">#{itemCreateName},</if>
  106. <if test="promoterCreateId != null">#{promoterCreateId},</if>
  107. <if test="promoterCreateName != null">#{promoterCreateName},</if>
  108. <if test="orderNum != null">#{orderNum},</if>
  109. <if test="validOrderNum != null">#{validOrderNum},</if>
  110. <if test="yesterdayOrderNum != null">#{yesterdayOrderNum},</if>
  111. <if test="yesterdayValidOrderNum != null">#{yesterdayValidOrderNum},</if>
  112. <if test="statDate != null">#{statDate},</if>
  113. <if test="anchorAmount != null">#{anchorAmount},</if>
  114. <if test="referenceAmount != null">#{referenceAmount},</if>
  115. <if test="settlementStatus != null">#{settlementStatus},</if>
  116. <if test="createTime != null">#{createTime},</if>
  117. <if test="updateTime != null">#{updateTime},</if>
  118. </trim>
  119. </insert>
  120. <update id="updateKuaishouRuleSettlementData" parameterType="com.ruixuan.isc.entity.KuaishouRuleSettlementData">
  121. update kuaishou_rule_settlement_data
  122. <trim prefix="SET" suffixOverrides=",">
  123. <if test="ruleId != null">rule_id = #{ruleId},</if>
  124. <if test="ruleName != null">rule_name = #{ruleName},</if>
  125. <if test="sonRuleId != null">son_rule_id = #{sonRuleId},</if>
  126. <if test="relateId != null">relate_id = #{relateId},</if>
  127. <if test="itemIds != null">item_ids = #{itemIds},</if>
  128. <if test="promoterId != null">promoter_id = #{promoterId},</if>
  129. <if test="promoterName != null">promoter_name = #{promoterName},</if>
  130. <if test="itemCreateId != null">item_create_id = #{itemCreateId},</if>
  131. <if test="itemCreateName != null">item_create_name = #{itemCreateName},</if>
  132. <if test="promoterCreateId != null">promoter_create_id = #{promoterCreateId},</if>
  133. <if test="promoterCreateName != null">promoter_create_name = #{promoterCreateName},</if>
  134. <if test="orderNum != null">order_num = #{orderNum},</if>
  135. <if test="validOrderNum != null">valid_order_num = #{validOrderNum},</if>
  136. <if test="yesterdayOrderNum != null">yesterday_order_num = #{yesterdayOrderNum},</if>
  137. <if test="yesterdayValidOrderNum != null">yesterday_valid_order_num = #{yesterdayValidOrderNum},</if>
  138. <if test="statDate != null">stat_date = #{statDate},</if>
  139. <if test="anchorAmount != null">anchor_amount = #{anchorAmount},</if>
  140. <if test="referenceAmount != null">reference_amount = #{referenceAmount},</if>
  141. <if test="settlementStatus != null">settlement_status = #{settlementStatus},</if>
  142. <if test="createTime != null">create_time = #{createTime},</if>
  143. <if test="updateTime != null">update_time = #{updateTime},</if>
  144. </trim>
  145. where id = #{id}
  146. </update>
  147. <update id="updatePromoterStatus">
  148. update kuaishou_rule_settlement_data set settlement_status = #{status}
  149. where promoter_id = #{promoterId}
  150. and stat_date = #{statDate}
  151. and settlement_status = 2
  152. </update>
  153. <delete id="deleteKuaishouRuleSettlementDataById" parameterType="java.lang.Long">
  154. delete from kuaishou_rule_settlement_data where id = #{id}
  155. </delete>
  156. <delete id="deleteKuaishouRuleSettlementDataByIds" parameterType="java.lang.String">
  157. delete from kuaishou_rule_settlement_data where id in
  158. <foreach item="id" collection="array" open="(" separator="," close=")">
  159. #{id}
  160. </foreach>
  161. </delete>
  162. <select id="data" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
  163. select * from (
  164. select t1.relate_id as 'relateId',
  165. 1 as 'ruleId',
  166. group_concat(t1.item_id) as 'itemIds',
  167. t1.promoter_id as 'promoterId',
  168. t1.promoter_name as 'promoterName',
  169. t1.item_create_id as 'itemCreateId',
  170. t1.item_create_name as 'itemCreateName',
  171. t1.promoter_create_id as 'promoterCreateId',
  172. t1.promoter_create_name as 'promoterCreateName',
  173. ifnull(sum(t1.order_num),0) as 'orderNum',
  174. ifnull(sum(t1.valid_order_num),0 ) as 'validOrderNum',
  175. ifnull(sum(t1.yesterday_order_num),0 ) as 'yesterdayOrderNum',
  176. ifnull(sum(t1.yesterday_valid_order_num),0) as 'yesterdayValidOrderNum',
  177. t1.stat_date as 'statDate'
  178. from kuaishou_rule_order_data t1
  179. left join kuaishou_item_list t2 on t1.item_id = t2.item_id
  180. where t1.stat_date = #{statDate}
  181. and t2.rule_id is null
  182. and t1.relate_id is not null
  183. group by t1.relate_id, t1.promoter_id ) t order by t.validOrderNum
  184. </select>
  185. <select id="getRuleList" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
  186. select
  187. id as 'id',
  188. rule_id as 'ruleId',
  189. start_item_count as 'startItemCount',
  190. end_item_count as 'endItemCount',
  191. anchor_amount as 'anchorAmount',
  192. reference_amount as 'referenceAmount',
  193. sort_count as 'sortCount'
  194. from kuaishou_rule_detail where rule_id = #{ruleId}
  195. </select>
  196. <select id="lastRule" resultType="com.alibaba.fastjson.JSONObject">
  197. select son_rule_id as 'sonRuleId',
  198. (select sort_count from kuaishou_rule_detail where id = t1.son_rule_id) as 'sortCount',
  199. IFNULL(valid_order_num,0) as 'validOrderNum'
  200. from kuaishou_rule_settlement_data t1
  201. where relate_id = #{relateId}
  202. and promoter_id = #{promoterId}
  203. and rule_id = #{ruleId}
  204. and settlement_status != 1
  205. order by create_time desc limit 1
  206. </select>
  207. <select id="getTotalAmount" resultType="com.alibaba.fastjson.JSONObject">
  208. select
  209. ifnull(sum(anchor_amount),0) as 'anchorAmount',
  210. ifnull(sum(reference_amount),0) as 'referenceAmount'
  211. from kuaishou_rule_detail
  212. where rule_id = #{ruleId}
  213. and sort_count &gt; #{lastSortCount}
  214. and sort_count &lt;= #{currentSortCount}
  215. </select>
  216. <select id="selectIncentiveLog" resultType="java.lang.Integer">
  217. select ifnull(incentive_count,0) from kuaishou_rule_incentive_log where relate_id = #{relateId}
  218. and promoter_id = #{promoterId} order by create_time desc limit 1
  219. </select>
  220. <insert id="replaceIncentiveLog">
  221. replace into kuaishou_rule_incentive_log (
  222. relate_id,
  223. promoter_id,
  224. rule_id,
  225. incentive_count,
  226. last_incentive_count
  227. ) values (
  228. #{relateId},
  229. #{promoterId},
  230. #{ruleId},
  231. #{incentivizedCount},
  232. #{lastIncentivizedCount}
  233. )
  234. </insert>
  235. <select id="getTotalByCountAndRuleId" resultType="com.alibaba.fastjson.JSONObject">
  236. select
  237. ifnull(round(sum(anchor_amount) * #{incentivizedCount}, 2),0) as 'anchorAmount',
  238. ifnull(round(sum(reference_amount) * #{incentivizedCount}, 2) ,0) as 'referenceAmount'
  239. from kuaishou_rule_detail where rule_id = #{ruleId}
  240. </select>
  241. <select id="getMaxRuleCountByRuleId" resultType="java.lang.Integer" parameterType="java.lang.Long">
  242. select max(sort_count) from kuaishou_rule_detail where rule_id = #{ruleId}
  243. </select>
  244. <select id="getSettlementDate" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
  245. select t.* from (
  246. select
  247. promoter_id as 'promoterId',
  248. promoter_name as 'promoterName',
  249. sum(anchor_amount) as 'anchorAmount',
  250. sum(reference_amount) as 'referenceAmount'
  251. from kuaishou_rule_settlement_data
  252. where stat_date = #{statDate}
  253. and settlement_status != 3
  254. <if test="promoterId != null and promoterId != '' ">
  255. and promoter_id = #{promoterId}
  256. </if>
  257. <if test="promoterName != null and promoterName != '' ">
  258. AND promoter_name LIKE CONCAT('%', #{promoterName}, '%')
  259. </if>
  260. group by promoter_id) t order by t.anchorAmount desc
  261. </select>
  262. <select id="getPromoterSettlementDetail" resultType="com.alibaba.fastjson.JSONObject">
  263. select
  264. id as 'id',
  265. rule_id as 'ruleId',
  266. rule_name as 'ruleName',
  267. son_rule_id as 'sonRuleId',
  268. item_ids as 'itemIds',
  269. promoter_id as 'promoterId',
  270. promoter_name as 'promoterName',
  271. item_create_id as 'itemCreateId',
  272. item_create_name as 'itemCreateName',
  273. promoter_create_id as 'promoterCreateId',
  274. promoter_create_name as 'promoterCreateName',
  275. order_num as 'orderNum',
  276. valid_order_num as 'validOrderNum',
  277. last_settlement_order_num as 'lastSettlementOrderNum',
  278. anchor_amount as 'anchorAmount',
  279. reference_amount as 'referenceAmount',
  280. (case
  281. when settlement_status = 1 then '未达到结算要求'
  282. when settlement_status = 2 then '待结算'
  283. when settlement_status = 3 then '已结算'
  284. else ''
  285. end
  286. ) as 'settlementStatusStr',
  287. settlement_status as 'settlementStatus'
  288. from kuaishou_rule_settlement_data
  289. where promoter_id = #{promoterId}
  290. and stat_date = #{date}
  291. <if test="settlementStatus != null and settlementStatus != ''">
  292. and settlement_status = #{settlementStatus}
  293. </if>
  294. order by anchor_amount desc
  295. </select>
  296. <insert id="replaceDatas">
  297. replace into kuaishou_rule_settlement_data(
  298. rule_id,
  299. rule_name,
  300. son_rule_id,
  301. relate_id,
  302. item_ids,
  303. promoter_id,
  304. promoter_name,
  305. item_create_id,
  306. item_create_name,
  307. promoter_create_id,
  308. promoter_create_name,
  309. order_num,
  310. valid_order_num,
  311. yesterday_order_num,
  312. yesterday_valid_order_num,
  313. stat_date,
  314. anchor_amount,
  315. reference_amount,
  316. settlement_status,
  317. last_settlement_order_num
  318. )
  319. values
  320. <foreach collection="adds" item="add" separator=",">
  321. (
  322. #{add.ruleId},
  323. #{add.ruleName},
  324. #{add.sonRuleId},
  325. #{add.relateId},
  326. #{add.itemIds},
  327. #{add.promoterId},
  328. #{add.promoterName},
  329. #{add.itemCreateId},
  330. #{add.itemCreateName},
  331. #{add.promoterCreateId},
  332. #{add.promoterCreateName},
  333. #{add.orderNum},
  334. #{add.validOrderNum},
  335. #{add.yesterdayOrderNum},
  336. #{add.yesterdayValidOrderNum},
  337. #{add.statDate},
  338. #{add.anchorAmount},
  339. #{add.referenceAmount},
  340. #{add.settlementStatus},
  341. #{add.lastSettlementOrderNum}
  342. )
  343. </foreach>
  344. </insert>
  345. </mapper>