From f7466c74661e075a34a760bcf87b769513739c4f Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期二, 17 十二月 2024 18:02:02 +0800
Subject: [PATCH] 1.异常订单
---
src/main/java/com/mzl/flower/service/payment/UserPaymentSybService.java | 37 +++++++++++++++++++++++++++++++------
1 files changed, 31 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/mzl/flower/service/payment/UserPaymentSybService.java b/src/main/java/com/mzl/flower/service/payment/UserPaymentSybService.java
index b181462..ea8f878 100644
--- a/src/main/java/com/mzl/flower/service/payment/UserPaymentSybService.java
+++ b/src/main/java/com/mzl/flower/service/payment/UserPaymentSybService.java
@@ -28,7 +28,9 @@
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -227,6 +229,19 @@
order.setPaymentAmount(order.getTotalAmount());
}
order.setPaymentTime(up.getPaymentTimeCallback());
+
+ if(null!=order.getPaymentTime()){
+ LocalDateTime paymentTime = order.getPaymentTime();
+ LocalDate paymentDate = paymentTime.toLocalDate();
+ LocalDateTime today1700 = paymentTime.with(LocalTime.of(17, 0));
+ // 比较时间是否大于当天的 17:00
+ if (paymentTime.isAfter(today1700)) {
+ // 如果大于 17:00,设置为下一天的日期
+ paymentDate = paymentDate.plusDays(1);
+ }
+ order.setPaymentDateSta(paymentDate);
+ }
+
order.setStatus(Constants.ORDER_STATUS.SEND.name());
} else if (Constants.ORDER_STATUS_BACKEND.CANCEL.name().equals(orderStatus)){
order.setStatus(Constants.ORDER_STATUS.CANCEL.name());
@@ -343,6 +358,10 @@
SybPayService service = new SybPayService();
Map<String,String> params = service.query(orderId, up.getTransactionId());
+ String retcode = params.get("retcode");
+ if(!"SUCCESS".equals(retcode)){
+ throw new ValidationException("查询订单交易状态失败: " + params.get("retmsg"));
+ }
String trxstatus = params.get("trxstatus");//支付状态
if("1001".equals(trxstatus) || "3088".equals(trxstatus)){
@@ -357,10 +376,15 @@
Map<String,String> map = service.close(trxid, orderId);
log.info("======关闭订单结果" + toJSONString(map));
- String retcode = map.get("retcode");
+ retcode = map.get("retcode");
if(!"SUCCESS".equals(retcode)){
- throw new ValidationException("取消订单失败: " + map.get("retmsg"));
+ throw new ValidationException("调用通联关闭订单失败: " + map.get("retmsg"));
}
+ trxstatus = map.get("trxstatus");
+ if(!"0000".equals(trxstatus)){
+ throw new ValidationException("取消订单失败: " + map.get("errmsg"));
+ }
+
} else {
throw new ValidationException("订单不可取消");
}
@@ -451,12 +475,13 @@
Map<String,String> map = service.cancel(trxamt, reqsn, oldtrxid, oldreqsn);
String retcode = map.get("retcode");
if(!"SUCCESS".equals(retcode)){
- throw new ValidationException("订单退款失败: " + map.get("retmsg"));
+ throw new ValidationException("调用通联撤销接口失败: " + map.get("retmsg"));
}
//这个不是订单状态,是通用的,如果是支付查询,代表就是订单状态,如果是退款代表的是退款状态
String trxstatus = map.get("trxstatus");
if(!"0000".equals(trxstatus)){
+ log.error("通联撤销交易失败:" + map.get("errmsg"));
throw new ValidationException("订单退款交易失败:" + map.get("errmsg"));
}
@@ -484,7 +509,7 @@
Map<String,String> map = service.refund(trxamt, reqsn, oldtrxid, oldreqsn);
String retcode = map.get("retcode");
if(!"SUCCESS".equals(retcode)){
- throw new ValidationException("订单退款失败: " + map.get("retmsg"));
+ throw new ValidationException("调用通联退款失败: " + map.get("retmsg"));
}
//这个不是订单状态,是通用的,如果是支付查询,代表就是订单状态,如果是退款代表的是退款状态
@@ -558,7 +583,7 @@
new QueryWrapper<UserPayment>().eq("order_id", o.getId()));
long trxamt = refund;
- String reqsn = o.getId();
+ String reqsn = re.getId();//退款单的id
String oldtrxid = up.getTransactionId();
String oldreqsn = null;
@@ -566,7 +591,7 @@
Map<String,String> map = service.refund(trxamt, reqsn, oldtrxid, oldreqsn);
String retcode = map.get("retcode");
if(!"SUCCESS".equals(retcode)){
- throw new ValidationException("订单退款失败: " + map.get("retmsg"));
+ throw new ValidationException("调用通联退款失败: " + map.get("retmsg"));
}
//这个不是订单状态,是通用的,如果是支付查询,代表就是订单状态,如果是退款代表的是退款状态
--
Gitblit v1.9.3