From 22e5a97143a72f9c22a4b37b9898c99c5fe7ac1e Mon Sep 17 00:00:00 2001 From: xupei Date: Fri, 13 Jun 2025 11:18:55 +0800 Subject: [PATCH] =?UTF-8?q?BUGFIX:=20=E4=BC=98=E6=83=A0=E5=88=B8=E7=9A=84?= =?UTF-8?q?=E4=BD=A3=E9=87=91=E8=AE=A1=E7=AE=97=EF=BC=8C=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=BE=B9=E7=95=8C=E9=97=AE=E9=A2=98=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/service/impl/AffiliateServiceImpl.java | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ai/da/service/impl/AffiliateServiceImpl.java b/src/main/java/com/ai/da/service/impl/AffiliateServiceImpl.java index 61af2518..270bd2bb 100644 --- a/src/main/java/com/ai/da/service/impl/AffiliateServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AffiliateServiceImpl.java @@ -33,6 +33,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -344,7 +345,7 @@ public class AffiliateServiceImpl extends ServiceImpl=和<) + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("trade_state", "paid") + .isNotNull("promotion_code"); + + if (!StringUtils.isNullOrEmpty(lastTime)) { + queryWrapper.ge("create_time", lastTime); // 关键修复:>=代替> + } + queryWrapper.lt("create_time", LocalDateTime.now().format(formatter)); + + List paymentInfos = paymentInfoService.list(queryWrapper); + log.info("扫描时间范围: {} - {}, 新增订单数: {}", + lastTime, LocalDateTime.now().format(formatter), paymentInfos.size()); + + // 3. 按推广码汇总支付金额 + Map codeAmount = paymentInfos.stream() + .collect(Collectors.toMap( + PaymentInfo::getPromotionCode, + payment -> new BigDecimal(payment.getPayerTotal()), + BigDecimal::add + )); + + // 4. 更新佣金数据 + codeAmount.forEach((promotionCode, amount) -> { + ProductCoupons coupon = stripeService.getProductCoupon(promotionCode, null); + if (coupon != null) { + updateCouponCommission(coupon, amount); + productCouponsMapper.updateById(coupon); + } + }); + + // 5. 结束时更新Redis时间 + String newLastTime = LocalDateTime.now().format(formatter); + redisUtil.addToString(RedisUtil.PAYMENT_INFO_LAST_SCAN_TIME, newLastTime); } /**