Browse Source

1.供货/进货,只查询库存大于0的商品
2.商品同步,也只同步库存大于0的

zhangwl 1 month ago
parent
commit
8632fd42bb

+ 1 - 1
src/main/java/zs/payment/mapper/flymall/B2cGoodsStatusMapper.java

@@ -19,7 +19,7 @@ public interface B2cGoodsStatusMapper {
      * 更新商品上下架状态(对应 goodsHandleByQiYue type=1, status=2)
      * 下架时不更新upd_time
      */
-    @Update("UPDATE b2c_goods_spu_in_online SET is_on_sale = #{status} WHERE gd_id = #{gdId}")
+    @Update("UPDATE b2c_goods_spu_in_online SET is_on_sale = #{status},is_del = 1 WHERE gd_id = #{gdId}")
     int updateOnSaleStatus(@Param("gdId") Integer gdId, @Param("status") Integer status);
 
     /**

+ 5 - 0
src/main/java/zs/payment/messages/KafkaConsumer.java

@@ -171,6 +171,11 @@ public class KafkaConsumer {
             list.forEach(dto -> {
                 //todo 先查看该商品编号是否已同步企云商城。若没同步,则判断商品分类是否存在。不存在则创建
 
+                if (dto.getStock()==0){
+                    //库存为空的跳过
+                    return;
+                }
+
                 Boolean b = redisUtils.sismember(ProductSupplyRedis.SYNC_SUPPLY_ID, dto.getId().toString());
                 if (!b) {
                     //不存在,则需要添加

+ 7 - 2
src/main/java/zs/payment/service/commodity/impl/CommodityProcureServiceImpl.java

@@ -167,6 +167,11 @@ public class CommodityProcureServiceImpl implements CommodityProcureService {
             throw new ApiException("云商城商品数据为空: gdId=" + gdId);
         }
         List<B2cGoodsSkuInOnline> dbSkuList = b2cGoodsSkuInOnlineService.findByGdId(String.valueOf(gdId));
+
+        if (dbSkuList == null || dbSkuList.isEmpty()) {
+            throw new ApiException("云商城商品库存为0: gdId=" + gdId);
+        }
+
         List<B2cGoodsImgInOnline> dbImgList = b2cGoodsImgInOnlineService.findByGdId(String.valueOf(gdId));
         B2cShop b2cShop = b2cShopService.getById(spu.getShopId());
 
@@ -1222,14 +1227,14 @@ public class CommodityProcureServiceImpl implements CommodityProcureService {
         }
         Integer gdId = item.getGdId();
 
-        // Step 1: 下架商品(is_on_sale=2)
+        // Step 1: 下架商品(is_on_sale=2)  并且软删除
         int affected = b2cGoodsStatusMapper.updateOnSaleStatus(gdId, 2);
         if (affected <= 0) {
             throw new ApiException("停止供货失败!");
         }
 
         // Step 2: 软删除商品(is_del=1)
-        b2cGoodsStatusMapper.softDeleteSpu(gdId);
+//        b2cGoodsStatusMapper.softDeleteSpu(gdId);
 
         // Step 3: 更新货架商品数量 + 软删除货架商品
         updateShelfCountAndDelete(storeid, gdId);

+ 2 - 1
src/main/java/zs/payment/service/flymall/b2cgoodsskuinonline/impl/B2cGoodsSkuInOnlineServiceImpl.java

@@ -15,6 +15,7 @@ import java.util.List;
 public class B2cGoodsSkuInOnlineServiceImpl extends ServiceImpl<B2cGoodsSkuInOnlineMapper, B2cGoodsSkuInOnline> implements B2cGoodsSkuInOnlineService {
     @Override
     public List<B2cGoodsSkuInOnline> findByGdId(String gdId) {
-        return lambdaQuery().eq(B2cGoodsSkuInOnline::getGdId, gdId).list();
+        // 库存大于0的商品
+        return lambdaQuery().eq(B2cGoodsSkuInOnline::getGdId, gdId).gt(B2cGoodsSkuInOnline::getGdStock,0).list();
     }
 }