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.

249 lines
9.8 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
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
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. 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.rate_id AS rateId,
  79. r.rate_name AS rateName,
  80. ugr.money/100 AS money,
  81. ugr.permanent_gold/100 AS permanentGold,
  82. (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGold,
  83. ugr.pay_model AS payModel,
  84. ugr.pay_platform AS payPlatform,
  85. ugr.remark AS remark,
  86. ugr.admin_id AS adminId,
  87. a.admin_name AS adminName,
  88. ugr.pay_time AS payTime,
  89. ugr.audit_time AS auditTime
  90. FROM user_gold_record ugr
  91. left JOIN user u ON u.jwcode = ugr.jwcode
  92. left JOIN admin a ON ugr.admin_id = a.id
  93. left JOIN rate r ON ugr.rate_id = r.id
  94. left join market m ON u.market = m.id
  95. <where>
  96. ugr.type = 0 AND ugr.audit_status IN (1,3)
  97. AND ugr.flag = 1
  98. <!-- 判断 market 是否不为总部且 markets 不为空 -->
  99. <if test="markets != null and markets.size() > 0">
  100. AND u.market IN
  101. <foreach collection="markets" item="market" open="(" separator="," close=")">
  102. #{market}
  103. </foreach>
  104. </if>
  105. <if test="flag != 0">
  106. AND u.flag = 1
  107. </if>
  108. <if test="jwcode != null and jwcode != ''">
  109. AND ugr.jwcode = #{jwcode}
  110. </if>
  111. <if test="activity != null and activity != ''">
  112. AND ugr.activity = #{activity}
  113. </if>
  114. <if test="market != null and market != ''">
  115. AND u.market = #{market}
  116. </if>
  117. <if test="payPlatform != null and payPlatform != ''">
  118. AND ugr.pay_platform = #{payPlatform}
  119. </if>
  120. <if test="startTime != null and endTime != null">
  121. AND ugr.audit_time BETWEEN #{startTime} AND #{endTime}
  122. </if>
  123. </where>
  124. <trim prefix="ORDER BY" suffixOverrides=",">
  125. <choose>
  126. <!-- 当指定排序字段时使用指定字段排序 -->
  127. <when test="sortField != null and sortField != ''">
  128. <choose>
  129. <!-- 对金币数量的排序处理 -->
  130. <when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
  131. <when test="sortField == 'money'">ugr.money</when>
  132. <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when>
  133. <!-- 对时间字段的排序处理 -->
  134. <when test="sortField == 'payTime'">ugr.audit_time</when>
  135. <!-- 其他字段不支持排序,使用默认排序 -->
  136. <otherwise>ugr.audit_time</otherwise>
  137. </choose>
  138. <!-- 排序方向处理 -->
  139. <if test="sortOrder != null and sortOrder != ''">
  140. <choose>
  141. <when test="sortOrder == 'ASC'">ASC</when>
  142. <when test="sortOrder == 'DESC'">DESC</when>
  143. <otherwise>DESC</otherwise>
  144. </choose>
  145. </if>
  146. <if test="sortOrder == null or sortOrder == ''">
  147. DESC
  148. </if>
  149. </when>
  150. <!-- 未指定排序字段时,使用默认的时间降序排序 -->
  151. <otherwise>
  152. ugr.audit_time DESC
  153. </otherwise>
  154. </choose>
  155. </trim>
  156. </select>
  157. <!-- 查询筛选后充值记录 -->
  158. <select id="sumGold" resultType="com.example.demo.domain.vo.coin.Gold">
  159. SELECT
  160. sum(ugr.money)/100 AS money,
  161. sum(ugr.permanent_gold)/100 AS permanentGolds,
  162. sum(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGolds,
  163. count(ugr.id) AS totalNum
  164. FROM user_gold_record ugr
  165. left JOIN user u ON u.jwcode = ugr.jwcode
  166. left join market m ON u.market = m.id
  167. <where>
  168. ugr.type = 0 AND ugr.audit_status IN (1,3)
  169. AND ugr.flag = 1
  170. <!-- 判断 market 是否不为总部且 markets 不为空 -->
  171. <if test="markets != null and markets.size() > 0">
  172. AND u.market IN
  173. <foreach collection="markets" item="market" open="(" separator="," close=")">
  174. #{market}
  175. </foreach>
  176. </if>
  177. <if test="flag != 0">
  178. AND u.flag = 1
  179. </if>
  180. <if test="jwcode != null and jwcode != ''">
  181. AND ugr.jwcode = #{jwcode}
  182. </if>
  183. <if test="activity != null and activity != ''">
  184. AND ugr.activity = #{activity}
  185. </if>
  186. <if test="market != null and market != ''">
  187. AND u.market = #{market}
  188. </if>
  189. <if test="payPlatform != null and payPlatform != ''">
  190. AND ugr.pay_platform = #{payPlatform}
  191. </if>
  192. <if test="startTime != null and endTime != null">
  193. AND ugr.audit_time BETWEEN #{startTime} AND #{endTime}
  194. </if>
  195. </where>
  196. </select>
  197. <insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true" keyProperty="id">
  198. INSERT INTO user_gold_record
  199. <trim prefix="(" suffix=")" suffixOverrides=",">
  200. order_code,
  201. jwcode,
  202. activity,
  203. sum_gold,
  204. permanent_gold,
  205. free_june,
  206. free_december,
  207. rate_id,
  208. money,
  209. voucher,
  210. pay_platform,
  211. pay_model,
  212. pay_time,
  213. remark,
  214. admin_id,
  215. type,
  216. audit_status,
  217. create_time
  218. </trim>
  219. VALUES
  220. <trim prefix="(" suffix=")" suffixOverrides=",">
  221. #{orderCode},
  222. #{jwcode},
  223. #{activity},
  224. #{sumGold},
  225. #{permanentGold},
  226. #{freeJune},
  227. #{freeDecember},
  228. #{rateId},
  229. #{money},
  230. #{voucher},
  231. #{payPlatform},
  232. #{payModel},
  233. #{payTime},
  234. #{remark},
  235. #{adminId},
  236. #{type},
  237. #{auditStatus},
  238. #{createTime}
  239. </trim>
  240. </insert>
  241. </mapper>