Commit 14ae81d6 authored by liuyang's avatar liuyang

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

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