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.

285 lines
11 KiB

3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 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 AND u.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/100 AS sumGold,
  82. ugr.permanent_gold/100 AS permanentGold,
  83. (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGold,
  84. ugr.task_gold/100 AS taskGold,
  85. ugr.remark AS remark,
  86. a.admin_name AS adminName,
  87. ugr.create_time AS createTime,
  88. ugr.audit_time AS auditTime
  89. FROM user_gold_record ugr
  90. left JOIN
  91. user u ON u.jwcode = ugr.jwcode
  92. left JOIN
  93. admin a ON ugr.admin_id = a.id
  94. left join market m ON u.market = m.id
  95. <where>
  96. ugr.type = 2 AND ugr.audit_status IN (1,3) AND ugr.flag = 1
  97. <!-- 判断 market 是否不为总部且 markets 不为空 -->
  98. <if test="markets != null and markets.size() > 0">
  99. AND u.market IN
  100. <foreach collection="markets" item="market" open="(" separator="," close=")">
  101. #{market}
  102. </foreach>
  103. </if>
  104. <if test="flag != 0">
  105. AND u.flag = 1
  106. </if>
  107. <if test="jwcode != null and jwcode != ''">
  108. AND ugr.jwcode = #{jwcode}
  109. </if>
  110. <if test="goodsName != null and goodsName != ''">
  111. AND ugr.goods_name = #{goodsName}
  112. </if>
  113. <if test="market != null and market != ''">
  114. AND u.market = #{market}
  115. </if>
  116. <if test="refundModel != null and refundModel != ''">
  117. AND ugr.refund_model = #{refundModel}
  118. </if>
  119. <if test="refundType != null and refundType != ''">
  120. AND ugr.refund_type = #{refundType}
  121. </if>
  122. <if test="startTime != null and endTime != null">
  123. AND ugr.audit_time BETWEEN #{startTime} AND #{endTime}
  124. </if>
  125. </where>
  126. <trim prefix="ORDER BY" suffixOverrides=",">
  127. <choose>
  128. <!-- 当指定排序字段时使用指定字段排序 -->
  129. <when test="sortField != null and sortField != ''">
  130. <choose>
  131. <!-- 对三种金币数量的排序处理 -->
  132. <when test="sortField == 'taskGold'">ugr.task_gold</when>
  133. <when test="sortField == 'permanentGold'">ugr.permanent_gold</when>
  134. <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december,
  135. 0))
  136. </when>
  137. <when test="sortField == 'sumGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december,
  138. 0)+ COALESCE(ugr.permanent_gold, 0)+ COALESCE(ugr.task_gold, 0))
  139. </when>
  140. <!-- 对时间字段的排序处理 -->
  141. <when test="sortField == 'createTime'">ugr.audit_time</when>
  142. <!-- 其他字段不支持排序,使用默认排序 -->
  143. <otherwise>ugr.audit_time</otherwise>
  144. </choose>
  145. <!-- 排序方向处理 -->
  146. <if test="sortOrder != null and sortOrder != ''">
  147. <choose>
  148. <when test="sortOrder == 'ASC'">ASC</when>
  149. <when test="sortOrder == 'DESC'">DESC</when>
  150. <otherwise>DESC</otherwise>
  151. </choose>
  152. </if>
  153. <if test="sortOrder == null or sortOrder == ''">
  154. DESC
  155. </if>
  156. </when>
  157. <!-- 未指定排序字段时,使用默认的时间降序排序 -->
  158. <otherwise>
  159. ugr.audit_time DESC
  160. </otherwise>
  161. </choose>
  162. </trim>
  163. </select>
  164. <!-- 查询筛选后消费记录 -->
  165. <select id="sumGold" resultType="com.example.demo.domain.vo.coin.Gold">
  166. SELECT
  167. SUM(ugr.sum_gold)/100 AS sumGolds,
  168. SUM(ugr.permanent_gold)/100 AS permanentGolds,
  169. SUM(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGolds,
  170. SUM(ugr.task_gold)/100 AS taskGolds,
  171. count(ugr.id) AS totalNum
  172. FROM user_gold_record ugr
  173. left JOIN
  174. user u ON u.jwcode = ugr.jwcode
  175. left join market m ON u.market = m.id
  176. <where>
  177. ugr.type = 2 AND ugr.audit_status IN (1,3) AND ugr.flag = 1
  178. <!-- 判断 market 是否不为总部且 markets 不为空 -->
  179. <if test="markets != null and markets.size() > 0">
  180. AND u.market IN
  181. <foreach collection="markets" item="market" open="(" separator="," close=")">
  182. #{market}
  183. </foreach>
  184. </if>
  185. <if test="flag != 0">
  186. AND u.flag = 1
  187. </if>
  188. <if test="jwcode != null and jwcode != ''">
  189. AND ugr.jwcode = #{jwcode}
  190. </if>
  191. <if test="goodsName != null and goodsName != ''">
  192. AND ugr.goods_name = #{goodsName}
  193. </if>
  194. <if test="market != null and market != ''">
  195. AND u.market = #{market}
  196. </if>
  197. <if test="refundModel != null and refundModel != ''">
  198. AND ugr.refund_model = #{refundModel}
  199. </if>
  200. <if test="refundType != null and refundType != ''">
  201. AND ugr.refund_type = #{refundType}
  202. </if>
  203. <if test="startTime != null and endTime != null">
  204. AND ugr.audit_time BETWEEN #{startTime} AND #{endTime}
  205. </if>
  206. </where>
  207. </select>
  208. <insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true"
  209. keyProperty="id">
  210. INSERT INTO user_gold_record
  211. <trim prefix="(" suffix=")" suffixOverrides=",">
  212. order_code,
  213. jwcode,
  214. refund_type,
  215. refund_model,
  216. sum_gold,
  217. permanent_gold,
  218. free_june,
  219. free_december,
  220. task_gold,
  221. goods_name,
  222. pay_platform,
  223. remark,
  224. type,
  225. admin_id,
  226. audit_status,
  227. create_time
  228. </trim>
  229. VALUES
  230. <trim prefix="(" suffix=")" suffixOverrides=",">
  231. #{orderCode},
  232. #{jwcode},
  233. #{refundType},
  234. #{refundModel},
  235. #{sumGold},
  236. #{permanentGold},
  237. #{freeJune},
  238. #{freeDecember},
  239. #{taskGold},
  240. #{goodsName},
  241. #{payPlatform},
  242. #{remark},
  243. #{type},
  244. #{adminId},
  245. #{auditStatus},
  246. #{createTime}
  247. </trim>
  248. </insert>
  249. <select id="getRefundType" resultType="java.lang.String">
  250. select DISTINCT refund_Type
  251. from user_gold_record
  252. </select>
  253. <select id="selectGoods" resultType="com.example.demo.domain.vo.coin.RefundUser">
  254. SELECT
  255. ugr.goods_name AS goodsName,
  256. ugr.order_code AS orderCode,
  257. ugr.permanent_gold AS permanentGold,
  258. (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
  259. ugr.task_gold AS taskGold
  260. FROM user_gold_record ugr
  261. <where>
  262. ugr.is_refund = 0
  263. AND ugr.flag = 1
  264. <if test="type !=null and type != '' ">
  265. AND ugr.type = #{type}
  266. </if>
  267. <if test="jwcode != null and jwcode != ''">
  268. AND ugr.jwcode = #{jwcode}
  269. </if>
  270. </where>
  271. <trim prefix="ORDER BY" suffixOverrides=",">
  272. ugr.create_time DESC
  273. </trim>
  274. </select>
  275. </mapper>