SellerWalletMapper.xml 6.7 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.yohoufo.dal.order.SellerWalletMapper" >
  <resultMap id="BaseResultMap" type="com.yohoufo.dal.order.model.SellerWallet" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="uid" property="uid" jdbcType="INTEGER" />
    <result column="amount" property="amount" jdbcType="DECIMAL" />
    <result column="lock_amount" property="lockAmount" jdbcType="DECIMAL" />
    <result column="status" property="status" jdbcType="INTEGER" />
    <result column="type" property="type" jdbcType="INTEGER" />
    <result column="create_time" property="createTime" jdbcType="INTEGER" />
    <result column="update_time" property="updateTime" jdbcType="INTEGER" />
    <result column="join_times" property="joinTimes" jdbcType="INTEGER" />
  </resultMap>
  <sql id="Base_Column_List" >
    id, uid, amount,lock_amount, status, type, create_time, update_time,join_times
  </sql>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select 
    <include refid="Base_Column_List" />
    from seller_wallet
    where id = #{id,jdbcType=INTEGER}
  </select>


  <select id="selectByUidNType" resultMap="BaseResultMap" parameterType="com.yohoufo.dal.order.model.SellerWallet" >
    select
    <include refid="Base_Column_List" />
    from seller_wallet
    where uid = #{uid,jdbcType=INTEGER} and `type` = #{type,jdbcType=TINYINT} limit 1
  </select>

  <insert id="insert" parameterType="com.yohoufo.dal.order.model.SellerWallet" keyColumn="id" keyProperty="id" useGeneratedKeys="true">
    insert into seller_wallet (id, uid, amount, lock_amount,
      status, type, create_time, 
      update_time)
    values (#{id,jdbcType=INTEGER}, #{uid,jdbcType=INTEGER}, #{amount,jdbcType=DECIMAL}, #{lockAmount,jdbcType=DECIMAL}, 
      #{status,jdbcType=INTEGER}, #{type,jdbcType=INTEGER}, #{createTime,jdbcType=INTEGER}, 
      #{updateTime,jdbcType=INTEGER})
  </insert>
  <insert id="insertSelective" parameterType="com.yohoufo.dal.order.model.SellerWallet" keyColumn="id" keyProperty="id" useGeneratedKeys="true">
    insert into seller_wallet
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        id,
      </if>
      <if test="uid != null" >
        uid,
      </if>
      <if test="amount != null" >
        amount,
      </if>
      <if test="lockAmount != null" >
        lock_amount,
      </if>
      <if test="status != null" >
        status,
      </if>
      <if test="type != null" >
        type,
      </if>
      <if test="createTime != null" >
        create_time,
      </if>
      <if test="updateTime != null" >
        update_time,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        #{id,jdbcType=INTEGER},
      </if>
      <if test="uid != null" >
        #{uid,jdbcType=INTEGER},
      </if>
      <if test="amount != null" >
        #{amount,jdbcType=DECIMAL},
      </if>
      <if test="lockAmount != null" >
        #{lockAmount,jdbcType=DECIMAL},
      </if>
      <if test="status != null" >
        #{status,jdbcType=INTEGER},
      </if>
      <if test="type != null" >
        #{type,jdbcType=INTEGER},
      </if>
      <if test="createTime != null" >
        #{createTime,jdbcType=INTEGER},
      </if>
      <if test="updateTime != null" >
        #{updateTime,jdbcType=INTEGER},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.yohoufo.dal.order.model.SellerWallet" >
    update seller_wallet
    <set >
      <if test="uid != null" >
        uid = #{uid,jdbcType=INTEGER},
      </if>
      <if test="amount != null" >
        amount = #{amount,jdbcType=DECIMAL},
      </if>
      <if test="lockAmount != null" >
        lock_amount = #{lockAmount,jdbcType=DECIMAL},
      </if>
      <if test="status != null" >
        status = #{status,jdbcType=INTEGER},
      </if>
      <if test="type != null" >
        type = #{type,jdbcType=INTEGER},
      </if>
      <if test="createTime != null" >
        create_time = #{createTime,jdbcType=INTEGER},
      </if>
      <if test="updateTime != null" >
        update_time = #{updateTime,jdbcType=INTEGER},
      </if>
    </set>
    where id = #{id,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.yohoufo.dal.order.model.SellerWallet" >
    update seller_wallet
    set uid = #{uid,jdbcType=INTEGER},
      amount = #{amount,jdbcType=DECIMAL},
      lock_amount = #{lockAmount,jdbcType=DECIMAL},
      status = #{status,jdbcType=INTEGER},
      type = #{type,jdbcType=INTEGER},
      create_time = #{createTime,jdbcType=INTEGER},
      update_time = #{updateTime,jdbcType=INTEGER}
    where id = #{id,jdbcType=INTEGER}
  </update>
    <select id="selectByUidAndType" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select 
    <include refid="Base_Column_List" />
    from seller_wallet
    where uid = #{uid,jdbcType=INTEGER} and type = #{type,jdbcType=INTEGER} 
  </select>
  
  <update id="addMoney" parameterType="com.yohoufo.dal.order.model.SellerWallet" >
    update seller_wallet set 
	      <if test="amount != null" >
	        amount = amount + #{amount,jdbcType=DECIMAL},
	      </if>
	      <if test="lockAmount != null" >
	        lock_amount = lock_amount + #{lockAmount,jdbcType=DECIMAL},
	      </if>
    	update_time = #{updateTime,jdbcType=INTEGER}  
    	where id = #{id,jdbcType=INTEGER} 
    	  <if test="amount != null" >
	        and amount + #{amount,jdbcType=DECIMAL} &gt;= 0
	      </if>
	      <if test="lockAmount != null" >
	        and lock_amount + #{lockAmount,jdbcType=DECIMAL}  &gt;= 0 
	      </if>
    	  and status=1
  </update>
  
  <update id="rejoin" >
    update seller_wallet set 
	      <if test="amount != null" >
	        amount = #{amount,jdbcType=DECIMAL},
	      </if>
	      <if test="lockAmount != null" >
	        lock_amount = #{lockAmount,jdbcType=DECIMAL},
	      </if>
	      <if test="joinTimes != null" >
	        join_times = #{joinTimes,jdbcType=INTEGER},
	      </if>
    	update_time = #{updateTime,jdbcType=INTEGER}, status=1
    	where uid = #{uid,jdbcType=INTEGER} and type=1 and status=0
  </update>
  
  <update id="returnMoney" parameterType="com.yohoufo.dal.order.model.SellerWallet" >
    update seller_wallet set amount = 0 ,status = 0,update_time = #{updateTime,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER} and amount = #{amount,jdbcType=DECIMAL} and status=1
  </update>

  <update id="changeAllMoneyToAvail" >
    update seller_wallet set amount = amount + lock_amount ,lock_amount = 0,update_time = #{updateTime,jdbcType=INTEGER} where uid = #{uid}
  </update>

</mapper>