From 42cec4ae1150abe7d558c8bb9c3836b3f50488bb Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Wed, 3 Dec 2025 17:40:29 +0800 Subject: [PATCH] =?UTF-8?q?12=E6=9C=883=E6=97=A5=E9=93=B6=E8=A1=8C?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3stripe=E6=95=88=E7=8E=87=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/serviceImpl/cash/BankServiceImpl.java | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/example/demo/serviceImpl/cash/BankServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/BankServiceImpl.java index af486e2..63eac62 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/BankServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/BankServiceImpl.java @@ -270,11 +270,15 @@ public class BankServiceImpl implements BankService { try { // 设置Stripe API密钥 Stripe.apiKey = "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"; - + if(bankDTO.getSum() <= 0){ + return Result.error("最大条数不能小于等于0"); + } + // 收集处理信息 + List messages = new ArrayList<>(); // 从Stripe获取最近的收费记录(最多200条) List allCharges = new ArrayList<>(); String startingAfter = null; - int totalLimit = 200; // 目标获取条数 + int totalLimit = bankDTO.getSum(); // 目标获取条数 int pageSize = 100; // 单次最大获取条数 do { @@ -283,11 +287,16 @@ public class BankServiceImpl implements BankService { if (currentPageSize <= 0) { break; // 已获取足够条数,停止 } - - // 构建分页参数 + Long startTime = LocalDate.parse(bankDTO.getStartTime(), DateTimeFormatter.ofPattern("yyyyMMdd")).atStartOfDay(ZoneId.of("Asia/Shanghai")).toEpochSecond(); + Long endTime = LocalDate.parse(bankDTO.getEndTime(), DateTimeFormatter.ofPattern("yyyyMMdd")).atStartOfDay(ZoneId.of("Asia/Shanghai")).toEpochSecond(); + ChargeListParams.Created createdCondition = ChargeListParams.Created.builder() + .setGte(startTime) // 大于等于开始时间 + .setLt(endTime) // 小于结束时间 + .build(); ChargeListParams params = ChargeListParams.builder() .setLimit((long) currentPageSize) .setStartingAfter(startingAfter) + .setCreated(createdCondition) // 加入时间筛选 .build(); try { @@ -332,7 +341,7 @@ public class BankServiceImpl implements BankService { // 设置付款币种和金额(来自charge) stripeDTO.setCurrency(charge.getCurrency().toUpperCase()); - stripeDTO.setAmount(String.valueOf(charge.getAmount())); + stripeDTO.setAmount(String.valueOf(balanceTransaction.getAmount())); // 设置收款币种(来自charge) stripeDTO.setChargeCurrency(charge.getCurrency().toUpperCase()); @@ -362,6 +371,7 @@ public class BankServiceImpl implements BankService { cashCollectionMapper.updateByGoldCoinOrderCodeByStripe(stripeDTO); } } + messages.add("成功处理订单: " + stripeDTO.getOrderNo()); } catch (Exception e) { log.error("处理Stripe数据失败,chargeId: " + charge.getId(), e); // 继续处理其他数据,不中断整个流程 @@ -371,6 +381,7 @@ public class BankServiceImpl implements BankService { // 创建响应VO对象 BankVO bankVO = new BankVO(); bankVO.setStripeDTOList(stripeDTOList); + bankVO.setMessage(messages); return Result.success(bankVO); } catch (Exception e) {