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.

194 lines
8.0 KiB

<?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.AuditMapper">
<insert id="addErrorRecord">
insert into error_record (
order_code,jwcode,error_type,permanent_gold,free_june,
free_december,task_gold,origin_create_time
) values (
#{orderCode},#{jwcode},#{remark},
#{permanentGold},#{freeJune},#{freeDecember},#{taskGold},
#{createTime}
)
</insert>
<!-- 修改订单审核人与审核状态-->
<update id="updateOrder">
update user_gold_record
set audit_id = #{auditId},
audit_status = #{auditStatus},
reject_reason = #{rejectReason},
audit_time = #{auditTime}
where order_code = #{orderCode} and audit_status = 0
order by create_time DESC
limit 1
</update>
<update id="updateUserGold">
update user
<set>
<if test="currentPermanentGold != null">
current_permanent_gold = current_permanent_gold + #{currentPermanentGold},
</if>
<if test="currentFreeJune != null">
current_free_june = current_free_june + #{currentFreeJune},
</if>
<if test="currentFreeDecember != null">
current_free_december = current_free_december + #{currentFreeDecember},
</if>
<if test="currentTaskGold != null">
current_task_gold = current_task_gold + #{currentTaskGold},
</if>
</set>
where jwcode = #{jwcode}
</update>
<update id="updateOrderRefund">
update user_gold_record
set is_refund = #{isRefund}
where order_code = #{orderCode} and type in (0,1)
</update>
<select id="selectRechargeBy" resultType="com.example.demo.domain.vo.coin.RechargeAudit">
SELECT ugr.*,
(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
u.name as name,
m.name as market,
r.rate_name AS rateName,
a1.admin_name as adminName,
a2.admin_name as auditName
FROM user_gold_record as ugr
LEFT JOIN user u ON ugr.jwcode = u.jwcode
LEFT JOIN admin a1 ON ugr.admin_id = a1.id
LEFT JOIN admin a2 ON ugr.audit_id = a2.id
left join market m ON u.market = m.id
left JOIN rate r ON ugr.rate_id = r.id
<where>
<!-- <if test="rechargeAudit.flag != 0">
AND u.flag = 1
</if>-->
<if test="rechargeAudit.jwcode != null and rechargeAudit.jwcode != ''">
AND ugr.jwcode = #{rechargeAudit.jwcode}
</if>
<if test="rechargeAudit.flag!=0">
AND u.flag = 1
</if>
<if test="rechargeAudit.activity != null and rechargeAudit.activity != ''">
AND ugr.activity = #{rechargeAudit.activity}
</if>
<!-- 判断 market 是否不为总部且 markets 不为空 -->
<if test="rechargeAudit.markets != null and rechargeAudit.markets.size() > 0">
AND (
<foreach collection="rechargeAudit.markets" item="market" open="" close="" separator=" OR ">
u.market = #{market}
</foreach>
)
</if>
<if test="rechargeAudit.payModel != null and rechargeAudit.payModel != ''">
AND ugr.pay_model = #{rechargeAudit.payModel}
</if>
<!-- <if test="rechargeAudit.rateId != null and rechargeAudit.rateId != ''">
AND ugr.rate_id = #{rechargeAudit.rateId}
</if>-->
<if test="rechargeAudit.market != null and rechargeAudit.market != ''">
AND m.name = #{rechargeAudit.market}
</if>
<if test="rechargeAudit.startTime != null and rechargeAudit.endTime != null ">
AND ugr.audit_time between #{rechargeAudit.startTime} and #{rechargeAudit.endTime}
</if>
<if test="rechargeAudit.auditStatus != null and rechargeAudit.auditStatus != ''">
AND ugr.audit_status = #{rechargeAudit.auditStatus}
</if>
AND ugr.type = 0
and ugr.flag=1
</where>
<choose>
<when test="rechargeAudit.sortField != null and rechargeAudit.sortField.length > 0 or rechargeAudit.sortOrder != null and rechargeAudit.sortOrder.length > 0">
ORDER BY ${rechargeAudit.sortField} ${rechargeAudit.sortOrder}
</when>
<otherwise>
ORDER BY audit_time DESC
</otherwise>
</choose>
</select>
<select id="selectRefundBy" resultType="com.example.demo.domain.vo.coin.RefundAudit">
SELECT ugr.*,
(COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) AS freeGold,
u.name as name,
r.rate_name AS rateName,
m.name as market,
a1.admin_name as adminName,
a2.admin_name as auditName
FROM user_gold_record as ugr
LEFT JOIN user u ON ugr.jwcode = u.jwcode
LEFT JOIN admin a1 ON ugr.admin_id = a1.id
LEFT JOIN admin a2 ON ugr.audit_id = a2.id
left join market m ON u.market = m.id
left JOIN rate r ON ugr.rate_id = r.id
<where>
<!-- <if test="refundAudit.flag != 0">
AND u.flag = 1
</if>-->
<if test="refundAudit.jwcode != null">
AND ugr.jwcode = #{refundAudit.jwcode}
</if>
<if test="refundAudit.flag!=0">
AND u.flag = 1
</if>
<if test="refundAudit.refundModel != null ">
AND ugr.refund_model = #{refundAudit.refundModel}
</if>
<if test="refundAudit.refundType != null and refundAudit.refundType!='' ">
AND ugr.refund_type = #{refundAudit.refundType}
</if>
<if test="refundAudit.goodsName != null and refundAudit.goodsName != ''">
AND ugr.goods_name = #{refundAudit.goodsName}
</if>
<!-- 判断 market 是否不为总部且 markets 不为空 -->
<if test="refundAudit.markets != null and refundAudit.markets.size() > 0">
AND (
<foreach collection="refundAudit.markets" item="market" open="" close="" separator=" OR ">
u.market = #{market}
</foreach>
)
</if>
<if test="refundAudit.startTime != null and refundAudit.endTime != null ">
AND ugr.audit_time between #{refundAudit.startTime} and #{refundAudit.endTime}
</if>
<if test="refundAudit.market != null and refundAudit.market != ''">
AND m.name = #{refundAudit.market}
</if>
<if test="refundAudit.auditStatus != null and refundAudit.auditStatus != ''">
AND ugr.audit_status = #{refundAudit.auditStatus}
</if>
AND ugr.type = 2
and ugr.flag=1
</where>
<choose>
<when test="refundAudit.sortField != null and refundAudit.sortField.length > 0 or refundAudit.sortOrder != null and refundAudit.sortOrder.length > 0">
ORDER BY ${refundAudit.sortField} ${refundAudit.sortOrder}
</when>
<otherwise>
ORDER BY audit_time DESC
</otherwise>
</choose>
</select>
<select id="getName" resultType="java.lang.String">
select admin_name from admin where id = #{auditId}
</select>
<select id="getNamesByIds" resultType="com.example.demo.domain.entity.Admin">
select id, admin_name from admin
where id in
<foreach collection="submitterIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<update id="updateFirstRecharge">
update user set first_recharge = now() where jwcode = #{jwcode} and first_recharge is null
</update>
</mapper>