ITradeOrderDao.xml 2.53 KB
<?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.diligrp.cashier.trade.dao.ITradeOrderDao">
    <resultMap id="TradeOrderMap" type="com.diligrp.cashier.trade.model.TradeOrder">
        <id column="id" property="id"/>
        <result column="mch_id" property="mchId"/>
        <result column="trade_id" property="tradeId"/>
        <result column="type" property="type"/>
        <result column="out_trade_no" property="outTradeNo"/>
        <result column="amount" property="amount"/>
        <result column="max_amount" property="maxAmount"/>
        <result column="goods" property="goods"/>
        <result column="timeout" property="timeout"/>
        <result column="state" property="state"/>
        <result column="notify_url" property="notifyUrl"/>
        <result column="description" property="description"/>
        <result column="attach" property="attach"/>
        <result column="source" property="source"/>
        <result column="version" property="version"/>
        <result column="created_time" property="createdTime"/>
        <result column="modified_time" property="modifiedTime"/>
    </resultMap>

    <insert id="insertTradeOrder" parameterType="com.diligrp.cashier.trade.model.TradeOrder">
        INSERT INTO upay_trade_order(mch_id, trade_id, type, out_trade_no, amount, max_amount, goods, timeout,
                                     state, notify_url, description, attach, source, version, created_time, modified_time)
        VALUES (#{mchId}, #{tradeId}, #{type}, #{outTradeNo}, #{amount}, #{maxAmount}, #{goods}, #{timeout},
                #{state}, #{notifyUrl}, #{description}, #{attach}, #{source}, #{version}, #{createdTime}, #{modifiedTime})
    </insert>

    <select id="findByTradeId" resultMap="TradeOrderMap">
        SELECT * FROM upay_trade_order WHERE trade_id = #{tradeId}
    </select>

    <select id="findByOutTradeNo" resultMap="TradeOrderMap">
        SELECT * FROM upay_trade_order WHERE mch_id = #{mchId} AND out_trade_no = #{outTradeNo}
    </select>

    <update id="compareAndSetState">
        UPDATE upay_trade_order SET version = version + 1
        <if test="amount != null">
            , amount = #{amount}
        </if>
        <if test="state != null">
            , state = #{state}
        </if>
        <if test="modifiedTime != null">
            , modified_time = #{modifiedTime}
        </if>
        WHERE
          trade_id = #{tradeId} AND version = #{version}
    </update>
</mapper>