From 7f6eb44cfe8d24a1f11c37d6b1c12ee69b06ab2a Mon Sep 17 00:00:00 2001 From: yyb <1416014977@qq.com> Date: Wed, 7 Jan 2026 17:32:44 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=94=AF=E4=BB=98=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../m2pool/lease/task/OrderAndPayTask.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java b/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java index 6f0c6fe..d48bda9 100644 --- a/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java +++ b/src/main/java/com/m2pool/lease/task/OrderAndPayTask.java @@ -31,7 +31,9 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.Duration; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.LocalTime; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -138,14 +140,13 @@ public class OrderAndPayTask { } - @Scheduled(cron = "0 0/1 * * * ? ") + @Scheduled(cron = "0 0/30 * * * ? ") @Async("scheduledTaskExecutor") @DSTransactional public void paymentTaskV2(){ System.out.println("支付开始"+LocalDateTime.now()); Date now = DateUtils.getPreviousHalfHourOrFullHour(new Date()); - //开发环境 LocalDateTime now1 = LocalDateTime.now(); //1.查找在进行中的订单 List needPayOrderList = leaseOrderInfoMapper.getNeedPayOrderList(); @@ -300,12 +301,12 @@ public class OrderAndPayTask { for (LeaseOrderItem orderTimeInfoDto : oneDayApartOrder) { orderCompleteMap.putIfAbsent(orderTimeInfoDto.getOrderId(), true); // 计算订单结束时间(startTime + leaseTime天) - //LocalDateTime endTime = orderTimeInfoDto.getCreateTime().plusDays(orderTimeInfoDto.getLeaseTime()); + LocalDateTime endTime = orderTimeInfoDto.getCreateTime().plusDays(orderTimeInfoDto.getLeaseTime()); - //TODO 开发环境测试用1分钟当一天 差值改为差1分钟 - LocalDateTime endTime = orderTimeInfoDto.getCreateTime().plusMinutes(orderTimeInfoDto.getLeaseTime() ); - // 获取订单完成的订单详情:比较 now 和 endTime 的年月日时分秒差值是否小于30分 - if (Duration.between(now, endTime).toMinutes() <= 1) { + // 开发环境 测试用1分钟当一天 差值改为差1分钟 + //LocalDateTime endTime = orderTimeInfoDto.getCreateTime().plusMinutes(orderTimeInfoDto.getLeaseTime()); + // 获取订单完成的订单详情:比较 now 和 endTime 的年月日时分秒差值是否小于30分 + if (Duration.between(now, endTime).toMinutes() <= 30) { completeMachines.add(LeaseMachine.builder() .id(orderTimeInfoDto.getProductMachineId()) .canSaleNumbers(orderTimeInfoDto.getNumbers()) @@ -318,19 +319,19 @@ public class OrderAndPayTask { continue; } // 获取本次定时任务需要支付的订单:当前时间和订单创建时间日期不同,比较当前时间的时分秒与订单创建时间的时分秒差值是否小于30分钟 - //LocalTime nowTime = now.toLocalTime(); - //LocalTime startTime = orderTimeInfoDto.getCreateTime().toLocalTime(); - //LocalDate nowDate = now.toLocalDate(); - //LocalDate startDate = orderTimeInfoDto.getCreateTime().toLocalDate(); - // - //if (!nowDate.equals(startDate) && Duration.between(startTime, nowTime).toMinutes() <= 30) { - // needPayIds.add(orderTimeInfoDto.getId()); - // needPayInfos.add(orderTimeInfoDto); - //} + LocalTime nowTime = now.toLocalTime(); + LocalTime startTime = orderTimeInfoDto.getCreateTime().toLocalTime(); + LocalDate nowDate = now.toLocalDate(); + LocalDate startDate = orderTimeInfoDto.getCreateTime().toLocalDate(); - //开发环境 + if (!nowDate.equals(startDate) && Duration.between(startTime, nowTime).toMinutes() <= 30) { needPayIds.add(orderTimeInfoDto.getId()); needPayInfos.add(orderTimeInfoDto); + } + + //开发环境 + // needPayIds.add(orderTimeInfoDto.getId()); + // needPayInfos.add(orderTimeInfoDto); //记录某个订单下所有子项目是否都完成 orderCompleteMap.put(orderTimeInfoDto.getOrderId(), false); }