diff --git a/jzo2o-oreders/jzo2o-orders-manager/src/main/java/com/jzo2o/orders/manager/listener/TradeStatusListener.java b/jzo2o-oreders/jzo2o-orders-manager/src/main/java/com/jzo2o/orders/manager/listener/TradeStatusListener.java index d92dd81..86673fe 100644 --- a/jzo2o-oreders/jzo2o-orders-manager/src/main/java/com/jzo2o/orders/manager/listener/TradeStatusListener.java +++ b/jzo2o-oreders/jzo2o-orders-manager/src/main/java/com/jzo2o/orders/manager/listener/TradeStatusListener.java @@ -1,6 +1,7 @@ package com.jzo2o.orders.manager.listener; import com.alibaba.fastjson.JSON; +import com.jzo2o.api.trade.enums.TradingStateEnum; import com.jzo2o.common.constants.MqConstants; import com.jzo2o.common.expcetions.DBException; import com.jzo2o.common.model.msg.TradeStatusMsg; @@ -54,10 +55,10 @@ public class TradeStatusListener { // 处理当前微服务并且支付成功的订单 List tradeStatusMsgList = msgList.stream() .filter(statusMsg -> ordersCreateService.PRODUCT_APP_ID.equals(statusMsg.getProductAppId()) - && statusMsg.getStatusCode() == OrderPayStatusEnum.PAY_SUCCESS.getStatus()) + && TradingStateEnum.YJS.getCode().equals(statusMsg.getStatusCode())) .collect(Collectors.toList()); - transactionTemplate.execute(status -> { + transactionTemplate.executeWithoutResult(status -> { for (TradeStatusMsg tradeStatusMsg : tradeStatusMsgList) { if (!ordersCommonService.updateStatus(OrderUpdateStatusDTO.builder() .id(tradeStatusMsg.getProductOrderNo()) @@ -71,7 +72,6 @@ public class TradeStatusListener { throw new DBException("更新订单状态失败"); } } - return true; }); } } \ No newline at end of file diff --git a/jzo2o-oreders/jzo2o-orders-manager/src/main/java/com/jzo2o/orders/manager/service/impl/OrdersCreateServiceImpl.java b/jzo2o-oreders/jzo2o-orders-manager/src/main/java/com/jzo2o/orders/manager/service/impl/OrdersCreateServiceImpl.java index 6088ca8..9bde263 100644 --- a/jzo2o-oreders/jzo2o-orders-manager/src/main/java/com/jzo2o/orders/manager/service/impl/OrdersCreateServiceImpl.java +++ b/jzo2o-oreders/jzo2o-orders-manager/src/main/java/com/jzo2o/orders/manager/service/impl/OrdersCreateServiceImpl.java @@ -21,6 +21,8 @@ import com.jzo2o.orders.base.enums.OrderPayStatusEnum; import com.jzo2o.orders.base.enums.OrderStatusEnum; import com.jzo2o.orders.base.mapper.OrdersMapper; import com.jzo2o.orders.base.model.domain.Orders; +import com.jzo2o.orders.base.model.dto.OrderUpdateStatusDTO; +import com.jzo2o.orders.base.service.IOrdersCommonService; import com.jzo2o.orders.manager.model.dto.request.OrdersPayReqDTO; import com.jzo2o.orders.manager.model.dto.request.PlaceOrderReqDTO; import com.jzo2o.orders.manager.model.dto.response.OrdersPayResDTO; @@ -59,8 +61,8 @@ public class OrdersCreateServiceImpl extends ServiceImpl i private TradingApi tradingApi; @Resource private TradeProperties tradeProperties; - - private final String PRODUCT_APP_ID = "jzo2o.orders"; + @Resource + private IOrdersCommonService ordersCommonService; /** * 生成订单号(2位年+2位月+2位日+13位序号) @@ -150,7 +152,7 @@ public class OrdersCreateServiceImpl extends ServiceImpl i .productAppId(PRODUCT_APP_ID) .productOrderNo(id) .tradingChannel(tradingChannel) - .tradingAmount(/*orders.getRealPayAmount() 测试统一使用0.1元*/ new BigDecimal("0.1")) + .tradingAmount(/*orders.getRealPayAmount() 测试统一使用0.01元*/ new BigDecimal("0.01")) .memo(orders.getServeItemName() + orders.getPurNum() + "个") .changeChannel(tradingChannel.name().equals(orders.getTradingChannel())) .build(); @@ -201,13 +203,16 @@ public class OrdersCreateServiceImpl extends ServiceImpl i // 支付成功 if (ObjectUtils.isNotEmpty(tradingResDTO) && tradingResDTO.getTradingState() == TradingStateEnum.YJS) { - lambdaUpdate() - .eq(Orders::getId, id) - .set(Orders::getPayTime, LocalDateTime.now()) - .set(Orders::getPayStatus, OrderPayStatusEnum.PAY_SUCCESS.getStatus()) - .set(Orders::getOrdersStatus, OrderStatusEnum.DISPATCHING.getStatus()) - .set(Orders::getTransactionId, tradingResDTO.getTransactionId()) - .update(); + + ordersCommonService.updateStatus(OrderUpdateStatusDTO.builder() + .id(id) + .originStatus(OrderStatusEnum.NO_PAY.getStatus()) + .targetStatus(OrderStatusEnum.DISPATCHING.getStatus()) + .payStatus(OrderPayStatusEnum.PAY_SUCCESS.getStatus()) + .tradingOrderNo(tradingResDTO.getTradingOrderNo()) + .transactionId(tradingResDTO.getTransactionId()) + .tradingChannel(tradingResDTO.getTradingChannel()) + .payTime(LocalDateTime.now()).build()); // 支付成功更新最终响应信息的状态 ordersPayResDTO.setPayStatus(OrderPayStatusEnum.PAY_SUCCESS.getStatus());