You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

280 lines
11 KiB

8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
  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.example.demo.mapper.coin.RechargeMapper">
  4. <!-- 查询所有充值记录 -->
  5. <select id="selectAll" resultType="com.example.demo.domain.vo.coin.RechargeUser">
  6. SELECT
  7. u.name AS name,
  8. ugr.jwcode AS jwcode,
  9. m.name as market,
  10. ugr.activity AS activity,
  11. ugr.rate_id AS rateId,
  12. r.rate_name AS rateName,
  13. ugr.money AS money,
  14. ugr.permanent_gold AS permanentGold,
  15. (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
  16. ugr.pay_model AS payModel,
  17. ugr.pay_platform AS payPlatform,
  18. ugr.remark AS remark,
  19. ugr.admin_id AS adminId,
  20. a.admin_name AS adminName,
  21. ugr.pay_time AS payTime
  22. FROM user_gold_record ugr
  23. left JOIN user u ON u.jwcode = ugr.jwcode
  24. left JOIN admin a ON ugr.admin_id = a.id
  25. left JOIN rate r ON ugr.rate_id = r.id
  26. left join market m ON u.market = m.id
  27. <where>
  28. ugr.type = 0 AND ugr.audit_status IN (1,3)
  29. AND ugr.flag = 1
  30. AND u.flag = 1
  31. <if test="markets != null and markets.size() > 0 and '9999' not in markets and '9' not in markets">
  32. AND (
  33. <foreach collection="markets" item="market" open="" close="" separator=" OR ">
  34. u.market = #{market}
  35. </foreach>
  36. )
  37. </if>
  38. </where>
  39. <trim prefix="ORDER BY" suffixOverrides=",">
  40. <choose>
  41. <!-- 当指定排序字段时使用指定字段排序 -->
  42. <when test="sortField != null and sortField != ''">
  43. <choose>
  44. <!-- 对金币数量的排序处理 -->
  45. <when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
  46. <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when>
  47. <!-- 对时间字段的排序处理 -->
  48. <when test="sortField == 'payTime'">ugr.pay_time</when>
  49. <!-- 其他字段不支持排序,使用默认排序 -->
  50. <otherwise>ugr.pay_time</otherwise>
  51. </choose>
  52. <!-- 排序方向处理 -->
  53. <if test="sortOrder != null and sortOrder != ''">
  54. <choose>
  55. <when test="sortOrder == 'ASC'">ASC</when>
  56. <when test="sortOrder == 'DESC'">DESC</when>
  57. <otherwise>DESC</otherwise>
  58. </choose>
  59. </if>
  60. <if test="sortOrder == null or sortOrder == ''">
  61. DESC
  62. </if>
  63. </when>
  64. <!-- 未指定排序字段时,使用默认的时间降序排序 -->
  65. <otherwise>
  66. ugr.pay_time DESC
  67. </otherwise>
  68. </choose>
  69. </trim>
  70. </select>
  71. <!-- 查询筛选后充值记录 -->
  72. <select id="selectBy" resultType="com.example.demo.domain.vo.coin.RechargeUser">
  73. SELECT
  74. u.name AS name,
  75. ugr.jwcode AS jwcode,
  76. m.name as market,
  77. ugr.activity AS activity,
  78. ugr.order_code AS orderCode,
  79. ugr.rate_id AS rateId,
  80. r.rate_name AS rateName,
  81. ugr.money/100 AS money,
  82. ugr.permanent_gold/100 AS permanentGold,
  83. (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGold,
  84. ugr.pay_model AS payModel,
  85. ugr.pay_platform AS payPlatform,
  86. ugr.remark AS remark,
  87. ugr.admin_id AS adminId,
  88. ugr.is_refund AS isRefund,
  89. a.admin_name AS adminName,
  90. ugr.pay_time AS payTime,
  91. ugr.audit_time AS auditTime
  92. FROM user_gold_record ugr
  93. left JOIN user u ON u.jwcode = ugr.jwcode
  94. left JOIN admin a ON ugr.admin_id = a.id
  95. left JOIN rate r ON ugr.rate_id = r.id
  96. left join market m ON u.market = m.id
  97. <where>
  98. ugr.type = 0 AND ugr.audit_status IN (1,3)
  99. AND ugr.flag = 1
  100. <!-- 判断 market 是否不为总部且 markets 不为空 -->
  101. <if test="markets != null and markets.size() > 0">
  102. AND u.market IN
  103. <foreach collection="markets" item="market" open="(" separator="," close=")">
  104. #{market}
  105. </foreach>
  106. </if>
  107. <if test="flag != 0">
  108. AND u.flag = 1
  109. </if>
  110. <if test="jwcode != null and jwcode != ''">
  111. AND ugr.jwcode = #{jwcode}
  112. </if>
  113. <if test="activity != null and activity != ''">
  114. AND ugr.activity = #{activity}
  115. </if>
  116. <if test="market != null and market != ''">
  117. AND u.market = #{market}
  118. </if>
  119. <if test="payPlatform != null and payPlatform != ''">
  120. AND ugr.pay_platform = #{payPlatform}
  121. </if>
  122. <if test="startTime != null and endTime != null">
  123. AND ugr.audit_time BETWEEN #{startTime} AND #{endTime}
  124. </if>
  125. </where>
  126. <trim prefix="ORDER BY" suffixOverrides=",">
  127. <choose>
  128. <!-- 当指定排序字段时使用指定字段排序 -->
  129. <when test="sortField != null and sortField != ''">
  130. <choose>
  131. <!-- 对金币数量的排序处理 -->
  132. <when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
  133. <when test="sortField == 'money'">ugr.money</when>
  134. <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when>
  135. <!-- 对时间字段的排序处理 -->
  136. <when test="sortField == 'payTime'">ugr.audit_time</when>
  137. <!-- 其他字段不支持排序,使用默认排序 -->
  138. <otherwise>ugr.audit_time</otherwise>
  139. </choose>
  140. <!-- 排序方向处理 -->
  141. <if test="sortOrder != null and sortOrder != ''">
  142. <choose>
  143. <when test="sortOrder == 'ASC'">ASC</when>
  144. <when test="sortOrder == 'DESC'">DESC</when>
  145. <otherwise>DESC</otherwise>
  146. </choose>
  147. </if>
  148. <if test="sortOrder == null or sortOrder == ''">
  149. DESC
  150. </if>
  151. </when>
  152. <!-- 未指定排序字段时,使用默认的时间降序排序 -->
  153. <otherwise>
  154. ugr.audit_time DESC
  155. </otherwise>
  156. </choose>
  157. </trim>
  158. </select>
  159. <!-- 查询筛选后充值记录 -->
  160. <select id="sumGold" resultType="com.example.demo.domain.vo.coin.Gold">
  161. SELECT
  162. sum(ugr.money)/100 AS money,
  163. sum(ugr.permanent_gold)/100 AS permanentGolds,
  164. sum(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGolds,
  165. count(ugr.id) AS totalNum
  166. FROM user_gold_record ugr
  167. left JOIN user u ON u.jwcode = ugr.jwcode
  168. left join market m ON u.market = m.id
  169. <where>
  170. ugr.type = 0 AND ugr.audit_status IN (1,3)
  171. AND ugr.flag = 1
  172. <!-- 判断 market 是否不为总部且 markets 不为空 -->
  173. <if test="markets != null and markets.size() > 0">
  174. AND u.market IN
  175. <foreach collection="markets" item="market" open="(" separator="," close=")">
  176. #{market}
  177. </foreach>
  178. </if>
  179. <if test="flag != 0">
  180. AND u.flag = 1
  181. </if>
  182. <if test="jwcode != null and jwcode != ''">
  183. AND ugr.jwcode = #{jwcode}
  184. </if>
  185. <if test="activity != null and activity != ''">
  186. AND ugr.activity = #{activity}
  187. </if>
  188. <if test="market != null and market != ''">
  189. AND u.market = #{market}
  190. </if>
  191. <if test="payPlatform != null and payPlatform != ''">
  192. AND ugr.pay_platform = #{payPlatform}
  193. </if>
  194. <if test="startTime != null and endTime != null">
  195. AND ugr.audit_time BETWEEN #{startTime} AND #{endTime}
  196. </if>
  197. </where>
  198. </select>
  199. <insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true" keyProperty="id">
  200. INSERT INTO user_gold_record
  201. <trim prefix="(" suffix=")" suffixOverrides=",">
  202. order_code,
  203. jwcode,
  204. activity,
  205. sum_gold,
  206. permanent_gold,
  207. free_june,
  208. free_december,
  209. rate_id,
  210. money,
  211. voucher,
  212. pay_platform,
  213. pay_model,
  214. pay_time,
  215. remark,
  216. admin_id,
  217. type,
  218. audit_status,
  219. create_time,
  220. is_refund,
  221. link_id,
  222. price
  223. </trim>
  224. VALUES
  225. <trim prefix="(" suffix=")" suffixOverrides=",">
  226. #{orderCode},
  227. #{jwcode},
  228. #{activity},
  229. #{sumGold},
  230. #{permanentGold},
  231. #{freeJune},
  232. #{freeDecember},
  233. #{rateId},
  234. #{money},
  235. #{voucher},
  236. #{payPlatform},
  237. #{payModel},
  238. #{payTime},
  239. #{remark},
  240. #{adminId},
  241. #{type},
  242. #{auditStatus},
  243. #{createTime},
  244. 0,
  245. #{linkId},
  246. #{price}
  247. </trim>
  248. </insert>
  249. <select id="selectOrderCodeByJwcode" resultType="com.example.demo.domain.vo.coin.RechargeUser">
  250. SELECT ugr.jwcode AS jwcode,
  251. ugr.order_code AS orderCode,
  252. ugr.is_refund AS isRefund
  253. FROM user_gold_record ugr
  254. where ugr.order_code = #{orderCode}
  255. AND ugr.jwcode = #{jwcode}
  256. AND ugr.flag = 1
  257. </select>
  258. <!--根据订单单号获取订单信息(重复充值/消费提示)-->
  259. <select id="selectByOrderCode" resultType="com.example.demo.domain.vo.coin.GoldRepeat">
  260. select type,order_code,jwcode,
  261. COALESCE(permanent_gold,0)/100 as permanentGold,
  262. COALESCE(free_june,0)/100 as freeJune,
  263. COALESCE(free_december,0)/100 as freeDecember,
  264. COALESCE(task_gold,0)/100 as taskGold,
  265. audit_time,goods_name,is_refund,create_time,audit_status
  266. from user_gold_record
  267. where order_code = #{orderCode}
  268. </select>
  269. </mapper>