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.

250 lines
9.8 KiB

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