refactor(orders.manager):调整更新订单状态代码的实现
This commit is contained in:
parent
31c36abeaa
commit
edc2cbf7ef
@ -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<TradeStatusMsg> 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;
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -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<OrdersMapper, Orders> 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<OrdersMapper, Orders> 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<OrdersMapper, Orders> 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());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user