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.

231 lines
9.2 KiB

2 months ago
2 months ago
1 month ago
1 month ago
1 month ago
1 month 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
1 month ago
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
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
1 month ago
1 month ago
1 month ago
2 months ago
1 month 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.coin.RefundMapper">
  4. <!-- 查询所有退款记录 -->
  5. <select id="selectAll" resultType="com.example.demo.domain.vo.coin.RefundUser">
  6. SELECT u.name AS name,
  7. ugr.jwcode AS jwcode,
  8. u.market AS market,
  9. ugr.order_code AS orderCode,
  10. ugr.goods_name AS goodsName,
  11. ugr.refund_model AS refundModel,
  12. ugr.refund_type AS refundType,
  13. ugr.sum_gold AS sumGold,
  14. ugr.permanent_gold AS permanentGold,
  15. (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
  16. ugr.task_gold AS taskGold,
  17. ugr.remark AS remark,
  18. a.admin_name AS adminName,
  19. ugr.create_time AS createTime
  20. FROM user_gold_record ugr
  21. left JOIN
  22. user u ON u.jwcode = ugr.jwcode
  23. left JOIN
  24. admin a ON ugr.admin_id = a.id
  25. <where>
  26. ugr.type = 2 AND ugr.audit_status IN (1,3) AND ugr.flag = 1
  27. <!-- 判断 market 是否不为总部且 markets 不为空 -->
  28. <if test="markets != null and markets.size() > 0 and '1' not in markets">
  29. AND (
  30. <foreach collection="markets" item="market" open="" close="" separator=" OR ">
  31. u.market LIKE CONCAT('%', #{market}, '%')
  32. </foreach>
  33. )
  34. </if>
  35. </where>
  36. <trim prefix="ORDER BY" suffixOverrides=",">
  37. <choose>
  38. <!-- 当指定排序字段时使用指定字段排序 -->
  39. <when test="sortField != null and sortField != ''">
  40. <choose>
  41. <!-- 对三种金币数量的排序处理 -->
  42. <when test="sortField == 'taskGold'">ugr.task_gold</when>
  43. <when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
  44. <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december,
  45. 0))
  46. </when>
  47. <!-- 对时间字段的排序处理 -->
  48. <when test="sortField == 'createTime'">ugr.create_time</when>
  49. <!-- 其他字段不支持排序,使用默认排序 -->
  50. <otherwise>ugr.create_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.create_time DESC
  67. </otherwise>
  68. </choose>
  69. </trim>
  70. </select>
  71. <!-- 查询筛选后消费记录 -->
  72. <select id="selectBy" resultType="com.example.demo.domain.vo.coin.RefundUser">
  73. SELECT u.name AS name,
  74. ugr.jwcode AS jwcode,
  75. u.market AS market,
  76. ugr.order_code AS orderCode,
  77. ugr.goods_name AS goodsName,
  78. ugr.refund_model AS refundModel,
  79. ugr.refund_type AS refundType,
  80. ugr.sum_gold AS sumGold,
  81. ugr.permanent_gold AS permanentGold,
  82. (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
  83. ugr.task_gold AS taskGold,
  84. ugr.remark AS remark,
  85. a.admin_name AS adminName,
  86. ugr.create_time AS createTime
  87. FROM user_gold_record ugr
  88. left JOIN
  89. user u ON u.jwcode = ugr.jwcode
  90. left JOIN
  91. admin a ON ugr.admin_id = a.id
  92. <where>
  93. ugr.type = 2 AND ugr.audit_status IN (1,3) AND ugr.flag = 1
  94. <if test="markets != null and markets.size > 0 and !(markets.size() == 1 and markets[0] == '')">
  95. AND u.market IN
  96. <foreach collection="markets" item="market" open="(" separator="," close=")">
  97. #{market}
  98. </foreach>
  99. </if>
  100. <if test="jwcode != null and jwcode != ''">
  101. AND ugr.jwcode = #{jwcode}
  102. </if>
  103. <if test="goodsName != null and goodsName != ''">
  104. AND ugr.goods_name = #{goodsName}
  105. </if>
  106. <if test="market != null and market != ''">
  107. AND u.market = #{market}
  108. </if>
  109. <if test="refundModel != null and refundModel != ''">
  110. AND ugr.refund_model = #{refundModel}
  111. </if>
  112. <if test="refundType != null and refundType != ''">
  113. AND ugr.refund_type = #{refundType}
  114. </if>
  115. <if test="startTime != null and endTime != null">
  116. AND ugr.create_time BETWEEN #{startTime} AND #{endTime}
  117. </if>
  118. </where>
  119. <trim prefix="ORDER BY" suffixOverrides=",">
  120. <choose>
  121. <!-- 当指定排序字段时使用指定字段排序 -->
  122. <when test="sortField != null and sortField != ''">
  123. <choose>
  124. <!-- 对三种金币数量的排序处理 -->
  125. <when test="sortField == 'taskGold'">ugr.task_gold</when>
  126. <when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
  127. <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december,
  128. 0))
  129. </when>
  130. <when test="sortField == 'sumGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december,
  131. 0)+ COALESCE(ugr.permanent_gold, 0)+ COALESCE(ugr.task_gold, 0))
  132. </when>
  133. <!-- 对时间字段的排序处理 -->
  134. <when test="sortField == 'createTime'">ugr.create_time</when>
  135. <!-- 其他字段不支持排序,使用默认排序 -->
  136. <otherwise>ugr.create_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.create_time DESC
  153. </otherwise>
  154. </choose>
  155. </trim>
  156. </select>
  157. <insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true"
  158. keyProperty="id">
  159. INSERT INTO user_gold_record
  160. <trim prefix="(" suffix=")" suffixOverrides=",">
  161. order_code,
  162. jwcode,
  163. refund_type,
  164. refund_model,
  165. sum_gold,
  166. permanent_gold,
  167. free_june,
  168. free_december,
  169. task_gold,
  170. goods_name,
  171. pay_platform,
  172. remark,
  173. type,
  174. admin_id,
  175. audit_status,
  176. create_time
  177. </trim>
  178. VALUES
  179. <trim prefix="(" suffix=")" suffixOverrides=",">
  180. #{orderCode},
  181. #{jwcode},
  182. #{refundType},
  183. #{refundModel},
  184. #{sumGold},
  185. #{permanentGold},
  186. #{freeJune},
  187. #{freeDecember},
  188. #{taskGold},
  189. #{goodsName},
  190. #{payPlatform},
  191. #{remark},
  192. #{type},
  193. #{adminId},
  194. #{auditStatus},
  195. #{createTime}
  196. </trim>
  197. </insert>
  198. <select id="getRefundType" resultType="java.lang.String">
  199. select DISTINCT refund_Type
  200. from user_gold_record
  201. </select>
  202. <select id="selectGoods" resultType="com.example.demo.domain.vo.coin.RefundUser">
  203. SELECT
  204. ugr.goods_name AS goodsName,
  205. ugr.order_code AS orderCode,
  206. ugr.permanent_gold AS permanentGold,
  207. (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
  208. ugr.task_gold AS taskGold
  209. FROM user_gold_record ugr
  210. <where>
  211. ugr.type = 1
  212. AND ugr.is_refund = 0
  213. AND ugr.flag = 1
  214. <if test="jwcode != null and jwcode != ''">
  215. AND ugr.jwcode = #{jwcode}
  216. </if>
  217. </where>
  218. <trim prefix="ORDER BY" suffixOverrides=",">
  219. ugr.create_time DESC
  220. </trim>
  221. </select>
  222. </mapper>