|
|
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.mapper.ConsumeMapper">
<!-- 查询所有消费记录 --> <select id="selectAll" resultType="com.example.demo.domain.vo.ConsumeUser"> SELECT u.name AS name, u.jwcode AS jwcode, u.market AS market, ugr.goods_name AS goodsName, ugr.pay_platform AS payPlatform, ugr.sum_gold AS sumGold, ugr.permanent_gold AS permanentGold, (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold, ugr.task_gold AS taskGold, ugr.remark AS remark, a.admin_name AS adminName, ugr.create_time AS createTime FROM user u JOIN user_gold_record ugr ON u.jwcode = ugr.jwcode JOIN admin a ON ugr.admin_id = a.id WHERE ugr.type = 1 <trim prefix="ORDER BY" suffixOverrides=","> <choose> <!-- 当指定排序字段时使用指定字段排序 --> <when test="sortField != null and sortField != ''"> <choose> <!-- 对三种金币数量的排序处理 --> <when test="sortField == 'taskGold'">ugr.task_gold</when> <when test="sortField == 'permanentGold'">ugr.permanent_gold</when> <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when> <!-- 对时间字段的排序处理 --> <when test="sortField == 'createTime'">ugr.create_time</when> <!-- 其他字段不支持排序,使用默认排序 --> <otherwise>ugr.create_time</otherwise> </choose>
<!-- 排序方向处理 --> <if test="sortOrder != null and sortOrder != ''"> <choose> <when test="sortOrder == 'ASC'">ASC</when> <when test="sortOrder == 'DESC'">DESC</when> <otherwise>DESC</otherwise> </choose> </if> <if test="sortOrder == null or sortOrder == ''"> DESC </if> </when>
<!-- 未指定排序字段时,使用默认的时间降序排序 --> <otherwise> ugr.create_time DESC </otherwise> </choose> </trim> </select>
<!-- 查询筛选后消费记录 --> <select id="selectBy" resultType="com.example.demo.domain.vo.ConsumeUser"> SELECT u.name AS name, u.jwcode AS jwcode, u.market AS market, ugr.goods_name AS goodsName, ugr.pay_platform AS payPlatform, ugr.sum_gold AS sumGold, ugr.permanent_gold AS permanentGold, (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold, ugr.task_gold AS taskGold, ugr.remark AS remark, a.admin_name AS adminName, ugr.create_time AS createTime FROM user u JOIN user_gold_record ugr ON u.jwcode = ugr.jwcode JOIN admin a ON ugr.admin_id = a.id <where> ugr.type = 1 <if test="jwcode != null and jwcode != ''"> AND ugr.jwcode = #{jwcode} </if> <if test="goodsName != null and goodsName != ''"> AND ugr.goods_name = #{goodsName} </if> <if test="market != null and market != ''"> AND u.market = #{market} </if> <if test="payPlatform != null and payPlatform != ''"> AND ugr.pay_platform = #{payPlatform} </if> <if test="startTime != null and endTime != null"> AND ugr.create_time BETWEEN #{startTime} AND #{endTime} </if> </where> <trim prefix="ORDER BY" suffixOverrides=","> <choose> <!-- 当指定排序字段时使用指定字段排序 --> <when test="sortField != null and sortField != ''"> <choose> <!-- 对三种金币数量的排序处理 --> <when test="sortField == 'taskGold'">ugr.task_gold</when> <when test="sortField == 'permanentGold'">ugr.permanent_gold</when> <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when> <!-- 对时间字段的排序处理 --> <when test="sortField == 'createTime'">ugr.create_time</when> <!-- 其他字段不支持排序,使用默认排序 --> <otherwise>ugr.create_time</otherwise> </choose>
<!-- 排序方向处理 --> <if test="sortOrder != null and sortOrder != ''"> <choose> <when test="sortOrder == 'ASC'">ASC</when> <when test="sortOrder == 'DESC'">DESC</when> <otherwise>DESC</otherwise> </choose> </if> <if test="sortOrder == null or sortOrder == ''"> DESC </if> </when>
<!-- 未指定排序字段时,使用默认的时间降序排序 --> <otherwise> ugr.create_time DESC </otherwise> </choose> </trim> </select>
<insert id="add" parameterType="com.example.demo.domain.entity.UserGoldRecord" useGeneratedKeys="true" keyProperty="id"> INSERT INTO user_gold_record <trim prefix="(" suffix=")" suffixOverrides=","> order_code, jwcode, sum_gold, permanent_gold, free_june, free_december, task_gold, goods_name, remark, type, pay_platform, is_refund, admin_id, audit_status, create_time, pay_time </trim> VALUES <trim prefix="(" suffix=")" suffixOverrides=","> #{orderCode}, #{jwcode}, #{sumGold}, #{permanentGold}, #{freeJune}, #{freeDecember}, #{taskGold}, #{goodsName}, #{remark}, #{type}, #{payPlatform}, #{isRefund}, #{adminId}, #{auditStatus}, #{createTime}, #{payTime} </trim> </insert>
<update id="updateIsRefund" parameterType="java.lang.String"> UPDATE user_gold_record SET is_refund = 1 <where> order_code = #{orderCode} <if test="isRefund != null and isRefund != 0"> AND is_refund != 0 <!-- 可选:仅更新非0状态的记录 --> </if> </where> </update> </mapper>
|