| 
					
				 | 
			
			
				@@ -1,32 +1,28 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.ym.mec.biz.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.huifu.adapay.core.AdapayCore; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.huifu.adapay.core.util.AdapaySign; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.microsvc.toolkit.middleware.payment.common.api.BasePaymentService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.microsvc.toolkit.middleware.payment.common.api.PaymentServiceContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.microsvc.toolkit.middleware.payment.common.api.entity.PaymentResp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.microsvc.toolkit.middleware.payment.common.api.enums.PaymentStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yeepay.g3.sdk.yop.encrypt.DigitalEnvelopeDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yeepay.g3.sdk.yop.utils.DigitalEnvelopeUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yeepay.g3.sdk.yop.utils.RSAKeyUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dao.TenantOrderRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dto.TenantOrderRecordDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.enums.DealStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.enums.MessageTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.enums.PeriodEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.enums.TenantOrderRecordEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.exception.BizException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.page.PageInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.page.PageUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.page.WrapperUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.tenant.TenantContextHolder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.thirdparty.adapay.entity.HfMerchantConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.thirdparty.message.MessageSenderPluginContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.collections.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -39,10 +35,7 @@ import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import javax.servlet.http.HttpServletRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.security.PrivateKey; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.security.PublicKey; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.TimeUnit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.function.Consumer; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -82,8 +75,6 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private TenantProxyUserRelationService tenantProxyUserRelationService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private HfMerchantConfigService hfMerchantConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private TenantOrderRecordDao tenantOrderRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private PaymentServiceContext paymentServiceContext; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -453,14 +444,31 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	public String callback(TenantOrderRecord record, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public void callback(TenantOrderRecord record, PaymentResp paymentResp) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		record = tenantOrderRecordDao.getLockedById(record.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 只处理未支付状态的订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if (!record.getOrderState().equals(0)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return "succeeded"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PaymentStatus paymentStatus = paymentResp.getPaymentStatus(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (paymentStatus == PaymentStatus.SUCCESSED) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Consumer<TenantOrderRecord> consumer = checkOrder.get(record.getOrderType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Objects.nonNull(consumer)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                consumer.accept(record); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LocalDateTime now = LocalDateTime.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            record.setPayDate(now.toLocalDate().toDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            record.setPayTime(now.toDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 修改流水 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            record.setOrderState(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            baseMapper.updateById(record); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if (paymentStatus == PaymentStatus.FAILED) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 修改流水 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            record.setOrderState(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            baseMapper.updateById(record); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		PaymentChannelEnum paymentChannel = PaymentChannelEnum.codeOf(record.getPaymentChannel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /*PaymentChannelEnum paymentChannel = PaymentChannelEnum.codeOf(record.getPaymentChannel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -556,7 +564,7 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return e.getMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return "succeeded"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return "succeeded";*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |