|
|
@@ -930,35 +930,46 @@
|
|
|
|
|
|
|
|
|
<select id="similarProdList" resultType="com.yami.shop.bean.vo.SimilarProdListVo">
|
|
|
- SELECT ss.shop_id AS shopId, p.prod_id AS prodId,p.prod_name AS prodName,p.pic,min(cha.channel_prod_price) AS channelProdPrice,sum(ss.shop_sku_stocks) shopSkuStocks FROM tz_category_prod cp INNER JOIN tz_prod p on p.prod_id = cp.prod_id
|
|
|
- LEFT JOIN tz_shop_sku ss on ss.spu_id = cp.prod_id and ss.is_delete = 0
|
|
|
- INNER JOIN tz_channel_prod cha on cha.sku_id = ss.sku_id and cha.is_delete = 0
|
|
|
- where p.is_delete = 0 and cha.channel_id = #{channelId} and
|
|
|
- cp.code in (select sc.code FROM tz_category_prod cp
|
|
|
- LEFT JOIN tz_shop_category sc on cp.code = sc.code
|
|
|
- WHERE sc.level = 2 and cp.shop_id = #{shopId} and sc.is_delete = 0 and cp.is_delete = 0
|
|
|
- and cp.prod_id = #{prodId}
|
|
|
- GROUP BY sc.code)
|
|
|
-
|
|
|
- or
|
|
|
- (
|
|
|
- p.brand_id = (SELECT brand_id FROM tz_prod WHERE prod_id = #{prodId})
|
|
|
- AND EXISTS (
|
|
|
- SELECT 1
|
|
|
- FROM tz_channel_prod base_cha
|
|
|
- INNER JOIN tz_shop_sku base_ss ON base_cha.sku_id = base_ss.sku_id
|
|
|
- WHERE base_ss.spu_id = #{prodId}
|
|
|
- AND base_cha.channel_id = 1
|
|
|
- AND base_cha.is_delete = 0
|
|
|
- AND base_ss.is_delete = 0
|
|
|
- AND cha.channel_prod_price BETWEEN
|
|
|
- base_cha.channel_prod_price * 0.9
|
|
|
- AND base_cha.channel_prod_price * 1.1
|
|
|
- )
|
|
|
- )
|
|
|
- )
|
|
|
-
|
|
|
- AND p.prod_id != #{prodId}
|
|
|
+ SELECT ss.shop_id AS shopId,
|
|
|
+ p.prod_id AS prodId,
|
|
|
+ p.prod_name AS prodName,
|
|
|
+ p.pic,
|
|
|
+ min(cha.channel_prod_price) AS channelProdPrice,
|
|
|
+ sum(ss.shop_sku_stocks) shopSkuStocks,
|
|
|
+ max(b.basket_count ) as prodCount
|
|
|
+ FROM tz_category_prod cp
|
|
|
+ INNER JOIN tz_prod p on p.prod_id = cp.prod_id
|
|
|
+ LEFT JOIN tz_shop_sku ss on ss.spu_id = cp.prod_id and ss.is_delete = 0
|
|
|
+ INNER JOIN tz_channel_prod cha on cha.sku_id = ss.sku_id and cha.is_delete = 0
|
|
|
+ LEFT JOIN tz_basket b ON b.prod_id = p.prod_id AND b.user_id = COALESCE(NULLIF(#{userId}, ''), '0')
|
|
|
+ where p.is_delete = 0 and
|
|
|
+ <if test="channelId == null">cha.channel_id = 1</if>
|
|
|
+ <if test="channelId != null">cha.channel_id = #{channelId}</if>
|
|
|
+ and
|
|
|
+ cp.code in (select sc.code
|
|
|
+ FROM tz_category_prod cp
|
|
|
+ LEFT JOIN tz_shop_category sc on cp.code = sc.code
|
|
|
+ WHERE sc.level = 2
|
|
|
+ and cp.shop_id = #{shopId}
|
|
|
+ and sc.is_delete = 0
|
|
|
+ and cp.is_delete = 0
|
|
|
+ and cp.prod_id = #{prodId}
|
|
|
+ GROUP BY sc.code)
|
|
|
+
|
|
|
+ or (
|
|
|
+ p.brand_id = (SELECT brand_id FROM tz_prod WHERE prod_id = #{prodId})
|
|
|
+ AND EXISTS (SELECT 1
|
|
|
+ FROM tz_channel_prod base_cha
|
|
|
+ INNER JOIN tz_shop_sku base_ss ON base_cha.sku_id = base_ss.sku_id
|
|
|
+ WHERE base_ss.spu_id = #{prodId}
|
|
|
+ AND base_cha.channel_id = 1
|
|
|
+ AND base_cha.is_delete = 0
|
|
|
+ AND base_ss.is_delete = 0
|
|
|
+ AND cha.channel_prod_price BETWEEN
|
|
|
+ base_cha.channel_prod_price * 0.9
|
|
|
+ AND base_cha.channel_prod_price * 1.1)
|
|
|
+ )
|
|
|
+ AND p.prod_id != #{prodId}
|
|
|
GROUP BY p.prod_id
|
|
|
</select>
|
|
|
|