160 lines
5.5 KiB
XML
160 lines
5.5 KiB
XML
<?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="cn.iocoder.mall.pay.biz.dao.PayTransactionMapper">
|
|
|
|
<sql id="FIELDS">
|
|
id, app_id, create_ip, order_id, order_subject,
|
|
order_description, order_memo, price, status, expire_time,
|
|
finish_time, notify_url, extension_id, pay_channel, payment_time,
|
|
notify_time, trade_no, refund_total, create_time
|
|
</sql>
|
|
|
|
<insert id="insert" parameterType="PayTransactionDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
|
|
INSERT INTO transaction (
|
|
app_id, create_ip, order_id, order_subject,
|
|
order_description, order_memo, price, status, expire_time,
|
|
finish_time, notify_url, extension_id, pay_channel, payment_time,
|
|
notify_time, trade_no, create_time
|
|
) VALUES (
|
|
#{appId}, #{createIp}, #{orderId}, #{orderSubject},
|
|
#{orderDescription}, #{orderMemo}, #{price}, #{status}, #{expireTime},
|
|
#{finishTime}, #{notifyUrl}, #{extensionId}, #{payChannel}, #{paymentTime},
|
|
#{notifyTime}, #{tradeNo}, #{createTime}
|
|
)
|
|
</insert>
|
|
|
|
<update id="update">
|
|
UPDATE transaction
|
|
<set>
|
|
<if test="entity.status != null">
|
|
, status = #{entity.status}
|
|
</if>
|
|
<if test="entity.extensionId != null">
|
|
, extension_id = #{entity.extensionId}
|
|
</if>
|
|
<if test="entity.payChannel != null">
|
|
, pay_channel = #{entity.payChannel}
|
|
</if>
|
|
<if test="entity.paymentTime != null">
|
|
, payment_time = #{entity.paymentTime}
|
|
</if>
|
|
<if test="entity.finishTime != null">
|
|
, finish_time = #{entity.finishTime}
|
|
</if>
|
|
<if test="entity.notifyTime != null">
|
|
, notify_time = #{entity.notifyTime}
|
|
</if>
|
|
<if test="entity.tradeNo != null">
|
|
, trade_no = #{entity.tradeNo}
|
|
</if>
|
|
</set>
|
|
WHERE id = #{entity.id}
|
|
<if test="whereStatus != null">
|
|
AND status = #{whereStatus}
|
|
</if>
|
|
</update>
|
|
|
|
<update id="updateForRefundTotal">
|
|
UPDATE `transaction`
|
|
SET refund_total = refund_total + ${refundTotalIncr}
|
|
WHERE price >= refund_total + ${refundTotalIncr}
|
|
</update>
|
|
|
|
<select id="selectByAppIdAndOrderId" resultType="PayTransactionDO">
|
|
SELECT
|
|
<include refid="FIELDS"/>
|
|
FROM transaction
|
|
WHERE app_id = #{appId}
|
|
AND order_id = #{orderId}
|
|
</select>
|
|
|
|
<select id="selectById" parameterType="Integer" resultType="PayTransactionDO">
|
|
SELECT
|
|
<include refid="FIELDS"/>
|
|
FROM transaction
|
|
WHERE id = #{id}
|
|
</select>
|
|
|
|
<select id="selectListByIds" resultType="PayTransactionDO">
|
|
SELECT
|
|
<include refid="FIELDS" />
|
|
FROM transaction
|
|
WHERE id IN
|
|
<foreach item="id" collection="ids" separator="," open="(" close=")" index="">
|
|
#{id}
|
|
</foreach>
|
|
</select>
|
|
|
|
<select id="selectListByPage" resultType="PayTransactionDO">
|
|
SELECT
|
|
<include refid="FIELDS"/>
|
|
FROM transaction
|
|
<where>
|
|
<if test="createBeginTime != null">
|
|
AND create_time >= #{createBeginTime}
|
|
</if>
|
|
<if test="createEndTime != null">
|
|
AND #{createEndTime} >= create_time
|
|
</if>
|
|
<if test="paymentBeginTime != null">
|
|
AND payment_time >= #{paymentBeginTime}
|
|
</if>
|
|
<if test="paymentEndTime != null">
|
|
AND #{paymentEndTime} >= payment_time
|
|
</if>
|
|
<if test="status != null">
|
|
AND status = #{status}
|
|
</if>
|
|
<if test="hasRefund == true">
|
|
AND refund_total > 0
|
|
</if>
|
|
<if test="hasRefund == false">
|
|
AND refund_total = 0
|
|
</if>
|
|
<if test="payChannel != null">
|
|
AND pay_channel = #{payChannel}
|
|
</if>
|
|
<if test="orderSubject != null">
|
|
order_subject LIKE "%"#{orderSubject}"%"
|
|
</if>
|
|
</where>
|
|
LIMIT #{offset}, #{limit}
|
|
</select>
|
|
|
|
<select id="selectCountByPage" resultType="Integer">
|
|
SELECT
|
|
COUNT(1)
|
|
FROM transaction
|
|
<where>
|
|
<if test="createBeginTime != null">
|
|
AND create_time >= #{createBeginTime}
|
|
</if>
|
|
<if test="createEndTime != null">
|
|
AND #{createEndTime} >= create_time
|
|
</if>
|
|
<if test="paymentBeginTime != null">
|
|
AND payment_time >= #{paymentBeginTime}
|
|
</if>
|
|
<if test="paymentEndTime != null">
|
|
AND #{paymentEndTime} >= payment_time
|
|
</if>
|
|
<if test="status != null">
|
|
AND status = #{status}
|
|
</if>
|
|
<if test="hasRefund == true">
|
|
AND refund_total > 0
|
|
</if>
|
|
<if test="hasRefund == false">
|
|
AND refund_total = 0
|
|
</if>
|
|
<if test="payChannel != null">
|
|
AND pay_channel = #{payChannel}
|
|
</if>
|
|
<if test="orderSubject != null">
|
|
order_subject LIKE "%"#{orderSubject}"%"
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
</mapper>
|