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 e869675ef..e4f4d116a 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 @@ -649,4 +649,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-admin/src/main/java/com/jsowell/web/controller/pile/PileRemoteController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileRemoteController.java index ce69017b0..675badd59 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileRemoteController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileRemoteController.java @@ -95,7 +95,7 @@ public class PileRemoteController extends BaseController { if (StringUtils.isBlank(dto.getPileSn()) || StringUtils.isBlank(dto.getConnectorCode())) { throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); } - pileRemoteService.remoteStopCharging(dto.getPileSn(), dto.getConnectorCode(), null); + pileRemoteService.remoteStopCharging(dto.getPileSn(), dto.getConnectorCode(), dto.getTransactionCode()); ajaxResult = AjaxResult.success(); } catch (BusinessException e) { ajaxResult = AjaxResult.error(e.getCode(), e.getMessage()); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryPileDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryPileDTO.java index 14e3b9fb7..4555228fe 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryPileDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryPileDTO.java @@ -25,6 +25,8 @@ public class QueryPileDTO extends BasicPileDTO{ */ private String orderCode; + private String transactionCode; + /** * 桩编码+枪口号 */ 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 362f8da2a..b701b9186 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.common.DivMember; import com.jsowell.adapay.response.PaymentReverseResponse; @@ -12,14 +11,14 @@ import com.jsowell.pile.domain.*; 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; @@ -159,6 +158,8 @@ public interface OrderBasicInfoService{ */ int close15MinutesOfUnpaidOrders(); + int closeUnpaidOrders(List orderList); + WechatPayRefundResponse refundOrderWithWechatPay(ApplyRefundDTO dto); WechatPayRefundResponse refundBalanceWithWechatPay(ApplyRefundDTO dto); @@ -244,6 +245,8 @@ public interface OrderBasicInfoService{ */ List getIndexOrderInfo(IndexQueryDTO dto); + List getUnpaidOrderList(String startTime, String endTime); + /** * 获取超过15分钟的待支付状态订单 * @return 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 16d9e6c99..4c3c661e1 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 @@ -2425,6 +2425,18 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { return resultList; } + /** + * 根据时间范围查询 未支付订单 + * @param startTime + * @param endTime + * @return + */ + @Override + public List getUnpaidOrderList(String startTime, String endTime) { + List list = orderBasicInfoMapper.getUnpaidOrderList(startTime, endTime); + return CollectionUtils.isNotEmpty(list) ? list : Lists.newArrayList(); + } + /** * 获取超过15分钟的待支付状态订单 * @@ -2432,10 +2444,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { */ @Override public List getUnpaidOrderListOver15Min() { - String startString = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, new Date()); - String endString = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.addMinute(new Date(), -15)); - List list = orderBasicInfoMapper.getUnpaidOrderList(startString, endString); - return CollectionUtils.isNotEmpty(list) ? list : Lists.newArrayList(); + 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)); + return getUnpaidOrderList(startTime, endTime); } /** @@ -2451,22 +2462,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(); } @@ -2504,7 +2531,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(); @@ -3486,7 +3513,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { @Override public void payOrderSuccessCallback(PayOrderSuccessCallbackDTO dto) { OrderBasicInfo orderInfo = this.getOrderInfoByOrderCode(dto.getOrderCode()); - logger.info("订单:{}支付成功支付回调, OrderBasicInfo:{}", dto.getOrderCode(), JSON.toJSONString(orderInfo)); + logger.info("订单:{}支付成功支付回调, param:{}, OrderBasicInfo:{}", dto.getOrderCode(), JSON.toJSONString(dto), JSON.toJSONString(orderInfo)); BigDecimal payAmount = dto.getPayAmount(); // 是否发送启动指令