<?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.ufo.dal.StoragePriceMapper"> <resultMap id="BaseResultMap" type="com.yoho.ufo.dal.model.StoragePrice"> <id column="id" jdbcType="INTEGER" property="id"/> <result column="skup" jdbcType="INTEGER" property="skup"/> <result column="product_id" jdbcType="INTEGER" property="productId"/> <result column="goods_id" jdbcType="INTEGER" property="goodsId"/> <result column="storage_id" jdbcType="INTEGER" property="storageId"/> <result column="depot_num" jdbcType="INTEGER" property="depotNum"/> <result column="seller_uid" jdbcType="INTEGER" property="sellerUid"/> <result column="price" jdbcType="DECIMAL" property="price"/> <result column="status" jdbcType="INTEGER" property="status"/> <result column="update_time" jdbcType="INTEGER" property="updateTime"/> <result column="create_time" jdbcType="INTEGER" property="createTime"/> <result column="pre_sale_flag" jdbcType="INTEGER" property="preSaleFlag"/> </resultMap> <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer"> delete from storage_price where id = #{id,jdbcType=INTEGER} </delete> <insert id="insert" parameterType="com.yoho.ufo.dal.model.StoragePrice"> insert into storage_price (id, skup, product_id, goods_id, storage_id, depot_num, seller_uid, price, status, update_time, create_time) values (#{id,jdbcType=INTEGER}, #{skup,jdbcType=INTEGER}, #{productId,jdbcType=INTEGER}, #{goodsId,jdbcType=INTEGER}, #{storageId,jdbcType=INTEGER}, #{depotNum,jdbcType=INTEGER}, #{sellerUid,jdbcType=INTEGER}, #{price,jdbcType=DECIMAL}, #{status,jdbcType=INTEGER}, #{updateTime,jdbcType=INTEGER}, #{createTime,jdbcType=INTEGER}) </insert> <update id="updateByPrimaryKey" parameterType="com.yoho.ufo.dal.model.StoragePrice"> update storage_price set skup = #{skup,jdbcType=INTEGER}, product_id = #{productId,jdbcType=INTEGER}, goods_id = #{goodsId,jdbcType=INTEGER}, storage_id = #{storageId,jdbcType=INTEGER}, depot_num = #{depotNum,jdbcType=INTEGER}, seller_uid = #{sellerUid,jdbcType=INTEGER}, price = #{price,jdbcType=DECIMAL}, status = #{status,jdbcType=INTEGER}, update_time = #{updateTime,jdbcType=INTEGER}, create_time = #{createTime,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER} </update> <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select id, skup, product_id, goods_id, storage_id, depot_num, seller_uid, price, status, update_time, create_time from storage_price where id = #{id,jdbcType=INTEGER} </select> <select id="selectAll" resultMap="BaseResultMap"> select id, skup, product_id, goods_id, storage_id, depot_num, seller_uid, price, status, update_time, create_time from storage_price </select> <select id="selectMinPriceByProductIdList" resultMap="BaseResultMap"> select product_id, min(price) as price from storage_price where product_id in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> and status = 1 group by product_id </select> <select id="selectByGoodsIdList" resultMap="BaseResultMap"> select id, skup, product_id, goods_id, storage_id, depot_num, seller_uid, price, status, update_time, create_time from storage_price where goods_id in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </select> <select id="selectPage" resultMap="BaseResultMap"> select id, skup, product_id, goods_id, storage_id, depot_num, seller_uid, price, status, update_time, create_time from storage_price where storage_id = #{storageId} <include refid="skupPageCondition"/> order by id desc limit #{start},#{rows} </select> <select id="selectCount" resultType="java.lang.Integer"> select count(*) from storage_price where storage_id = #{storageId} <include refid="skupPageCondition"/> </select> <select id="selectFirstUidByProductIdAndUidList" resultType="java.lang.Integer"> select seller_uid from storage_price where product_id = #{productId} and status=1 <if test="uidList != null"> and seller_uid in <foreach item="item" index="index" collection="uidList" open="(" separator="," close=")"> #{item} </foreach> </if> limit 1 </select> <sql id="skupPageCondition"> <if test="sellerUid != null and sellerUid > 0"> and seller_uid = #{sellerUid} </if> <if test="status != null"> and status = #{status} </if> <if test="skup != null and skup > 0"> and skup = #{skup} </if> </sql> <update id="cancelSaleSkup" parameterType="java.lang.Integer"> update storage_price set status = 200, update_time = unix_timestamp() where skup = #{skup,jdbcType=INTEGER} and status = 1 </update> <select id="selectBySkup" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select id, skup, product_id, goods_id, storage_id, depot_num, seller_uid, price, status, update_time, create_time from storage_price where skup = #{skup,jdbcType=INTEGER} </select> <select id="selectStoragePriceCount" resultType="java.lang.Integer"> select count(*) from storage_price sp, storage s where sp.storage_id = s.id <include refid="skupPageCondition2"/> </select> <select id="selectStoragePriceList" resultMap="BaseResultMap"> select sp.id, sp.skup, sp.product_id, s.goods_id, sp.storage_id, sp.depot_num, sp.seller_uid, sp.price, sp.status, sp.update_time, sp.create_time, sp.pre_sale_flag from storage_price sp, storage s where sp.storage_id = s.id <include refid="skupPageCondition2"/> order by sp.id desc limit #{start},#{rows} </select> <sql id="skupPageCondition2"> <if test="storagePrice.status != null and storagePrice.status > -1"> and sp.status = #{storagePrice.status} </if> <if test="storagePrice.storageId != null and storagePrice.storageId > 0"> and sp.storage_id = #{storagePrice.storageId} </if> <if test="storagePrice.sellerUid != null and storagePrice.sellerUid > 0"> and sp.seller_uid = #{storagePrice.sellerUid} </if> <if test="storagePrice.productId != null and storagePrice.productId > 0"> and sp.product_id = #{storagePrice.productId} </if> <if test="storagePrice.skup != null and storagePrice.skup > 0"> and sp.skup = #{storagePrice.skup} </if> <if test="storagePrice.sizeId != null and storagePrice.sizeId > 0"> and s.size_id = #{storagePrice.sizeId} </if> <if test="storagePrice.preSaleFlag != null"> and sp.pre_sale_flag = #{storagePrice.preSaleFlag} </if> </sql> <select id="selectByProductIds" resultMap="BaseResultMap"> select id, skup, product_id, goods_id, storage_id, depot_num, seller_uid, price, status, update_time, create_time, pre_sale_flag from storage_price where product_id in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> and status = 1 limit 10000 <!-- 防止太多的数据,导致内存扛不住 --> </select> <select id="selectProductIdsBySkupInfo" resultType="java.lang.Integer"> select DISTINCT product_id from storage_price where 1 = 1 <if test="storagePrice.sellerUid != null and storagePrice.sellerUid > 0"> and seller_uid = #{storagePrice.sellerUid} </if> <if test="storagePrice.storageId != null and storagePrice.storageId > 0"> and storage_id = #{storagePrice.storageId} </if> <if test="storagePrice.skup != null and storagePrice.skup > 0"> and skup = #{storagePrice.skup} </if> order by create_time desc limit 300 </select> <select id="selectMinPriceByStorageIdList" resultMap="BaseResultMap"> select storage_id, min(price) as price from storage_price where storage_id in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> and status = 1 group by storage_id </select> <select id="selectByProductIdsAndSellerUid" resultMap="BaseResultMap"> select id, skup, product_id, goods_id, storage_id, depot_num, seller_uid, price, status, update_time, create_time from storage_price where status = #{status,jdbcType=INTEGER} and product_id in <foreach item="productItem" index="index" collection="productList" open="(" separator="," close=")"> #{productItem} </foreach> and seller_uid in <foreach item="sellerItem" index="index" collection="sellerList" open="(" separator="," close=")"> #{sellerItem} </foreach> </select> <select id="selectProductIdsBySkupInfoPlus" resultType="java.lang.Integer"> select DISTINCT product_id from storage_price where 1 = 1 <if test="storagePrice.storageId != null and storagePrice.storageId > 0"> and storage_id = #{storagePrice.storageId} </if> <if test="storagePrice.skup != null and storagePrice.skup > 0"> and skup = #{storagePrice.skup} </if> and seller_uid in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> order by create_time desc limit 300 </select> <select id="selectStoragePriceCountBySellerUid" resultType="java.lang.Integer"> select count(*) from storage_price sp, storage s where sp.storage_id = s.id <if test="storagePrice.status != null and storagePrice.status > -1"> and sp.status = #{storagePrice.status} </if> <if test="storagePrice.storageId != null and storagePrice.storageId > 0"> and sp.storage_id = #{storagePrice.storageId} </if> <if test="storagePrice.productId != null and storagePrice.productId > 0"> and sp.product_id = #{storagePrice.productId} </if> <if test="storagePrice.skup != null and storagePrice.skup > 0"> and sp.skup = #{storagePrice.skup} </if> <if test="storagePrice.sizeId != null and storagePrice.sizeId > 0"> and s.size_id = #{storagePrice.sizeId} </if> and sp.seller_uid in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </select> <select id="selectStoragePriceListBySellerUid" resultMap="BaseResultMap"> select sp.id, sp.skup, sp.product_id, s.goods_id, sp.storage_id, sp.depot_num, sp.seller_uid, sp.price, sp.status, sp.update_time, sp.create_time from storage_price sp, storage s where sp.storage_id = s.id <if test="storagePrice.status != null and storagePrice.status > -1"> and sp.status = #{storagePrice.status} </if> <if test="storagePrice.storageId != null and storagePrice.storageId > 0"> and sp.storage_id = #{storagePrice.storageId} </if> <if test="storagePrice.productId != null and storagePrice.productId > 0"> and sp.product_id = #{storagePrice.productId} </if> <if test="storagePrice.skup != null and storagePrice.skup > 0"> and sp.skup = #{storagePrice.skup} </if> <if test="storagePrice.sizeId != null and storagePrice.sizeId > 0"> and s.size_id = #{storagePrice.sizeId} </if> and sp.seller_uid in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> order by sp.id desc limit #{start},#{rows} </select> <resultMap id="HiddenSkupMap" type="com.yoho.ufo.dal.model.HiddenSkup"> <result column="seller_uid" jdbcType="INTEGER" property="sellerUid"/> <result column="skup_num" jdbcType="INTEGER" property="skupNum"/> </resultMap> <select id="selectHiddenSkup" resultMap="HiddenSkupMap"> select t2.seller_uid as seller_uid, count(t2.skup) as skup_num from storage t1, storage_price t2 where t1.id=t2.storage_id and t2.status=1 and t2.pre_sale_flag=0 and t1.suggest_high_price is not null and t2.price > t1.suggest_high_price group by t2.seller_uid having skup_num >0; </select> <select id="selectExportInfoCount" resultType="java.lang.Integer"> select count(1) from ufo_product.storage_price a, ufo_product.storage b, ufo_product.product c, ufo_product.goods d, ufo_product.size e where a.status = #{status} and a.storage_id = b.id and a.product_id = c.id and b.goods_id = d.id and b.size_id = e.id and a.seller_uid in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </select> <select id="selectExportInfoList" resultType="com.yoho.ufo.dal.model.ExportStoragePrice"> select a.product_id, c.product_name, c.product_code, a.skup, a.storage_id, d.color_name, e.size_name, a.price from ufo_product.storage_price a, ufo_product.storage b, ufo_product.product c, ufo_product.goods d, ufo_product.size e where a.status = #{status} and a.storage_id = b.id and a.product_id = c.id and b.goods_id = d.id and b.size_id = e.id and a.seller_uid in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> order by a.product_id, e.size_name, a.skup limit #{limit} </select> <select id="selectAllSkuBySeller" resultType="java.lang.Integer"> select distinct(storage_id) from storage_price where status = #{status} and seller_uid in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </select> <select id="selectExportInfoPlusList" resultType="com.yoho.ufo.dal.model.ExportStoragePriceInner"> select min(price) as skuMinimumPrice, count(skup) as skuRepertoryCount, storage_id as storageId from ufo_product.storage_price where status = #{status} and pre_sale_flag = 0 and storage_id in <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> group by storage_id </select> <select id="selectBySkupList" resultMap="BaseResultMap"> select id, skup, product_id, goods_id, storage_id, depot_num, seller_uid, price, status, pre_sale_flag from storage_price where skup in <foreach item="skup" collection="skupList" open="(" separator="," close=")"> #{skup} </foreach> </select> <select id="selectSecondCntByStatus" resultType="java.lang.Integer" parameterType="com.yoho.product.model.SecondhandReq"> select count(1) from storage_price a <if test="secondhandReq.sizeId != null"> LEFT JOIN storage b ON( b.id=a.storage_id) </if> where a.pre_sale_flag in (5,6) and a.status in (10,11,1) <include refid="Query_Second_Sql" /> </select> <sql id="Query_Second_Sql" > <if test="secondhandReq.status != null"> and a.status = #{secondhandReq.status} </if> <if test="secondhandReq.skup != null"> and a.skup = #{secondhandReq.skup} </if> <if test="secondhandReq.skupType != null and secondhandReq.skupType != -1"> and a.pre_sale_flag = #{secondhandReq.skupType} </if> <if test="secondhandReq.sellerUid != null"> and a.seller_uid = #{secondhandReq.sellerUid} </if> <if test="secondhandReq.sku != null"> and a.storage_id = #{secondhandReq.sku} </if> <if test="secondhandReq.sizeId != null"> and b.size_id=#{secondhandReq.sizeId} </if> <if test="secondhandReq.productIdList != null and secondhandReq.productIdList.size()>0"> and a.product_id in <foreach item="productId" collection="secondhandReq.productIdList" open="(" separator="," close=")"> #{productId} </foreach> </if> </sql> <select id="selectSecondTotalByCondition" resultType="java.lang.Integer" parameterType="com.yoho.product.model.SecondhandReq"> select count(1) from storage_price a <if test="secondhandReq.sizeId != null"> LEFT JOIN storage b ON( b.id=a.storage_id) </if> where a.pre_sale_flag in (5,6) and a.status in (10,11,1) <include refid="Query_Second_Sql" /> </select> <select id="selectSecondByCondition" resultMap="BaseResultMap" parameterType="com.yoho.product.model.SecondhandReq"> select a.skup, a.product_id, a.goods_id, a.storage_id, a.depot_num, a.seller_uid, a.price, a.status, a.update_time, a.create_time, a.pre_sale_flag from storage_price a <if test="secondhandReq.sizeId != null"> LEFT JOIN storage b ON( b.id=a.storage_id) </if> where a.pre_sale_flag in (5,6) and a.status in (10,11,1) <include refid="Query_Second_Sql" /> order by a.skup desc <if test="secondhandReq.start!=null and secondhandReq.size != null"> limit #{secondhandReq.start},#{secondhandReq.size} </if> </select> <update id="updateSecondhandStatusBySkup"> update storage_price set status=#{status}, update_time=unix_timestamp() where skup=#{skup} and status=10 </update> </mapper>