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.

205 lines
8.0 KiB

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