| 
					
				 | 
			
			
				@@ -39,6 +39,8 @@ import com.fs.hisStore.enums.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.hisStore.mapper.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.hisStore.param.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.huifuPay.domain.HuiFuRefundResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.huifuPay.domain.HuifuConfirmrefundResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentDelaytransConfirmrefundRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.huifuPay.service.HuiFuService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.pay.service.IPayService; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -796,27 +798,46 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 huifuId=fsPayConfig.getHuifuId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        DecimalFormat df = new DecimalFormat("0.00"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        request.setOrgHfSeqId(payment.getTradeNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        request.setHuifuId(huifuId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        request.setOrdAmt(df.format(refundAmount)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        request.setReqSeqId("refund-"+payment.getPayCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Map<String, Object> extendInfoMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        extendInfoMap.put("org_party_order_id", payment.getBankSerialNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        request.setExtendInfo(extendInfoMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        HuiFuRefundResult refund = huiFuService.refund(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        logger.info("退款:"+refund); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            payment.setRefundMoney(refundAmount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            payment.setStatus(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            payment.setRefundTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            paymentService.updateFsStorePayment(payment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            return R.error(refund.getResp_desc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (payment.getIsShare() == 1 && payment.getShareStatus() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            V2TradePaymentDelaytransConfirmrefundRequest confirmRefundRequest = new V2TradePaymentDelaytransConfirmrefundRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            String orderCode = OrderCodeUtils.getOrderSn(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (StringUtils.isEmpty(orderCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                throw new CustomException("订单生成失败,请重试"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            confirmRefundRequest.setReqSeqId(orderCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            confirmRefundRequest.setOrgReqSeqId(payment.getShareCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            confirmRefundRequest.setOrgReqDate(payment.getShareDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //多汇付使用appID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            HuifuConfirmrefundResult result = huiFuService.confirmRefund(confirmRefundRequest, payment.getAppId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                refund(payment,huifuId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                throw new CustomException("交易确认退款请求失败" + result.getResp_desc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            refund(payment,huifuId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        DecimalFormat df = new DecimalFormat("0.00"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        request.setOrgHfSeqId(payment.getTradeNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        request.setHuifuId(huifuId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        request.setOrdAmt(df.format(refundAmount)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        request.setReqSeqId("refund-"+payment.getPayCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        Map<String, Object> extendInfoMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        extendInfoMap.put("org_party_order_id", payment.getBankSerialNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        request.setExtendInfo(extendInfoMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        HuiFuRefundResult refund = huiFuService.refund(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        logger.info("退款:"+refund); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        if((refund.getResp_code().equals("00000000")||refund.getResp_code().equals("00000100"))&&(refund.getTrans_stat().equals("S")||refund.getTrans_stat().equals("P"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            payment.setRefundMoney(refundAmount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            payment.setStatus(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            payment.setRefundTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            paymentService.updateFsStorePayment(payment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            return R.error(refund.getResp_desc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -838,6 +859,29 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return R.ok(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void refund(FsStorePaymentScrm payment,String huifuId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.setOrgHfSeqId(payment.getTradeNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.setHuifuId(huifuId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.setOrdAmt(payment.getPayMoney().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.setReqSeqId("refund-" + payment.getPayCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Object> extendInfoMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        extendInfoMap.put("org_party_order_id", payment.getBankSerialNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.setExtendInfo(extendInfoMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        HuiFuRefundResult refund = huiFuService.refund(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        logger.info("退款:" + refund); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payment.setRefundMoney(payment.getPayMoney()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payment.setStatus(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            payment.setRefundTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            paymentService.updateFsStorePayment(payment); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new CustomException("退款失败:" + refund.getResp_desc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private FsJstAftersalePushScrmMapper fsJstAftersalePushMapper; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1516,26 +1560,45 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         huifuId=fsPayConfig.getHuifuId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                request.setOrdAmt(payment.getPayMoney().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                request.setHuifuId(huifuId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                request.setReqSeqId("refund-" + payment.getPayCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map<String, Object> extendInfoMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                extendInfoMap.put("org_req_seq_id", orderType + "-" + payment.getPayCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                request.setExtendInfo(extendInfoMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                HuiFuRefundResult refund = huiFuService.refund(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                logger.info("订单退款返回结果:退款订单id:" + order.getOrderId() + refund); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    FsStorePaymentScrm paymentMap = new FsStorePaymentScrm(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    paymentMap.setPaymentId(payment.getPaymentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    paymentMap.setStatus(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    paymentMap.setRefundTime(DateUtils.getNowDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    paymentMap.setRefundMoney(payment.getPayMoney()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    fsStorePaymentMapper.updateFsStorePayment(paymentMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (payment.getIsShare() == 1 && payment.getShareStatus() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    V2TradePaymentDelaytransConfirmrefundRequest confirmRefundRequest = new V2TradePaymentDelaytransConfirmrefundRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    String orderCode = OrderCodeUtils.getOrderSn(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (StringUtils.isEmpty(orderCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        throw new CustomException("订单生成失败,请重试"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    confirmRefundRequest.setReqSeqId(orderCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    confirmRefundRequest.setOrgReqSeqId(payment.getShareCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    confirmRefundRequest.setOrgReqDate(payment.getShareDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //多汇付使用appID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    HuifuConfirmrefundResult result = huiFuService.confirmRefund(confirmRefundRequest, payment.getAppId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        refund(payment,huifuId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        throw new CustomException("交易确认退款请求失败" + result.getResp_desc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new CustomException("退款请求失败" + refund.getResp_desc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    refund(payment,huifuId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                V2TradePaymentScanpayRefundRequest request = new V2TradePaymentScanpayRefundRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                request.setOrdAmt(payment.getPayMoney().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                request.setHuifuId(huifuId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                request.setReqSeqId("refund-" + payment.getPayCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                Map<String, Object> extendInfoMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                extendInfoMap.put("org_req_seq_id", orderType + "-" + payment.getPayCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                request.setExtendInfo(extendInfoMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                HuiFuRefundResult refund = huiFuService.refund(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                logger.info("订单退款返回结果:退款订单id:" + order.getOrderId() + refund); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                if ((refund.getResp_code().equals("00000000") || refund.getResp_code().equals("00000100")) && (refund.getTrans_stat().equals("S") || refund.getTrans_stat().equals("P"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    FsStorePaymentScrm paymentMap = new FsStorePaymentScrm(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    paymentMap.setPaymentId(payment.getPaymentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    paymentMap.setStatus(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    paymentMap.setRefundTime(DateUtils.getNowDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    paymentMap.setRefundMoney(payment.getPayMoney()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    fsStorePaymentMapper.updateFsStorePayment(paymentMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    throw new CustomException("退款请求失败" + refund.getResp_desc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //管易作废 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (StringUtils.isNotEmpty(fsStoreOrder.getExtendOrderId())) { 
			 |