<?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.jsowell.pile.mapper.WxpayRefundCallbackMapper">
  <resultMap id="BaseResultMap" type="com.jsowell.pile.domain.WxpayRefundCallback">
    <!--@mbg.generated-->
    <!--@Table wxpay_refund_callback-->
    <id column="id" jdbcType="INTEGER" property="id" />
    <result column="member_id" jdbcType="VARCHAR" property="memberId" />
    <result column="order_code" jdbcType="VARCHAR" property="orderCode" />
    <result column="out_trade_no" jdbcType="VARCHAR" property="outTradeNo" />
    <result column="out_refund_no" jdbcType="VARCHAR" property="outRefundNo" />
    <result column="transaction_id" jdbcType="VARCHAR" property="transactionId" />
    <result column="mch_id" jdbcType="VARCHAR" property="mchId" />
    <result column="refund_id" jdbcType="VARCHAR" property="refundId" />
    <result column="refund_status" jdbcType="VARCHAR" property="refundStatus" />
    <result column="success_time" jdbcType="VARCHAR" property="successTime" />
    <result column="user_received_account" jdbcType="VARCHAR" property="userReceivedAccount" />
    <result column="payer_total" jdbcType="VARCHAR" property="payerTotal" />
    <result column="payer_refund" jdbcType="VARCHAR" property="payerRefund" />
    <result column="amount_total" jdbcType="VARCHAR" property="amountTotal" />
    <result column="amount_refund" jdbcType="VARCHAR" property="amountRefund" />
    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, member_id, order_code, out_trade_no, out_refund_no, transaction_id, mch_id, refund_id, 
    refund_status, success_time, user_received_account, payer_total, payer_refund, amount_total, 
    amount_refund, create_time
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    <!--@mbg.generated-->
    select 
    <include refid="Base_Column_List" />
    from wxpay_refund_callback
    where id = #{id,jdbcType=INTEGER}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
    <!--@mbg.generated-->
    delete from wxpay_refund_callback
    where id = #{id,jdbcType=INTEGER}
  </delete>
  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.jsowell.pile.domain.WxpayRefundCallback" useGeneratedKeys="true">
    <!--@mbg.generated-->
    insert into wxpay_refund_callback (member_id, order_code, out_trade_no, 
      out_refund_no, transaction_id, mch_id, 
      refund_id, refund_status, success_time, 
      user_received_account, payer_total, payer_refund, 
      amount_total, amount_refund, create_time
      )
    values (#{memberId,jdbcType=VARCHAR}, #{orderCode,jdbcType=VARCHAR}, #{outTradeNo,jdbcType=VARCHAR}, 
      #{outRefundNo,jdbcType=VARCHAR}, #{transactionId,jdbcType=VARCHAR}, #{mchId,jdbcType=VARCHAR}, 
      #{refundId,jdbcType=VARCHAR}, #{refundStatus,jdbcType=VARCHAR}, #{successTime,jdbcType=VARCHAR}, 
      #{userReceivedAccount,jdbcType=VARCHAR}, #{payerTotal,jdbcType=VARCHAR}, #{payerRefund,jdbcType=VARCHAR}, 
      #{amountTotal,jdbcType=VARCHAR}, #{amountRefund,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}
      )
  </insert>
  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.jsowell.pile.domain.WxpayRefundCallback" useGeneratedKeys="true">
    <!--@mbg.generated-->
    insert into wxpay_refund_callback
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="memberId != null and memberId != ''">
        member_id,
      </if>
      <if test="orderCode != null and orderCode != ''">
        order_code,
      </if>
      <if test="outTradeNo != null and outTradeNo != ''">
        out_trade_no,
      </if>
      <if test="outRefundNo != null and outRefundNo != ''">
        out_refund_no,
      </if>
      <if test="transactionId != null and transactionId != ''">
        transaction_id,
      </if>
      <if test="mchId != null and mchId != ''">
        mch_id,
      </if>
      <if test="refundId != null and refundId != ''">
        refund_id,
      </if>
      <if test="refundStatus != null and refundStatus != ''">
        refund_status,
      </if>
      <if test="successTime != null and successTime != ''">
        success_time,
      </if>
      <if test="userReceivedAccount != null and userReceivedAccount != ''">
        user_received_account,
      </if>
      <if test="payerTotal != null and payerTotal != ''">
        payer_total,
      </if>
      <if test="payerRefund != null and payerRefund != ''">
        payer_refund,
      </if>
      <if test="amountTotal != null and amountTotal != ''">
        amount_total,
      </if>
      <if test="amountRefund != null and amountRefund != ''">
        amount_refund,
      </if>
      <if test="createTime != null">
        create_time,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="memberId != null and memberId != ''">
        #{memberId,jdbcType=VARCHAR},
      </if>
      <if test="orderCode != null and orderCode != ''">
        #{orderCode,jdbcType=VARCHAR},
      </if>
      <if test="outTradeNo != null and outTradeNo != ''">
        #{outTradeNo,jdbcType=VARCHAR},
      </if>
      <if test="outRefundNo != null and outRefundNo != ''">
        #{outRefundNo,jdbcType=VARCHAR},
      </if>
      <if test="transactionId != null and transactionId != ''">
        #{transactionId,jdbcType=VARCHAR},
      </if>
      <if test="mchId != null and mchId != ''">
        #{mchId,jdbcType=VARCHAR},
      </if>
      <if test="refundId != null and refundId != ''">
        #{refundId,jdbcType=VARCHAR},
      </if>
      <if test="refundStatus != null and refundStatus != ''">
        #{refundStatus,jdbcType=VARCHAR},
      </if>
      <if test="successTime != null and successTime != ''">
        #{successTime,jdbcType=VARCHAR},
      </if>
      <if test="userReceivedAccount != null and userReceivedAccount != ''">
        #{userReceivedAccount,jdbcType=VARCHAR},
      </if>
      <if test="payerTotal != null and payerTotal != ''">
        #{payerTotal,jdbcType=VARCHAR},
      </if>
      <if test="payerRefund != null and payerRefund != ''">
        #{payerRefund,jdbcType=VARCHAR},
      </if>
      <if test="amountTotal != null and amountTotal != ''">
        #{amountTotal,jdbcType=VARCHAR},
      </if>
      <if test="amountRefund != null and amountRefund != ''">
        #{amountRefund,jdbcType=VARCHAR},
      </if>
      <if test="createTime != null">
        #{createTime,jdbcType=TIMESTAMP},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.jsowell.pile.domain.WxpayRefundCallback">
    <!--@mbg.generated-->
    update wxpay_refund_callback
    <set>
      <if test="memberId != null and memberId != ''">
        member_id = #{memberId,jdbcType=VARCHAR},
      </if>
      <if test="orderCode != null and orderCode != ''">
        order_code = #{orderCode,jdbcType=VARCHAR},
      </if>
      <if test="outTradeNo != null and outTradeNo != ''">
        out_trade_no = #{outTradeNo,jdbcType=VARCHAR},
      </if>
      <if test="outRefundNo != null and outRefundNo != ''">
        out_refund_no = #{outRefundNo,jdbcType=VARCHAR},
      </if>
      <if test="transactionId != null and transactionId != ''">
        transaction_id = #{transactionId,jdbcType=VARCHAR},
      </if>
      <if test="mchId != null and mchId != ''">
        mch_id = #{mchId,jdbcType=VARCHAR},
      </if>
      <if test="refundId != null and refundId != ''">
        refund_id = #{refundId,jdbcType=VARCHAR},
      </if>
      <if test="refundStatus != null and refundStatus != ''">
        refund_status = #{refundStatus,jdbcType=VARCHAR},
      </if>
      <if test="successTime != null and successTime != ''">
        success_time = #{successTime,jdbcType=VARCHAR},
      </if>
      <if test="userReceivedAccount != null and userReceivedAccount != ''">
        user_received_account = #{userReceivedAccount,jdbcType=VARCHAR},
      </if>
      <if test="payerTotal != null and payerTotal != ''">
        payer_total = #{payerTotal,jdbcType=VARCHAR},
      </if>
      <if test="payerRefund != null and payerRefund != ''">
        payer_refund = #{payerRefund,jdbcType=VARCHAR},
      </if>
      <if test="amountTotal != null and amountTotal != ''">
        amount_total = #{amountTotal,jdbcType=VARCHAR},
      </if>
      <if test="amountRefund != null and amountRefund != ''">
        amount_refund = #{amountRefund,jdbcType=VARCHAR},
      </if>
      <if test="createTime != null">
        create_time = #{createTime,jdbcType=TIMESTAMP},
      </if>
    </set>
    where id = #{id,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.jsowell.pile.domain.WxpayRefundCallback">
    <!--@mbg.generated-->
    update wxpay_refund_callback
    set member_id = #{memberId,jdbcType=VARCHAR},
      order_code = #{orderCode,jdbcType=VARCHAR},
      out_trade_no = #{outTradeNo,jdbcType=VARCHAR},
      out_refund_no = #{outRefundNo,jdbcType=VARCHAR},
      transaction_id = #{transactionId,jdbcType=VARCHAR},
      mch_id = #{mchId,jdbcType=VARCHAR},
      refund_id = #{refundId,jdbcType=VARCHAR},
      refund_status = #{refundStatus,jdbcType=VARCHAR},
      success_time = #{successTime,jdbcType=VARCHAR},
      user_received_account = #{userReceivedAccount,jdbcType=VARCHAR},
      payer_total = #{payerTotal,jdbcType=VARCHAR},
      payer_refund = #{payerRefund,jdbcType=VARCHAR},
      amount_total = #{amountTotal,jdbcType=VARCHAR},
      amount_refund = #{amountRefund,jdbcType=VARCHAR},
      create_time = #{createTime,jdbcType=TIMESTAMP}
    where id = #{id,jdbcType=INTEGER}
  </update>

  <select id="selectWxpayRefundCallbackList" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from wxpay_refund_callback
    where out_trade_no in
    <foreach collection="list" item="item" open="(" separator="," close=")">
      #{item,jdbcType=VARCHAR}
    </foreach>
  </select>
</mapper>