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.

184 lines
7.2 KiB

6 days ago
6 days ago
6 days ago
6 days ago
6 days ago
1 week ago
1 week ago
1 week ago
6 days ago
6 days ago
6 days ago
1 week ago
1 week ago
6 days ago
1 week ago
1 week ago
6 days ago
1 week ago
4 days 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.ConsumeMapper">
  4. <!-- 查询所有消费记录 -->
  5. <select id="selectAll" resultType="com.example.demo.domain.vo.ConsumeUser">
  6. SELECT u.name AS name,
  7. u.jwcode AS jwcode,
  8. u.market AS market,
  9. ugr.goods_name AS goodsName,
  10. ugr.pay_platform AS payPlatform,
  11. ugr.sum_gold AS sumGold,
  12. ugr.permanent_gold AS permanentGold,
  13. (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
  14. ugr.task_gold AS taskGold,
  15. ugr.remark AS remark,
  16. a.admin_name AS adminName,
  17. ugr.create_time AS createTime
  18. FROM user u
  19. JOIN
  20. user_gold_record ugr ON u.jwcode = ugr.jwcode
  21. JOIN
  22. admin a ON ugr.admin_id = a.id
  23. WHERE ugr.type = 1
  24. <trim prefix="ORDER BY" suffixOverrides=",">
  25. <choose>
  26. <!-- 当指定排序字段时使用指定字段排序 -->
  27. <when test="sortField != null and sortField != ''">
  28. <choose>
  29. <!-- 对三种金币数量的排序处理 -->
  30. <when test="sortField == 'taskGold'">ugr.task_gold</when>
  31. <when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
  32. <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when>
  33. <!-- 对时间字段的排序处理 -->
  34. <when test="sortField == 'createTime'">ugr.create_time</when>
  35. <!-- 其他字段不支持排序,使用默认排序 -->
  36. <otherwise>ugr.create_time</otherwise>
  37. </choose>
  38. <!-- 排序方向处理 -->
  39. <if test="sortOrder != null and sortOrder != ''">
  40. <choose>
  41. <when test="sortOrder == 'ASC'">ASC</when>
  42. <when test="sortOrder == 'DESC'">DESC</when>
  43. <otherwise>DESC</otherwise>
  44. </choose>
  45. </if>
  46. <if test="sortOrder == null or sortOrder == ''">
  47. DESC
  48. </if>
  49. </when>
  50. <!-- 未指定排序字段时,使用默认的时间降序排序 -->
  51. <otherwise>
  52. ugr.create_time DESC
  53. </otherwise>
  54. </choose>
  55. </trim>
  56. </select>
  57. <!-- 查询筛选后消费记录 -->
  58. <select id="selectBy" resultType="com.example.demo.domain.vo.ConsumeUser">
  59. SELECT u.name AS name,
  60. u.jwcode AS jwcode,
  61. u.market AS market,
  62. ugr.goods_name AS goodsName,
  63. ugr.pay_platform AS payPlatform,
  64. ugr.sum_gold AS sumGold,
  65. ugr.permanent_gold AS permanentGold,
  66. (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
  67. ugr.task_gold AS taskGold,
  68. ugr.remark AS remark,
  69. a.admin_name AS adminName,
  70. ugr.create_time AS createTime
  71. FROM user u
  72. JOIN
  73. user_gold_record ugr ON u.jwcode = ugr.jwcode
  74. JOIN
  75. admin a ON ugr.admin_id = a.id
  76. <where>
  77. ugr.type = 1
  78. <if test="jwcode != null and jwcode != ''">
  79. AND ugr.jwcode = #{jwcode}
  80. </if>
  81. <if test="goodsName != null and goodsName != ''">
  82. AND ugr.goods_name = #{goodsName}
  83. </if>
  84. <if test="market != null and market != ''">
  85. AND u.market = #{market}
  86. </if>
  87. <if test="payPlatform != null and payPlatform != ''">
  88. AND ugr.pay_platform = #{payPlatform}
  89. </if>
  90. <if test="startTime != null and endTime != null">
  91. AND ugr.create_time BETWEEN #{startTime} AND #{endTime}
  92. </if>
  93. </where>
  94. <trim prefix="ORDER BY" suffixOverrides=",">
  95. <choose>
  96. <!-- 当指定排序字段时使用指定字段排序 -->
  97. <when test="sortField != null and sortField != ''">
  98. <choose>
  99. <!-- 对三种金币数量的排序处理 -->
  100. <when test="sortField == 'taskGold'">ugr.task_gold</when>
  101. <when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
  102. <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when>
  103. <!-- 对时间字段的排序处理 -->
  104. <when test="sortField == 'createTime'">ugr.create_time</when>
  105. <!-- 其他字段不支持排序,使用默认排序 -->
  106. <otherwise>ugr.create_time</otherwise>
  107. </choose>
  108. <!-- 排序方向处理 -->
  109. <if test="sortOrder != null and sortOrder != ''">
  110. <choose>
  111. <when test="sortOrder == 'ASC'">ASC</when>
  112. <when test="sortOrder == 'DESC'">DESC</when>
  113. <otherwise>DESC</otherwise>
  114. </choose>
  115. </if>
  116. <if test="sortOrder == null or sortOrder == ''">
  117. DESC
  118. </if>
  119. </when>
  120. <!-- 未指定排序字段时,使用默认的时间降序排序 -->
  121. <otherwise>
  122. ugr.create_time DESC
  123. </otherwise>
  124. </choose>
  125. </trim>
  126. </select>
  127. <insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true" keyProperty="id">
  128. INSERT INTO user_gold_record
  129. <trim prefix="(" suffix=")" suffixOverrides=",">
  130. order_code,
  131. jwcode,
  132. sum_gold,
  133. permanent_gold,
  134. free_june,
  135. free_december,
  136. task_gold,
  137. goods_name,
  138. remark,
  139. type,
  140. pay_platform,
  141. is_refund,
  142. admin_id,
  143. audit_status,
  144. create_time,
  145. pay_time
  146. </trim>
  147. VALUES
  148. <trim prefix="(" suffix=")" suffixOverrides=",">
  149. #{orderCode},
  150. #{jwcode},
  151. #{sumGold},
  152. #{permanentGold},
  153. #{freeJune},
  154. #{freeDecember},
  155. #{taskGold},
  156. #{goodsName},
  157. #{remark},
  158. #{type},
  159. #{payPlatform},
  160. #{isRefund},
  161. #{adminId},
  162. #{auditStatus},
  163. #{createTime},
  164. #{payTime}
  165. </trim>
  166. </insert>
  167. <update id="updateIsRefund" parameterType="java.lang.String">
  168. UPDATE user_gold_record
  169. SET is_refund = 1
  170. <where>
  171. order_code = #{orderCode}
  172. <if test="isRefund != null and isRefund != 0">
  173. AND is_refund != 0 <!-- 可选:仅更新非0状态的记录 -->
  174. </if>
  175. </where>
  176. </update>
  177. </mapper>