StorageDepositMapper.xml 7.57 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.yoho.order.dal.StorageDepositMapper">
    <resultMap id="BaseResultMap" type="com.yoho.order.model.StorageDeposit">
      <result column="id" property="id" jdbcType="INTEGER" />
      <result column="product_id" property="productId" jdbcType="INTEGER" />
      <result column="goods_id" property="goodsId" jdbcType="INTEGER" />
      <result column="storage_id" property="storageId" jdbcType="INTEGER" />
      <result column="deposit_code" property="depositCode" jdbcType="VARCHAR" />
      <result column="shelf_code" property="shelfCode" jdbcType="VARCHAR" />
      <result column="owner_uid" property="ownerUid" jdbcType="INTEGER" />
      <result column="order_code" property="orderCode" jdbcType="BIGINT" />
      <result column="skup" property="skup" jdbcType="INTEGER" />
      <result column="status" property="status" jdbcType="INTEGER" />
      <result column="order_status" property="orderStatus" jdbcType="INTEGER" />
      <result column="update_time" property="updateTime" jdbcType="INTEGER" />
      <result column="create_time" property="createTime" jdbcType="INTEGER" />
      <result column="deposit_start_time" property="depositStartTime" jdbcType="INTEGER" />
      <result column="deposit_end_time" property="depositEndTime" jdbcType="INTEGER" />
      <result column="edit_pid" property="editPid" jdbcType="INTEGER" />
      <result column="del_status" property="delStatus" jdbcType="INTEGER" />
      <result column="remind_status" property="remindStatus" jdbcType="INTEGER" />
      <result column="out_type" property="outType" jdbcType="INTEGER" />
    </resultMap>

    <sql id="Base_Column_List">
        id, product_id, goods_id, storage_id, deposit_code, shelf_code, owner_uid, order_code, 
        skup, status, order_status, update_time, create_time, deposit_start_time,
        deposit_end_time, edit_pid, out_type, del_status, remind_status
    </sql>
    
    <insert id="insert" parameterType="com.yoho.order.model.StorageDeposit">
        insert into storage_deposit(id, product_id, goods_id, storage_id, deposit_code, shelf_code, owner_uid, order_code, 
        skup, status, order_status, update_time, create_time, deposit_start_time,
        deposit_end_time, edit_pid, out_type)
        values (#{id}, #{productId}, #{goodsId}, #{storageId}, #{depositCode}, #{shelfCode}, #{ownerUid}, #{orderCode},
        #{skup}, #{status}, #{orderStatus}, #{updateTime}, #{createTime}, #{depositStartTime}, #{depositEndTime}, #{editPid}, #{outType})
    </insert>

    <update id="batchBindShelfCode">
        update storage_deposit set shelf_code=#{shelfCode} 
        where 1=1 
        <if test="list != null and list.size()>0">
           and deposit_code in 
        <foreach collection="list" item="depositCode" open="(" close=")" separator=",">
           #{depositCode}
        </foreach>
        </if>
    </update>
    
    <select id="selectCountByStatusAndDepotNo" resultType="java.lang.Integer">
        select count(1)   
        from storage_deposit a
        <if test="depotNo != null">
        LEFT JOIN seller_order_goods b
        ON(b.id=a.skup) 
        </if>
        where 1=1 
        <if test="status != null">
           and a.status = #{status}
        </if>
        <if test="depotNo != null">
           and b.depot_no=#{depotNo}
        </if>
    </select>
    
    <sql id="Query_Order_Sql" >
     <if test="storageDepositReq.status != null">
         and a.status = #{storageDepositReq.status}
     </if>
     <if test="storageDepositReq.depotNo != null">
         and b.depot_no = #{storageDepositReq.depotNo}
     </if>
     <if test="storageDepositReq.depositCode != null and storageDepositReq.depositCode != '' ">
         and a.deposit_code = #{storageDepositReq.depositCode}
     </if>
     <if test="storageDepositReq.orderCode != null and storageDepositReq.orderCode != '' ">
         and a.order_code = #{storageDepositReq.orderCode}
     </if>
    </sql>
    
    <select id="selectByCondition" resultMap="BaseResultMap" parameterType="com.yoho.order.model.StorageDepositReq">
        select a.*
        from storage_deposit a 
        <if test="storageDepositReq.depotNo != null">
        LEFT JOIN seller_order_goods b
        ON(b.id=a.skup)
        </if>
        where 1=1 
        <include refid="Query_Order_Sql" />
        <if test="storageDepositReq.start!=null and storageDepositReq.size != null">
         limit #{storageDepositReq.start},#{storageDepositReq.size}
        </if>
    </select>

    <select id="selectNeddRemindDeposit" resultMap="BaseResultMap">
        select a.*
        from storage_deposit a WHERE del_status = 0 and deposit_end_time &lt;= #{curTime} and remind_status = 0 AND status = 1
    </select>

    <update id="updateHasRemind">
        UPDATE storage_deposit a SET remind_status = 1 WHERE id = #{id}
    </update>

    <select id="selectNeddDownDeposit" resultMap="BaseResultMap">
        select a.*
        from storage_deposit a WHERE del_status = 0 and deposit_end_time &lt;= #{curTime} AND status = 1
    </select>

    <update id="updateStatus">
        UPDATE storage_deposit a SET status = #{status} WHERE id = #{id} AND order_status = #{orderStatus}
    </update>
    
    <select id="selectShelfCodeCnt" resultType="java.lang.Integer">
        select count(1)   
        from storage_deposit a
        <if test="depotNo != null">
        LEFT JOIN seller_order_goods b
        ON(b.id=a.skup) 
        </if>
        where 1=1 
        <if test="status != null">
           and a.status = #{status}
        </if>
        <if test="depotNo != null">
           and b.depot_no=#{depotNo}
        </if>
    </select>
    
    <select id="selectShelfCodeList" resultType="java.lang.String" parameterType="com.yoho.order.model.StorageDepositReq">
        select distinct a.shelf_code 
        from storage_deposit a 
        <if test="storageDepositReq.depotNo != null">
        LEFT JOIN seller_order_goods b
        ON(b.id=a.skup) 
        </if>
        where 1=1 
        <include refid="Query_Order_Sql" />
        <if test="storageDepositReq.start!=null and storageDepositReq.size != null">
         limit #{storageDepositReq.start},#{storageDepositReq.size}
        </if>
    </select>
    
    <select id="selectByShelfCodeList" resultMap="BaseResultMap">
        select <include refid="Base_Column_List"></include> 
        from storage_deposit 
        where 1=1 
        <if test="list != null and list.size()>0">
           and shelf_code in 
        <foreach collection="list" item="shelfCode" open="(" close=")" separator=",">
           #{shelfCode}
        </foreach>
        </if>
    </select>
    
    <select id="selectByDepositCodeList" resultMap="BaseResultMap">
        select <include refid="Base_Column_List"></include> 
        from storage_deposit 
        where 1=1 
        <if test="list != null and list.size()>0">
           and deposit_code in 
        <foreach collection="list" item="depositCode" open="(" close=")" separator=",">
           #{depositCode}
        </foreach>
        </if>
    </select>
    
    <update id="batchUpdateStatusByDepositCodeList">
        update storage_deposit 
        set status=#{status} 
        where deposit_code in 
        <foreach collection="list" item="depositCode" open="(" close=")" separator=",">
           #{depositCode}
        </foreach>
    </update>
    
    <select id="selectByOrderCode" resultMap="BaseResultMap">
        select <include refid="Base_Column_List"></include> 
        from storage_deposit 
        where order_code=#{orderCode} limit 1
    </select>
</mapper>