| 
					
				 | 
			
			
				@@ -7,6 +7,7 @@ import cn.newfeifan.mall.module.pay.dal.dataobject.channel.PayChannelDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.pay.dal.dataobject.order.PayOrderDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.pay.dal.dataobject.order.PayOrderExtensionDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.pay.dal.mysql.order.PayOrderExtensionMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.newfeifan.mall.module.pay.enums.order.PayOrderStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.pay.fuiou.reqvo.SubmitOrderRequestVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.pay.fuiou.respVO.FuYouPayOrderSubmitRespVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.pay.fuiou.respVO.FuYouPaymentResponseVO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -66,18 +67,21 @@ public class FiYouPayOrderServiceImpl implements FuYouPayOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 1.1 获得 PayOrderDO ,并校验其是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PayOrderDO payOrder = payOrderService.validateOrderCanSubmit(requestVO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        payOrder.setPayOrderNo(generate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        payOrder.setPayOrderNo(generate(FUYOU_TRADE_ORDER_NO_PREFIX)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         payOrderService.updatePayOrder(payOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 1.32 校验支付渠道是否有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PayChannelDO channel = validateChannelCanSubmit(payOrder.getAppId(), requestVO.getChannelCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 2. 插入 PayOrderExtensionDO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String no = generate(ORDER_NO_PREFIX); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PayOrderExtensionDO orderExtension = PayOrderExtensionDO.builder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .userIp(getClientIP()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .orderId(payOrder.getId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .channelId(channel.getId()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .channelCode(channel.getCode()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .no(no) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .status(PayOrderStatusEnum.WAITING.getStatus()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         orderExtensionMapper.insert(orderExtension); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -151,9 +155,9 @@ public class FiYouPayOrderServiceImpl implements FuYouPayOrderService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return channel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private String generate() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private String generate(String prefix) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 递增序号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String noPrefix = cn.newfeifan.mall.module.pay.enums.DictTypeConstants.FUYOU_TRADE_ORDER_NO_PREFIX + DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_PATTERN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String noPrefix = prefix + DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_PATTERN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String key = TRADE_NO + noPrefix; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Long no = stringRedisTemplate.opsForValue().increment(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 设置过期时间 
			 |