Commit 14ae81d6 authored by liuyang's avatar liuyang

修改检查订单并更新状态逻辑

parent c04549cf
......@@ -218,10 +218,10 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
}
WxPayOrderQueryResult queryResult = wxService.queryOrder(null, orderNo);
if ("SUCCESS".equals(queryResult.getTradeState())){
updateStatus(orderNo,ProductOrderStatusEnum.PAY_COMPLETE);
// updateStatus(orderNo,ProductOrderStatusEnum.PAY_COMPLETE);
return ProductOrderStatusEnum.PAY_COMPLETE;
}else if ("CLOSED".equals(queryResult.getTradeState())){
updateStatus(orderNo,ProductOrderStatusEnum.PAY_CLOSE);
// updateStatus(orderNo,ProductOrderStatusEnum.PAY_CLOSE);
return ProductOrderStatusEnum.PAY_CLOSE;
}else {
return ProductOrderStatusEnum.WAIT_PAY;
......@@ -231,13 +231,13 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
String queryResult = alipayService.queryOrder(orderNo);
if (StrUtil.isBlank(queryResult)){
//订单不存在
updateStatus(orderNo,ProductOrderStatusEnum.PAY_CLOSE);
// updateStatus(orderNo,ProductOrderStatusEnum.PAY_CLOSE);
return ProductOrderStatusEnum.PAY_CLOSE;
}else if (queryResult.equals("TRADE_SUCCESS") || queryResult.equals("TRADE_FINISHED")){
updateStatus(orderNo,ProductOrderStatusEnum.PAY_COMPLETE);
// updateStatus(orderNo,ProductOrderStatusEnum.PAY_COMPLETE);
return ProductOrderStatusEnum.PAY_COMPLETE;
}else if (queryResult.equals("TRADE_CLOSED")){
updateStatus(orderNo,ProductOrderStatusEnum.PAY_CLOSE);
// updateStatus(orderNo,ProductOrderStatusEnum.PAY_CLOSE);
return ProductOrderStatusEnum.PAY_CLOSE;
}else {
return ProductOrderStatusEnum.WAIT_PAY;
......@@ -260,7 +260,13 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
throw new BusinessException("订单号不存在");
}
if (orderPO.getStatus() == ProductOrderStatusEnum.WAIT_PAY){
return queryFromThirdPlatform(orderNo,orderPO.getPayMethod());
ProductOrderStatusEnum status = queryFromThirdPlatform(orderNo,orderPO.getPayMethod());
if (status == ProductOrderStatusEnum.PAY_COMPLETE){
orderComplete(orderNo);
}else {
updateStatus(orderNo,orderPO.getStatus());
}
return status;
}else {
return orderPO.getStatus();
}
......@@ -283,9 +289,13 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
return PageResult.<ProductOrderModel>builder().code(CodeEnum.SUCCESS.getCode()).count(page.getTotal()).data(list).build();
}
public void orderComplete(String orderNo) {
updateStatus(orderNo,ProductOrderStatusEnum.PAY_COMPLETE);
@Transactional
public synchronized void orderComplete(String orderNo) {
ProductOrderPO orderPO = getByOrderNo(orderNo);
if (orderPO.getStatus() == ProductOrderStatusEnum.PAY_COMPLETE){
return;
}
updateStatus(orderNo,ProductOrderStatusEnum.PAY_COMPLETE);
if (orderPO.getProductType() == ProductTypeEnum.USER_VIP){
LocalDateTime payCompleteTime = orderPO.getUpdateTime();//支付完成时间,即生效时间
int month = orderPO.getProductCount();//购买的几个月VIP
......@@ -334,8 +344,10 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
result.setResult(rtObj);
return result;
}else if (status == ProductOrderStatusEnum.PAY_COMPLETE){
orderComplete(orderPO.getOrderNo());
throw new BusinessException("订单已支付完成,请不要重覆下单");
}else if (status == ProductOrderStatusEnum.PAY_CLOSE){
updateStatus(orderPO.getOrderNo(),ProductOrderStatusEnum.PAY_CLOSE);
throw new BusinessException("订单已关闭,请重新下单");
}
return result;
......@@ -354,6 +366,10 @@ public class ProductOrderService extends ServiceImpl<ProductOrderMapper, Product
ProductOrderStatusEnum status = queryFromThirdPlatform(order.getOrderNo(),order.getPayMethod());
if (status == ProductOrderStatusEnum.WAIT_PAY){
closeOrder(order.getOrderNo(),order.getPayMethod());
}else if (status == ProductOrderStatusEnum.PAY_COMPLETE){
orderComplete(order.getOrderNo());
}else {
updateStatus(order.getOrderNo(),ProductOrderStatusEnum.PAY_CLOSE);
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment