fix(orders.manager):修复支付接口的调用参数错误的bug

This commit is contained in:
JIAN 2024-09-20 10:58:43 +08:00
parent e78ff52701
commit 554aa38576
4 changed files with 20 additions and 13 deletions

View File

@ -41,7 +41,7 @@ public class OrderCancelJob {
// 取消所有超时未支付订单
transactionTemplate.executeWithoutResult(status ->
orderList.forEach(order -> ordersCanceledService.cancelPayOverTimeOrder(order.getId())));
orderList.forEach(order -> ordersCanceledService.cancelPayOverTimeOrder(order)));
}
@XxlJob("handlerRefundOrder")

View File

@ -1,6 +1,7 @@
package com.jzo2o.orders.manager.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.orders.base.model.domain.Orders;
import com.jzo2o.orders.base.model.domain.OrdersCanceled;
import com.jzo2o.orders.manager.model.dto.OrderCancelDTO;
@ -22,5 +23,5 @@ public interface IOrdersCanceledService extends IService<OrdersCanceled> {
* 系统取消超时订单(无前置判断)
* <br><b>仅内部使用!!!</b>
*/
void cancelPayOverTimeOrder(Long id);
void cancelPayOverTimeOrder(Orders order);
}

View File

@ -74,18 +74,24 @@ public class OrdersCanceledServiceImpl extends ServiceImpl<OrdersCanceledMapper,
}
@Override
public void cancelPayOverTimeOrder(Long id) {
public void cancelPayOverTimeOrder(Orders order) {
// 二次确认防止在此期间支付
TradingResDTO tradingResDTO = tradingApi.findTradResultByTradingOrderNo(id);
if (ObjectUtils.isEmpty(tradingResDTO) || tradingResDTO.getTradingState() != TradingStateEnum.YJS) {
cancelNoPayOrder(OrderCancelDTO.builder()
.id(id)
.cancelReason("订单超时未支付自动取消")
.currentUserId(-1L)
.currentUserName("SYSTEM")
.currentUserType(UserType.SYSTEM)
.build());
Long tradingOrderNo = order.getTradingOrderNo();
if (ObjectUtils.isNotEmpty(tradingOrderNo)) {
// 再次请求防止已支付
TradingResDTO tradingResDTO = tradingApi.findTradResultByTradingOrderNo(tradingOrderNo);
if (ObjectUtils.isNotEmpty(tradingResDTO) && tradingResDTO.getTradingState() == TradingStateEnum.YJS) {
return;
}
}
cancelNoPayOrder(OrderCancelDTO.builder()
.id(order.getId())
.cancelReason("订单超时未支付自动取消")
.currentUserId(-1L)
.currentUserName("SYSTEM")
.currentUserType(UserType.SYSTEM)
.build());
}
private void cancelNoPayOrder(OrderCancelDTO orderCancelDTO) {

View File

@ -93,7 +93,7 @@ public class OrdersManagerServiceImpl extends ServiceImpl<OrdersMapper, Orders>
// 订单超过15分钟未支付则自动取消
if (OrderStatusEnum.NO_PAY.getStatus().equals(orders.getOrdersStatus())
&& orders.getCreateTime().isBefore(LocalDateTime.now().minusMinutes(PAY_OVERTIME_MINUTE))) {
ordersCanceledService.cancelPayOverTimeOrder(id);
ordersCanceledService.cancelPayOverTimeOrder(orders);
orderResDTO.setOrdersStatus(OrderStatusEnum.CANCELED.getStatus());
}