|
|
<?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.coin.RechargeMapper">
<!-- 查询所有充值记录 --> <select id="selectAll" resultType="com.example.demo.domain.vo.coin.RechargeUser"> SELECT u.name AS name, ugr.jwcode AS jwcode, m.name as market, ugr.activity AS activity, ugr.rate_id AS rateId, r.rate_name AS rateName, ugr.money AS money, ugr.permanent_gold AS permanentGold, (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold, ugr.pay_model AS payModel, ugr.pay_platform AS payPlatform, ugr.remark AS remark, ugr.admin_id AS adminId, a.admin_name AS adminName, ugr.pay_time AS payTime FROM user_gold_record ugr left JOIN user u ON u.jwcode = ugr.jwcode left JOIN admin a ON ugr.admin_id = a.id left JOIN rate r ON ugr.rate_id = r.id left join market m ON u.market = m.id <where> ugr.type = 0 AND ugr.audit_status IN (1,3) AND ugr.flag = 1 AND u.flag = 1 <if test="markets != null and markets.size() > 0 and '9999' not in markets and '9' not in markets"> AND ( <foreach collection="markets" item="market" open="" close="" separator=" OR "> u.market = #{market} </foreach> ) </if> </where> <trim prefix="ORDER BY" suffixOverrides=","> <choose> <!-- 当指定排序字段时使用指定字段排序 --> <when test="sortField != null and sortField != ''"> <choose> <!-- 对金币数量的排序处理 --> <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 == 'payTime'">ugr.pay_time</when> <!-- 其他字段不支持排序,使用默认排序 --> <otherwise>ugr.pay_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.pay_time DESC </otherwise> </choose> </trim> </select>
<!-- 查询筛选后充值记录 --> <select id="selectBy" resultType="com.example.demo.domain.vo.coin.RechargeUser"> SELECT u.name AS name, ugr.jwcode AS jwcode, m.name as market, ugr.activity AS activity, ugr.order_code AS orderCode, ugr.rate_id AS rateId, r.rate_name AS rateName, ugr.money/100 AS money, ugr.permanent_gold/100 AS permanentGold, (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGold, ugr.pay_model AS payModel, ugr.pay_platform AS payPlatform, ugr.remark AS remark, ugr.admin_id AS adminId, ugr.is_refund AS isRefund, a.admin_name AS adminName, ugr.pay_time AS payTime, ugr.audit_time AS auditTime FROM user_gold_record ugr left JOIN user u ON u.jwcode = ugr.jwcode left JOIN admin a ON ugr.admin_id = a.id left JOIN rate r ON ugr.rate_id = r.id left join market m ON u.market = m.id <where> ugr.type = 0 AND ugr.audit_status IN (1,3) AND ugr.flag = 1 <!-- 判断 market 是否不为总部且 markets 不为空 --> <if test="markets != null and markets.size() > 0"> AND u.market IN <foreach collection="markets" item="market" open="(" separator="," close=")"> #{market} </foreach> </if> <if test="flag != 0"> AND u.flag = 1 </if> <if test="jwcode != null and jwcode != ''"> AND ugr.jwcode = #{jwcode} </if> <if test="activity != null and activity != ''"> AND ugr.activity = #{activity} </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.audit_time BETWEEN #{startTime} AND #{endTime} </if> </where> <trim prefix="ORDER BY" suffixOverrides=","> <choose> <!-- 当指定排序字段时使用指定字段排序 --> <when test="sortField != null and sortField != ''"> <choose> <!-- 对金币数量的排序处理 --> <when test="sortField == 'permanentGold'">ugr.permanent_gold</when> <when test="sortField == 'money'">ugr.money</when> <when test="sortField == 'freeGold'">(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))</when> <!-- 对时间字段的排序处理 --> <when test="sortField == 'payTime'">ugr.audit_time</when> <!-- 其他字段不支持排序,使用默认排序 --> <otherwise>ugr.audit_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.audit_time DESC </otherwise> </choose> </trim> </select>
<!-- 查询筛选后充值记录 --> <select id="sumGold" resultType="com.example.demo.domain.vo.coin.Gold"> SELECT sum(ugr.money)/100 AS money, sum(ugr.permanent_gold)/100 AS permanentGolds, sum(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0))/100 AS freeGolds, count(ugr.id) AS totalNum FROM user_gold_record ugr left JOIN user u ON u.jwcode = ugr.jwcode left join market m ON u.market = m.id <where> ugr.type = 0 AND ugr.audit_status IN (1,3) AND ugr.flag = 1 <!-- 判断 market 是否不为总部且 markets 不为空 --> <if test="markets != null and markets.size() > 0"> AND u.market IN <foreach collection="markets" item="market" open="(" separator="," close=")"> #{market} </foreach> </if> <if test="flag != 0"> AND u.flag = 1 </if> <if test="jwcode != null and jwcode != ''"> AND ugr.jwcode = #{jwcode} </if> <if test="activity != null and activity != ''"> AND ugr.activity = #{activity} </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.audit_time BETWEEN #{startTime} AND #{endTime} </if> </where> </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, activity, sum_gold, permanent_gold, free_june, free_december, rate_id, money, voucher, pay_platform, pay_model, pay_time, remark, admin_id, type, audit_status, create_time, is_refund, link_id, price </trim> VALUES <trim prefix="(" suffix=")" suffixOverrides=","> #{orderCode}, #{jwcode}, #{activity}, #{sumGold}, #{permanentGold}, #{freeJune}, #{freeDecember}, #{rateId}, #{money}, #{voucher}, #{payPlatform}, #{payModel}, #{payTime}, #{remark}, #{adminId}, #{type}, #{auditStatus}, #{createTime}, 0, #{linkId}, #{price} </trim> </insert>
<select id="selectOrderCodeByJwcode" resultType="com.example.demo.domain.vo.coin.RechargeUser"> SELECT ugr.jwcode AS jwcode, ugr.order_code AS orderCode, ugr.is_refund AS isRefund FROM user_gold_record ugr where ugr.order_code = #{orderCode} AND ugr.jwcode = #{jwcode} AND ugr.flag = 1 </select> <!--根据订单单号获取订单信息(重复充值/消费提示)--> <select id="selectByOrderCode" resultType="com.example.demo.domain.vo.coin.GoldRepeat"> select type,order_code,jwcode, COALESCE(permanent_gold,0)/100 as permanentGold, COALESCE(free_june,0)/100 as freeJune, COALESCE(free_december,0)/100 as freeDecember, COALESCE(task_gold,0)/100 as taskGold, audit_time,goods_name,is_refund,create_time,audit_status from user_gold_record
where order_code = #{orderCode} </select></mapper>
|