StorageDepositMapper.xml 8.03 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" />
      <result column="new_skup" property="newSkup" 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,new_skup
    </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 
        where del_status=0 
        <if test="status != null">
           and status = #{status}
        </if>
    </select>
    
    <sql id="Query_Order_Sql" >
     <if test="storageDepositReq.status != null">
         and a.status = #{storageDepositReq.status}
     </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.status != null and storageDepositReq.status== 0">
        LEFT JOIN buyer_order b
        ON( b.order_code=a.order_code) 
        </if>
        where a.del_status=0 
        <include refid="Query_Order_Sql" />
        <if test="storageDepositReq.status != null and storageDepositReq.status== 0">
           order by b.create_time 
        </if>
        <if test="storageDepositReq.status != null and storageDepositReq.status== 3">
           order by a.create_time  
        </if>
        <if test="storageDepositReq.status != null and storageDepositReq.status== 4">
           order by a.update_time desc  
        </if>
        <if test="storageDepositReq.start!=null and storageDepositReq.size != null">
         limit #{storageDepositReq.start},#{storageDepositReq.size}
        </if>
    </select>

    <select id="selectNeddRemindDeposit" resultMap="BaseResultMap">
        select <include refid="Base_Column_List"></include> 
        from storage_deposit WHERE del_status = 0 and deposit_end_time &lt;= #{curTime} and remind_status = 0 AND status = 1  limit 500
    </select>

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

    <select id="selectNeddDownDeposit" resultMap="BaseResultMap">
        select <include refid="Base_Column_List"></include>
        from storage_deposit WHERE del_status = 0 and deposit_end_time &lt;= #{curTime} AND status = 1 limit 500
    </select>

    <update id="updateStatus">
        UPDATE storage_deposit SET status = #{status}, out_type = #{outType} WHERE id = #{id} AND order_status = #{orderStatus} AND status = #{initStatus}
    </update>
    
    <select id="selectShelfCodeCnt" resultType="java.lang.Integer">
        select count(distinct shelf_code)   
        from storage_deposit 
        where 1=1 and del_status=0 
        <if test="status != null">
           and status = #{status}
        </if>
    </select>
    
    <select id="selectShelfCodeList" resultType="java.lang.String" parameterType="com.yoho.order.model.StorageDepositReq">
        select distinct a.shelf_code 
        from storage_deposit a   
        where a.del_status=0 
        <include refid="Query_Order_Sql" /> 
        order by a.shelf_code  
        <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 del_status=0 
        <if test="list != null and list.size()>0">
           and shelf_code in 
        <foreach collection="list" item="shelfCode" open="(" close=")" separator=",">
           #{shelfCode}
        </foreach>
        </if>
        <if test="status != null">
           and status = #{status}
        </if>
        order by update_time
    </select>
    
    <select id="selectByDepositCodeList" resultMap="BaseResultMap">
        select <include refid="Base_Column_List"></include> 
        from storage_deposit 
        where del_status=0 
        <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} and del_status=0 limit 1
    </select>

    <select id="selectByNewSkup" resultMap="BaseResultMap">
        select <include refid="Base_Column_List"></include>
        from storage_deposit
        where new_skup=#{newSkup} limit 1
    </select>
</mapper>