From ba6a82fd2a8d7053d9c1cf00a9db6c922f63de25 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Tue, 31 Dec 2024 09:47:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=8E=A5=E5=8F=A3,=20?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E6=9C=AA=E6=94=AF=E4=BB=98=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/uniapp/customer/TempController.java | 17 +++++++ .../java/com/jsowell/service/TempService.java | 11 +++++ .../pile/service/OrderBasicInfoService.java | 7 +-- .../impl/OrderBasicInfoServiceImpl.java | 46 +++++++++++++------ 4 files changed, 63 insertions(+), 18 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java index 741b4201c..0ed5d0540 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java @@ -637,4 +637,21 @@ public class TempController extends BaseController { } return response; } + + /** + * 临时接口, 关闭未支付订单 + * https://localhost:8080/temp/closeUnpaidOrder + */ + @PostMapping("/closeUnpaidOrder") + public RestApiResponse closeUnpaidOrder(@RequestBody QueryOrderDTO dto) { + RestApiResponse response; + try { + tempService.closeUnpaidOrder(dto); + response = new RestApiResponse<>(); + } catch (Exception e) { + logger.error("临时接口, 关闭未支付订单error", e); + response = new RestApiResponse<>(); + } + return response; + } } diff --git a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java index 9a1b4099a..459ce9651 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java @@ -713,5 +713,16 @@ public class TempService { return orderCodeList; } + + /** + * 关闭未支付订单 + */ + public void closeUnpaidOrder(QueryOrderDTO dto) { + // 查询未支付订单 + List unpaidOrderList = orderBasicInfoService.getUnpaidOrderList(dto.getStartTime(), dto.getEndTime()); + logger.info("closeUnpaidOrders, startTime:{}, endTime:{}, 未支付订单:{}", dto.getStartTime(), dto.getEndTime(), JSON.toJSONString(unpaidOrderList)); + // 关闭未支付订单 + orderBasicInfoService.closeUnpaidOrders(unpaidOrderList); + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java index 0aefbb3bd..fbeebef9c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java @@ -1,6 +1,5 @@ package com.jsowell.pile.service; -import com.alipay.api.domain.ChargeOrderInfo; import com.huifu.adapay.core.exception.BaseAdaPayException; import com.jsowell.adapay.response.PaymentReverseResponse; import com.jsowell.adapay.vo.OrderSplitResult; @@ -13,14 +12,14 @@ import com.jsowell.pile.domain.SettleOrderReport; import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO; import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO; -import com.jsowell.pile.vo.uniapp.business.BusinessOrderBillingInfoVO; -import com.jsowell.pile.vo.uniapp.business.BusinessOrderDetailInfoVO; import com.jsowell.pile.vo.SupStationStatsVO; import com.jsowell.pile.vo.base.MerchantOrderInfoVO; import com.jsowell.pile.vo.base.OrderAmountDetailVO; import com.jsowell.pile.vo.base.OrderPeriodAmountVO; import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; import com.jsowell.pile.vo.nanrui.JiangSuOrderInfoVO; +import com.jsowell.pile.vo.uniapp.business.BusinessOrderBillingInfoVO; +import com.jsowell.pile.vo.uniapp.business.BusinessOrderDetailInfoVO; import com.jsowell.pile.vo.uniapp.customer.OrderVO; import com.jsowell.pile.vo.uniapp.customer.PersonPileConnectorSumInfoVO; import com.jsowell.pile.vo.uniapp.customer.SendMessageVO; @@ -160,6 +159,8 @@ public interface OrderBasicInfoService{ */ int close15MinutesOfUnpaidOrders(); + int closeUnpaidOrders(List orderList); + WechatPayRefundResponse refundOrderWithWechatPay(ApplyRefundDTO dto); WechatPayRefundResponse refundBalanceWithWechatPay(ApplyRefundDTO dto); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 5ea908b41..73b0b21c4 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -2149,22 +2149,38 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { @Override public int close15MinutesOfUnpaidOrders() { - List orderList = getUnpaidOrderListOver15Min(); - if (CollectionUtils.isNotEmpty(orderList)) { - for (OrderBasicInfo orderBasicInfo : orderList) { - this.cleanCacheByOrderCode(orderBasicInfo.getOrderCode(), orderBasicInfo.getTransactionCode()); + // 查询超过十五分钟未支付的订单 + String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.addMinute(new Date(), -30)); + String endTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.addMinute(new Date(), -15)); + List orderList = getUnpaidOrderList(startTime, endTime); + int i = closeUnpaidOrders(orderList); + return i; + } - // 通过订单号查询汇付有没有支付单 - checkUnpaidOrder(orderBasicInfo); - } - - // 订单id集合 - List orderIdList = orderList.stream() - .map(x -> String.valueOf(x.getId())) - .collect(Collectors.toList()); - // 根据orderIdList修改订单状态 - updateOrderStatusById(orderIdList, OrderStatusEnum.ORDER_CLOSE_TIMEOUT.getValue()); + /** + * 关闭未支付的订单 + * @param orderList + * @return + */ + @Override + public int closeUnpaidOrders(List orderList) { + if (CollectionUtils.isEmpty(orderList)) { + return 0; } + for (OrderBasicInfo orderBasicInfo : orderList) { + this.cleanCacheByOrderCode(orderBasicInfo.getOrderCode(), orderBasicInfo.getTransactionCode()); + + // 通过订单号查询汇付有没有支付单 + checkUnpaidOrder(orderBasicInfo); + } + + // 订单id集合 + List orderIdList = orderList.stream() + .map(x -> String.valueOf(x.getId())) + .collect(Collectors.toList()); + // 根据orderIdList修改订单状态 + updateOrderStatusById(orderIdList, OrderStatusEnum.ORDER_CLOSE_TIMEOUT.getValue()); + logger.info("closeUnpaidOrders, orderIdList:{}", orderIdList); return orderList.size(); } @@ -2202,7 +2218,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { } catch (BaseAdaPayException e) { throw new RuntimeException(e); } - logger.info("根据订单号:{}, 查询到支付信息:{}, ", orderCode, JSON.toJSONString(paymentInfoSet)); + logger.info("checkUnpaidOrder根据订单号:{}, 查询到支付信息:{}, ", orderCode, JSON.toJSONString(paymentInfoSet)); if (CollectionUtils.isNotEmpty(paymentInfoSet)) { for (PaymentInfo paymentInfo : paymentInfoSet) { String paymentId = paymentInfo.getPaymentId();