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.

204 lines
8.0 KiB

2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
1 month ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 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. <if test="markets != null and markets.size() > 0 and '9999' not in markets and '9' not in markets">
  31. AND (
  32. <foreach collection="markets" item="market" open="" close="" separator=" OR ">
  33. u.market = #{market}
  34. </foreach>
  35. )
  36. </if>
  37. </where>
  38. <trim prefix="ORDER BY" suffixOverrides=",">
  39. <choose>
  40. <!-- 当指定排序字段时使用指定字段排序 -->
  41. <when test="sortField != null and sortField != ''">
  42. <choose>
  43. <!-- 对金币数量的排序处理 -->
  44. <when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
  45. <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when>
  46. <!-- 对时间字段的排序处理 -->
  47. <when test="sortField == 'payTime'">ugr.pay_time</when>
  48. <!-- 其他字段不支持排序,使用默认排序 -->
  49. <otherwise>ugr.pay_time</otherwise>
  50. </choose>
  51. <!-- 排序方向处理 -->
  52. <if test="sortOrder != null and sortOrder != ''">
  53. <choose>
  54. <when test="sortOrder == 'ASC'">ASC</when>
  55. <when test="sortOrder == 'DESC'">DESC</when>
  56. <otherwise>DESC</otherwise>
  57. </choose>
  58. </if>
  59. <if test="sortOrder == null or sortOrder == ''">
  60. DESC
  61. </if>
  62. </when>
  63. <!-- 未指定排序字段时,使用默认的时间降序排序 -->
  64. <otherwise>
  65. ugr.pay_time DESC
  66. </otherwise>
  67. </choose>
  68. </trim>
  69. </select>
  70. <!-- 查询筛选后充值记录 -->
  71. <select id="selectBy" resultType="com.example.demo.domain.vo.coin.RechargeUser">
  72. SELECT
  73. u.name AS name,
  74. ugr.jwcode AS jwcode,
  75. m.name as market,
  76. ugr.activity AS activity,
  77. ugr.rate_id AS rateId,
  78. r.rate_name AS rateName,
  79. ugr.money AS money,
  80. ugr.permanent_gold AS permanentGold,
  81. (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
  82. ugr.pay_model AS payModel,
  83. ugr.pay_platform AS payPlatform,
  84. ugr.remark AS remark,
  85. ugr.admin_id AS adminId,
  86. a.admin_name AS adminName,
  87. ugr.pay_time AS payTime
  88. FROM user_gold_record ugr
  89. left JOIN user u ON u.jwcode = ugr.jwcode
  90. left JOIN admin a ON ugr.admin_id = a.id
  91. left JOIN rate r ON ugr.rate_id = r.id
  92. left join market m ON u.market = m.id
  93. <where>
  94. ugr.type = 0 AND ugr.audit_status IN (1,3)
  95. AND ugr.flag = 1
  96. <!-- 判断 market 是否不为总部且 markets 不为空 -->
  97. <if test="markets != null and markets.size() > 0 and '9999' not in markets and '9' not in markets">
  98. AND (
  99. <foreach collection="markets" item="market" open="" close="" separator=" OR ">
  100. u.market = #{market}
  101. </foreach>
  102. )
  103. </if>
  104. <if test="jwcode != null and jwcode != ''">
  105. AND ugr.jwcode = #{jwcode}
  106. </if>
  107. <if test="activity != null and activity != ''">
  108. AND ugr.activity = #{activity}
  109. </if>
  110. <if test="market != null and market != ''">
  111. AND u.market = #{market}
  112. </if>
  113. <if test="payPlatform != null and payPlatform != ''">
  114. AND ugr.pay_platform = #{payPlatform}
  115. </if>
  116. <if test="startTime != null and endTime != null">
  117. AND ugr.pay_time BETWEEN #{startTime} AND #{endTime}
  118. </if>
  119. </where>
  120. <trim prefix="ORDER BY" suffixOverrides=",">
  121. <choose>
  122. <!-- 当指定排序字段时使用指定字段排序 -->
  123. <when test="sortField != null and sortField != ''">
  124. <choose>
  125. <!-- 对金币数量的排序处理 -->
  126. <when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
  127. <when test="sortField == 'money'">ugr.money</when>
  128. <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when>
  129. <!-- 对时间字段的排序处理 -->
  130. <when test="sortField == 'payTime'">ugr.pay_time</when>
  131. <!-- 其他字段不支持排序,使用默认排序 -->
  132. <otherwise>ugr.pay_time</otherwise>
  133. </choose>
  134. <!-- 排序方向处理 -->
  135. <if test="sortOrder != null and sortOrder != ''">
  136. <choose>
  137. <when test="sortOrder == 'ASC'">ASC</when>
  138. <when test="sortOrder == 'DESC'">DESC</when>
  139. <otherwise>DESC</otherwise>
  140. </choose>
  141. </if>
  142. <if test="sortOrder == null or sortOrder == ''">
  143. DESC
  144. </if>
  145. </when>
  146. <!-- 未指定排序字段时,使用默认的时间降序排序 -->
  147. <otherwise>
  148. ugr.pay_time DESC
  149. </otherwise>
  150. </choose>
  151. </trim>
  152. </select>
  153. <insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true" keyProperty="id">
  154. INSERT INTO user_gold_record
  155. <trim prefix="(" suffix=")" suffixOverrides=",">
  156. order_code,
  157. jwcode,
  158. activity,
  159. sum_gold,
  160. permanent_gold,
  161. free_june,
  162. free_december,
  163. rate_id,
  164. money,
  165. voucher,
  166. pay_platform,
  167. pay_model,
  168. pay_time,
  169. remark,
  170. admin_id,
  171. type,
  172. audit_status,
  173. create_time
  174. </trim>
  175. VALUES
  176. <trim prefix="(" suffix=")" suffixOverrides=",">
  177. #{orderCode},
  178. #{jwcode},
  179. #{activity},
  180. #{sumGold},
  181. #{permanentGold},
  182. #{freeJune},
  183. #{freeDecember},
  184. #{rateId},
  185. #{money},
  186. #{voucher},
  187. #{payPlatform},
  188. #{payModel},
  189. #{payTime},
  190. #{remark},
  191. #{adminId},
  192. #{type},
  193. #{auditStatus},
  194. #{createTime}
  195. </trim>
  196. </insert>
  197. </mapper>