Browse Source

修改首页报错

fubojin 3 weeks ago
parent
commit
c52150a9ec

+ 38 - 17
yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderController.java

@@ -23,6 +23,7 @@ import com.yami.shop.bean.model.*;
 import com.yami.shop.common.exception.GlobalException;
 import com.yami.shop.common.util.Arith;
 import com.yami.shop.dao.PointsRecordMapper;
+import com.yami.shop.dao.ShopSkuMapper;
 import com.yami.shop.security.api.util.SecurityUtils;
 import com.yami.shop.service.*;
 import com.yami.shop.service.hb.IHBOrderService;
@@ -68,7 +69,7 @@ public class OrderController {
     @Autowired
     private IHBOrderService hbOrderService;
     @Autowired
-    private UserService userService;
+    private ShopSkuMapper shopSkuMapper;
 
     /**
      * 生成订单
@@ -76,32 +77,52 @@ public class OrderController {
     @PostMapping("/confirm")
     @ApiOperation(value = "结算,生成订单信息", notes = "传入下单所需要的参数进行下单")
     public ResponseEntity<ShopCartOrderMergerDto> confirm(@Valid @RequestBody OrderParam orderParam) {
+        if (orderParam.getShopId() == null){
+            throw new GlobalException("请选择店铺!");
+        }
         String userId = SecurityUtils.getUser().getUserId();
 
         if (orderParam.getOrderItem() == null) {
             orderParam.getBasketIds().forEach(basketId -> {
                 Basket byId = basketService.getById(basketId);
                 Sku byIdss = skuService.getById(byId);
-                boolean skuStock = qnhService.getSkuStock(byIdss.getSkuCode(), byId.getProdId(), orderParam.getPlatform());
-                Product byId1 = productService.getById(byId.getProdId(), orderParam.getPlatform());
-
-                if(byId1.getIsDelete() == 1 || byId1.getStatus() != 1){
-                    throw new GlobalException("当前选择的商品"+byId1.getProdName() + "已下架!请重新选择商品!");
+                ShopSku shopSku = shopSkuMapper.selectByShopAndSku(byIdss.getSkuId(), orderParam.getShopId());
+                if (shopSku.getShopSkuStocks()==null || shopSku.getShopSkuStocks()==0){
+                    throw new GlobalException("当前选择的商品库存为空!请重新选择商品!");
                 }
-
-                productService.updateById(byId1);
-                if (skuStock && byId1.getTotalStocks() < byId.getBasketCount()) {
-                    throw new GlobalException("当前选择的规格库存不足!");
+                if (shopSku.getShopSkuStocks() <  byId.getBasketCount()) {
+                    throw new GlobalException("当前选择的商品库存不足!");
                 }
+
+//                boolean skuStock = qnhService.getSkuStock(byIdss.getSkuCode(), byId.getProdId(), orderParam.getPlatform());
+//                Product byId1 = productService.getById(byId.getProdId(), orderParam.getPlatform());
+//
+//                if(byId1.getIsDelete() == 1 || byId1.getStatus() != 1){
+//                    throw new GlobalException("当前选择的商品"+byId1.getProdName() + "已下架!请重新选择商品!");
+//                }
+//
+//                productService.updateById(byId1);
+//                if (skuStock && byId1.getTotalStocks() < byId.getBasketCount()) {
+//                    throw new GlobalException("当前选择的规格库存不足!");
+//                }
             });
-        } else {
-            Sku byId = skuService.getById(orderParam.getOrderItem().getSkuId());
-            boolean skuStock = qnhService.getSkuStock(byId.getSkuCode(), orderParam.getOrderItem().getProdId(), orderParam.getPlatform());
-            Product byId1 = productService.getById(byId.getProdId(), orderParam.getPlatform());
-            productService.updateById(byId1);
-            if (skuStock && byId1.getTotalStocks() < orderParam.getOrderItem().getProdCount()) {
-                throw new GlobalException("当前选择的规格库存不足!");
+        }  else {
+
+            ShopSku shopSku = shopSkuMapper.selectByShopAndSku(orderParam.getOrderItem().getSkuId(), orderParam.getShopId());
+            if (shopSku.getShopSkuStocks()==null || shopSku.getShopSkuStocks()==0){
+                throw new GlobalException("当前选择的商品库存为空!请重新选择商品!");
+            }
+            if (shopSku.getShopSkuStocks() < orderParam.getOrderItem().getProdCount()) {
+                throw new GlobalException("当前选择的商品库存不足!");
             }
+
+//            Sku byId = skuService.getById(orderParam.getOrderItem().getSkuId());
+//            boolean skuStock = qnhService.getSkuStock(byId.getSkuCode(), orderParam.getOrderItem().getProdId(), orderParam.getPlatform());
+//            Product byId1 = productService.getById(byId.getProdId(), orderParam.getPlatform());
+//            productService.updateById(byId1);
+//            if (skuStock && byId1.getTotalStocks() < orderParam.getOrderItem().getProdCount()) {
+//                throw new GlobalException("当前选择的规格库存不足!");
+//            }
         }
 
         // 订单的地址信息

+ 3 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/app/param/OrderParam.java

@@ -54,6 +54,9 @@ public class OrderParam {
 	@ApiModelProperty(value = "渠道标识")
 	private Integer platform;
 
+    @ApiModelProperty(value = "门店ID")
+    private Long shopId;
+
 //	@ApiModelProperty(value = "每次订单提交时的uuid")
 //	private String uuid;
 //	@ApiModelProperty(value = "订单入口 SHOP_CART购物车,BUY_NOW立即购买")

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

@@ -25,7 +25,7 @@ import java.util.List;
  */
 public interface ShopSkuMapper extends BaseMapper<ShopSku> {
 
-    ShopSku selectByShopAndProd(@Param("skuId") Long skuId, @Param("shopId") Long shopId);
+    ShopSku selectByShopAndSku(@Param("skuId") Long skuId, @Param("shopId") Long shopId);
 
     /**
      * 根据商品id删除门店商品

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

@@ -332,7 +332,7 @@ public class HBGoodsService implements IHBGoodsService {
                     return HBR.error("更改价格系统找不到对应商品(单品):" + skuId);
                 }
 
-                ShopSku shopSku = shopSkuMapper.selectByShopAndProd(sku.getSkuId(), shopDetail.getShopId());
+                ShopSku shopSku = shopSkuMapper.selectByShopAndSku(sku.getSkuId(), shopDetail.getShopId());
                 if (ObjectUtil.isEmpty(shopSku)) {
                     ShopSku shopSkuInfo = new ShopSku();
                     shopSkuInfo.setShopId(shopDetail.getShopId());
@@ -385,7 +385,7 @@ public class HBGoodsService implements IHBGoodsService {
                     return HBR.error("系统找不到对应商品(单品):" + skuId);
                 }
 
-                ShopSku shopSku = shopSkuMapper.selectByShopAndProd(sku.getSkuId(), shopDetail.getShopId());
+                ShopSku shopSku = shopSkuMapper.selectByShopAndSku(sku.getSkuId(), shopDetail.getShopId());
                 if (ObjectUtil.isEmpty(shopSku)) {
                     ShopSku shopSkuInfo = new ShopSku();
                     shopSkuInfo.setShopId(shopDetail.getShopId());

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

@@ -205,7 +205,7 @@ public class QnhServiceImpl implements IQnhService {
         if (ObjectUtils.isNotEmpty(shopDetail)) {
             jsonObject.put("poi_code", shopDetail.getThirdPartyCode());
         }
-        ShopSku shopSku = shopSkuMapper.selectByShopAndProd(one1.getSkuId(), byId.getShopId());
+        ShopSku shopSku = shopSkuMapper.selectByShopAndSku(one1.getSkuId(), byId.getShopId());
         jsonObject.put("sku_code", skuCode);
         jsonObject.put("page_size", 50);
         one1.setStocks(shopSku.getShopSkuStocks());

+ 24 - 6
yami-shop-service/src/main/resources/mapper/ProductMapper.xml

@@ -672,8 +672,7 @@
         left join tz_shop_sku tss on sku.sku_id = tss.sku_id
         LEFT JOIN tz_category_prod cp on p.prod_id = cp.prod_id
         LEFT JOIN tz_shop_category sc on cp.code = sc.code
-        WHERE
-        1 = 1
+        WHERE 1 = 1
         AND p.`status` = 1 and p.`is_delete`=0
         <if test="searchParam.prodName != null and searchParam.prodName != ''">
             AND prod_name LIKE CONCAT('%', #{searchParam.prodName}, '%')
@@ -712,10 +711,9 @@
         <!-- 修改点:合并排序条件 -->
         <choose>
             <when test="searchParam.sort != null">
-                ORDER BY
                 <choose>
                     <when test="searchParam.sort == 0">
-                        t.update_time
+                        ORDER BY t.update_time
                         <if test="searchParam.orderBy != null">
                             <choose>
                                 <when test="searchParam.orderBy == 0">ASC</when>
@@ -724,7 +722,7 @@
                         </if>
                     </when>
                     <when test="searchParam.sort == 1">
-                        t1.salesVolume
+                        ORDER BY t1.salesVolume
                         <if test="searchParam.orderBy != null">
                             <choose>
                                 <when test="searchParam.orderBy == 0">ASC</when>
@@ -734,7 +732,7 @@
                         , t.prod_id DESC
                     </when>
                     <when test="searchParam.sort == 2">
-                        t.price
+                        ORDER BY t.price
                         <if test="searchParam.orderBy != null">
                             <choose>
                                 <when test="searchParam.orderBy == 0">ASC</when>
@@ -941,6 +939,26 @@
                         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>
 

+ 1 - 1
yami-shop-service/src/main/resources/mapper/ShopSkuMapper.xml

@@ -21,7 +21,7 @@
         WHERE spu_id = #{prodId}
     </update>
 
-    <select id="selectByShopAndProd" resultMap="shopProdMap">
+    <select id="selectByShopAndSku" resultType="com.yami.shop.bean.model.ShopSku">
         SELECT *
         FROM tz_shop_sku
         WHERE shop_id = #{shopId}