zoujiajian 1 год назад
Родитель
Сommit
b4979e1c24

+ 8 - 0
netflix-service/src/main/java/com/cyksj/service/pay/impl/AliPayCommonServiceImpl.java

@@ -1,5 +1,6 @@
 package com.cyksj.service.pay.impl;
 
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alipay.api.AlipayApiException;
@@ -13,6 +14,7 @@ import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.EnvCommonService;
 import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.common.snowflake.Sequence;
 import com.cyksj.common.util.Codec;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.StringUtil;
@@ -70,6 +72,8 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 
 	private final GoodsWholesaleUserDepositMapper depositMapper;
 
+	private static final Sequence SEQUENCE = new Sequence(0);
+
 	@Override
 	public AliPayParams unifiedPayRegister(Long orderId, String productCode, String payMode, String returnUrl) throws Exception {
 		RegisterOrderDon orderDon = registerOrderDonMapper.selectById(orderId);
@@ -359,6 +363,10 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 		if (ZfbProductCode.MOBILE_WEB.getProductCode().equals(productCode)) {
 			orderDon.setIsWebPay(false);
 		}
+		//押金超过五分钟重新生成一个订单号
+		if (orderDon.getCreatedTime().compareTo(DateUtil.offsetMinute(DateTime.now(), -5)) <= 0) {
+			orderDon.setOrderNo(SEQUENCE.nextId().toString());
+		}
 		depositMapper.updateById(orderDon);
 		String subject = "押金";
 		//回调地址