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) {