Browse Source

修改首页报错

fubojin 2 weeks ago
parent
commit
db2b49b15a

+ 2 - 2
yami-shop-api/src/main/java/com/yami/shop/api/controller/ProdController.java

@@ -261,8 +261,8 @@ public class ProdController {
      */
     @GetMapping("/similarProdList")
     @ApiOperation(value = "相似商品", notes = "传入商品id")
-    public R<IPage<SimilarProdListVo>> similarProdList(PageParam<Product> page, Long prodId, Long shopId, Long channelId) {
-        return R.SUCCESS(prodService.similarProdList(page, prodId , shopId, channelId));
+    public R<IPage<SimilarProdListVo>> similarProdList(PageParam<Product> page, Long prodId, Long shopId, Long channelId,String userId) {
+        return R.SUCCESS(prodService.similarProdList(page, prodId , shopId, channelId, userId));
     }
 
 

+ 2 - 2
yami-shop-api/src/main/resources/application-dev.yml

@@ -2,9 +2,9 @@ server:
   port: 8112
 spring:
   datasource:
-    url: jdbc:mysql://rm-bp15g68z8j527q9n9xo.mysql.rds.aliyuncs.com:3306/yami_bbc?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
+    url: jdbc:mysql://47.109.84.152:3306/xinshanbao?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
     username: root
-    password: BXyzm3RKR2nA9vn5ZkeP!
+    password: Lxy$?9032
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.zaxxer.hikari.HikariDataSource
     hikari:

+ 2 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/vo/SimilarProdListVo.java

@@ -20,6 +20,8 @@ public class SimilarProdListVo {
     private Long shopId;
     @ApiModelProperty("商品spuID")
     private Long prodId;
+    @ApiModelProperty("商品购物车数量")
+    private Integer prodCount;
     @ApiModelProperty("商品名")
     private String prodName;
     @ApiModelProperty("图片")

+ 2 - 2
yami-shop-platform/src/main/resources/application-dev.yml

@@ -2,9 +2,9 @@ server:
   port: 8114
 spring:
   datasource:
-    url: jdbc:mysql://rm-bp15g68z8j527q9n9xo.mysql.rds.aliyuncs.com:3306/yami_bbc?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
+    url: jdbc:mysql://47.109.84.152:3306/xinshanbao?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
     username: root
-    password: BXyzm3RKR2nA9vn5ZkeP!
+    password: Lxy$?9032
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.zaxxer.hikari.HikariDataSource
     hikari:

+ 1 - 1
yami-shop-service/src/main/java/com/yami/shop/dao/ProductMapper.java

@@ -196,5 +196,5 @@ public interface ProductMapper extends BaseMapper<Product> {
      * @param prodId  商品ID
      * @return 商品列表
      */
-    IPage<SimilarProdListVo> similarProdList(@Param("page") Page page, @Param("prodId")Long prodId, @Param("shopId")Long shopId, @Param("channelId")Long channelId);
+    IPage<SimilarProdListVo> similarProdList(@Param("page") Page page, @Param("prodId")Long prodId, @Param("shopId")Long shopId, @Param("channelId")Long channelId,@Param("userId")String userId);
 }

+ 1 - 1
yami-shop-service/src/main/java/com/yami/shop/service/ProductService.java

@@ -150,5 +150,5 @@ public interface ProductService extends IService<Product> {
     /**
      * 根据商品ID查询相似商品
      */
-    IPage<SimilarProdListVo> similarProdList(Page<Product> page, Long prodId, Long shopId, Long channelId);
+    IPage<SimilarProdListVo> similarProdList(Page<Product> page, Long prodId, Long shopId, Long channelId,String  userId);
 }

+ 2 - 2
yami-shop-service/src/main/java/com/yami/shop/service/impl/ProductServiceImpl.java

@@ -751,8 +751,8 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
     }
 
     @Override
-    public IPage<SimilarProdListVo> similarProdList(Page<Product> page, Long prodId, Long shopId, Long channelId) {
-        return productMapper.similarProdList(page, prodId, shopId, channelId);
+    public IPage<SimilarProdListVo> similarProdList(Page<Product> page, Long prodId, Long shopId, Long channelId,String userId) {
+        return productMapper.similarProdList(page, prodId, shopId, channelId, userId);
     }
 
     /**

+ 40 - 29
yami-shop-service/src/main/resources/mapper/ProductMapper.xml

@@ -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>