From 949eb9b1581ca86d7aa3d38c0bdbf8326f7c3ada Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 17 Sep 2025 13:46:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E5=AF=B9=E5=BA=94?= =?UTF-8?q?=E5=95=86=E5=93=81=E7=9A=84=E9=83=A8=E5=88=86=20=E5=AD=90?= =?UTF-8?q?=E5=BA=97=E9=93=BA=E4=BD=BF=E7=94=A8=E5=AD=90=E5=BA=97=E9=93=BA?= =?UTF-8?q?=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ShopSyncServiceImpl.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java index d01bedf4..b0a13c21 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java @@ -1343,12 +1343,26 @@ public class ShopSyncServiceImpl implements ShopSyncService { } private void saveCouponsForShops(List ids, ShopCoupon coupon, Long couponId) { - ids.forEach(id -> { + List couponFoodIds = new ArrayList<>(); + if (StrUtil.isNotBlank(coupon.getFoods()) && ",".equals(coupon.getFoods())) { + if (StrUtil.isNotBlank(coupon.getFoods()) && !",".equals(coupon.getFoods())) { + couponFoodIds = Arrays.stream(coupon.getFoods().split(",")).map(Long::parseLong).toList(); + } + } + for (Long id : ids) { + if (CollUtil.isNotEmpty(couponFoodIds)) { + List foodIds = productService.listAs(new QueryWrapper().select(Product::getId) + .in(Product::getSyncId, couponFoodIds).eq(Product::getShopId, id), Long.class); + if (CollUtil.isEmpty(foodIds)) { + continue; + } + coupon.setFoods(foodIds.stream().map(String::valueOf).collect(Collectors.joining(","))); + } coupon.setShopId(id); coupon.setSyncId(couponId); - coupon.setId(null); // 确保是新增操作 + coupon.setId(null); couponService.save(coupon); - }); + } } private void deleteCouponsBySyncId(Long couponId) {