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.

230 lines
9.1 KiB

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