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.

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