Parcourir la source

Merge remote-tracking branch 'origin/Payment-Configuration' into Payment-Configuration

xgb il y a 1 mois
Parent
commit
37038603f8

+ 0 - 1
fs-service/src/main/java/com/fs/erp/service/IErpGoodsService.java

@@ -11,6 +11,5 @@ public interface IErpGoodsService
     ErpGoodsQueryResponse getGoods(ErpGoodsQueryRequert param);
     ErpGoodsQueryResponse getGoodsScrm(ErpGoodsQueryRequert param);
     ErpGoodsStockQueryResponse getGoodsStock(ErpGoodsStockQueryRequert param);
-    ErpGoodsStockQueryResponse getGoodsStockScrm(ErpGoodsStockQueryRequert param);
 }
 

+ 0 - 4
fs-service/src/main/java/com/fs/erp/service/impl/ErpGoodsServiceImpl.java

@@ -87,8 +87,4 @@ public class ErpGoodsServiceImpl implements IErpGoodsService
         return response;
     }
 
-    @Override
-    public ErpGoodsStockQueryResponse getGoodsStockScrm(ErpGoodsStockQueryRequert param) {
-        return null;
-    }
 }

+ 0 - 4
fs-service/src/main/java/com/fs/erp/service/impl/HzOMSErpGoodsServiceImpl.java

@@ -68,10 +68,6 @@ public class HzOMSErpGoodsServiceImpl implements IErpGoodsService {
         return null;
     }
 
-    @Override
-    public ErpGoodsStockQueryResponse getGoodsStockScrm(ErpGoodsStockQueryRequert param) {
-        return null;
-    }
 
     /**
      * 构建店铺商品上传的参数

+ 0 - 4
fs-service/src/main/java/com/fs/erp/service/impl/JSTErpGoodsServiceImpl.java

@@ -130,10 +130,6 @@ public class JSTErpGoodsServiceImpl implements IErpGoodsService {
         return null;
     }
 
-    @Override
-    public ErpGoodsStockQueryResponse getGoodsStockScrm(ErpGoodsStockQueryRequert param) {
-        return null;
-    }
     /**
      * 构建店铺商品上传的参数
      *

+ 0 - 4
fs-service/src/main/java/com/fs/erp/service/impl/K9StockScrmServiceImpl.java

@@ -73,10 +73,6 @@ public class K9StockScrmServiceImpl implements IErpGoodsService {
         return response;
     }
 
-    @Override
-    public ErpGoodsStockQueryResponse getGoodsStockScrm(ErpGoodsStockQueryRequert param) {
-        return null;
-    }
 
     /**
      * 查看库存

+ 0 - 4
fs-service/src/main/java/com/fs/erp/service/impl/WdtErpGoodsServiceImpl.java

@@ -126,9 +126,5 @@ public class WdtErpGoodsServiceImpl implements IErpGoodsService {
         }
     }
 
-    @Override
-    public ErpGoodsStockQueryResponse getGoodsStockScrm(ErpGoodsStockQueryRequert param) {
-        return null;
-    }
 }
 

+ 80 - 22
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreAfterSalesScrmServiceImpl.java

@@ -29,6 +29,7 @@ import com.fs.erp.dto.ErpRefundUpdateRequest;
 import com.fs.erp.mapper.FsJstAftersalePushMapper;
 import com.fs.erp.mapper.FsJstAftersalePushScrmMapper;
 import com.fs.erp.service.IErpOrderService;
+import com.fs.his.config.AppConfig;
 import com.fs.his.config.FsSysConfig;
 import com.fs.his.domain.*;
 import com.fs.his.enums.FsStoreAfterSalesStatusEnum;
@@ -68,6 +69,7 @@ import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
 import com.github.binarywang.wxpay.config.WxPayConfig;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.binarywang.wxpay.service.WxPayService;
+import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
 import com.google.gson.Gson;
 import lombok.Synchronized;
 import org.apache.commons.beanutils.BeanUtils;
@@ -82,6 +84,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.sql.Timestamp;
 import java.text.DecimalFormat;
 import java.text.ParseException;
@@ -858,25 +861,26 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
         if(order.getPayMoney().compareTo(BigDecimal.ZERO)==1){
             List<FsStorePaymentScrm> payments=paymentService.selectFsStorePaymentByOrderId(order.getId());
             if(payments!=null){
+                SysConfig sysConfig = configService.selectConfigByConfigKey("app.config");
+                AppConfig config = new Gson().fromJson(sysConfig.getConfigValue(), AppConfig.class);
 
                 for(FsStorePaymentScrm payment:payments){
+                    if (order.getPayType().equals("99")){
+                        payment.setAppId(config.getAppId());
+                    }
                     if (StringUtils.isBlank(payment.getAppId())) {
                         throw new IllegalArgumentException("appId不能为空");
                     }
-                    FsCoursePlaySourceConfig fsCoursePlaySourceConfig = fsCoursePlaySourceConfigMapper.selectCoursePlaySourceConfigByAppId(payment.getAppId());
-                    if (fsCoursePlaySourceConfig == null) {
-                        throw new CustomException("未找到appId对应的小程序配置: " + payment.getAppId());
-                    }
-                    Long merchantConfigId = fsCoursePlaySourceConfig.getMerchantConfigId();
-                    if (merchantConfigId == null || merchantConfigId <= 0) {
-                        throw new CustomException("小程序没有配置商户信息");
+                    String payType = payment.getPayMode();
+                    if ("wxApp".equals(payment.getPayMode())){
+                        payType = "wx";
                     }
-                    MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigById(fsCoursePlaySourceConfig.getMerchantConfigId());
+                    MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigByAppId(payment.getAppId(),payType);
                     FsPayConfig fsPayConfig = JSON.parseObject(merchantAppConfig.getDataJson(), FsPayConfig.class);
 
                     if (payment.getPayMode()==null||payment.getPayMode().equals("wx")){
                         WxPayConfig payConfig = new WxPayConfig();
-                        payConfig.setAppId(fsCoursePlaySourceConfig.getAppid());
+                        payConfig.setAppId(payment.getAppId());
                         payConfig.setMchId(fsPayConfig.getWxMchId());
                         payConfig.setMchKey(fsPayConfig.getWxMchKey());
                         payConfig.setKeyPath(fsPayConfig.getKeyPath());
@@ -907,34 +911,36 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
                         }
                     }else if (payment.getPayMode()!=null&&payment.getPayMode().equals("hf")){
                         String huifuId="";
-                        FsHfpayConfigMapper fsHfpayConfigMapper = SpringUtils.getBean(FsHfpayConfigMapper.class);
                         if (payment.getAppId() != null) {
-                            FsHfpayConfig fsHfpayConfig = fsHfpayConfigMapper.selectByAppId(payment.getAppId());
-                            if (fsHfpayConfig == null){
+                            if (merchantAppConfig == null){
                                 huifuId = fsPayConfig.getHuifuId();
                             }else {
-                                huifuId = fsHfpayConfig.getHuifuId();
+                                huifuId = merchantAppConfig.getMerchantId();
                             }
                         } else {
                             if (("益善缘".equals(cloudHostProper.getCompanyName()))) {
 
-                                FsHfpayConfig fsPayConfig2 = fsHfpayConfigMapper.selectByAppId("wx0d1a3dd485268521");
-                                huifuId = fsPayConfig2.getHuifuId();
+                                huifuId = merchantAppConfig.getMerchantId();
                             }else {
                                 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));
+
+                        Map<String, Object> extendInfoMap = new HashMap<>();
+                        if (order.getPayType().equals("99")){
+                            request.setOrdAmt(payment.getPayMoney().setScale(2, RoundingMode.DOWN).toString());
+                            extendInfoMap.put("org_req_seq_id", "store-"+payment.getPayCode());
+                        }else {
+                            request.setOrdAmt(payment.getPayMoney().toString());
+                            extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
+                            request.setAppId(payment.getAppId());
+                        }
                         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);
-                        request.setAppId(payment.getAppId());
                         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"))){
@@ -947,7 +953,33 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
                             return R.error(refund.getResp_desc());
                         }
 
-                    }else {
+                    }else if ("wxApp".equals(payment.getPayMode()) && "wx_app".equals(payment.getPayTypeCode())) {
+                        // 处理微信退款
+                        WxPayService wxPayService = getWxPayService();
+                        WxPayRefundRequest refundRequest = new WxPayRefundRequest();
+                        refundRequest.setOutTradeNo("store-"+payment.getPayCode());
+                        refundRequest.setOutRefundNo("store-"+payment.getPayCode());
+                        refundRequest.setTotalFee(WxPayUnifiedOrderRequest.yuanToFen(payment.getPayMoney().toString()));
+                        refundRequest.setRefundFee(WxPayUnifiedOrderRequest.yuanToFen(payment.getPayMoney().toString()));
+                        try {
+                            WxPayRefundResult refundResult = wxPayService.refund(refundRequest);
+                            WxPayRefundQueryResult refundQueryResult = wxPayService.refundQuery("", refundResult.getOutTradeNo(), refundResult.getOutRefundNo(), refundResult.getRefundId());
+                            if (refundQueryResult != null && refundQueryResult.getResultCode().equals("SUCCESS")) {
+                                FsStorePaymentScrm paymentMap = new FsStorePaymentScrm();
+                                paymentMap.setPaymentId(payment.getPaymentId());
+                                paymentMap.setStatus(-1);
+                                paymentMap.setRefundTime(DateUtils.getNowDate());
+                                paymentMap.setRefundMoney(payment.getPayMoney());
+                                paymentService.updateFsStorePayment(paymentMap);
+                            } else {
+                                throw new CustomException("退款请求失败" + refundQueryResult.getReturnMsg());
+                            }
+
+                        } catch (WxPayException e) {
+                            throw new CustomException("退款请求失败" + e);
+                        }
+
+                    } else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return R.error("支付类型异常");
                     }
@@ -968,7 +1000,33 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
         this.deletePurchaseLimitRecordsForStoreOrder(order);
         return R.ok();
     }
-
+    /**
+     * 封装微信参数
+     *
+     * @return
+     */
+    private WxPayService getWxPayService(){
+        SysConfig sysConfig = configService.selectConfigByConfigKey("app.config");
+        AppConfig config = new Gson().fromJson(sysConfig.getConfigValue(), AppConfig.class);
+        FsCoursePlaySourceConfig fsCoursePlaySourceConfig = fsCoursePlaySourceConfigMapper.selectCoursePlaySourceConfigByAppId(config.getAppId());
+        if (fsCoursePlaySourceConfig == null) {
+            throw new CustomException("未找到appId对应的小程序配置: " + config.getAppId());
+        }
+        MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigById(fsCoursePlaySourceConfig.getMerchantConfigId());
+        FsPayConfig payConfig1 = JSON.parseObject(merchantAppConfig.getDataJson(), FsPayConfig.class);
+
+        WxPayConfig payConfig = new WxPayConfig();
+        payConfig.setAppId(merchantAppConfig.getAppId());
+        payConfig.setMchId(payConfig1.getWxMchId());
+        payConfig.setMchKey(payConfig1.getWxMchKey());
+        payConfig.setSubAppId(StringUtils.trimToNull(null));
+        payConfig.setSubMchId(StringUtils.trimToNull(null));
+        payConfig.setKeyPath(payConfig1.getKeyPath());
+        payConfig.setNotifyUrl(payConfig1.getNotifyUrlScrm());
+        WxPayServiceImpl payService = new WxPayServiceImpl();
+        payService.setConfig(payConfig);
+        return payService;
+    }
     @Autowired
     private IFsStoreProductPurchaseLimitScrmService purchaseLimitService;
 

+ 10 - 10
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreCartScrmServiceImpl.java

@@ -160,7 +160,7 @@ public class FsStoreCartScrmServiceImpl implements IFsStoreCartScrmService
         // 检查并调整限购数量
         Integer adjustedNum = adjustPurchaseLimit(uid, cartParam.getProductId(), cartParam.getCartNum());
         cartParam.setCartNum(adjustedNum);
-        
+
         //如果是直接购买,直接写入记录
         if(cartParam.getIsBuy()==1){
             FsStoreCartScrm storeCart = FsStoreCartScrm.builder()
@@ -254,19 +254,19 @@ public class FsStoreCartScrmServiceImpl implements IFsStoreCartScrmService
         if (product == null) {
             return;
         }
-        
+
         // 如果商品没有设置限购,直接返回
         if (product.getPurchaseLimit() == null || product.getPurchaseLimit() <= 0) {
             return;
         }
-        
+
         // 查询用户已购买的数量
         FsStoreProductPurchaseLimitScrm purchaseLimit = purchaseLimitService.selectByProductIdAndUserId(productId, userId);
         int purchasedNum = 0;
         if (purchaseLimit != null) {
             purchasedNum = purchaseLimit.getNum();
         }
-        
+
         // 检查是否超过限购数量
         if (purchasedNum + num > product.getPurchaseLimit()) {
             int productTotalNum = purchasedNum + num;
@@ -291,19 +291,19 @@ public class FsStoreCartScrmServiceImpl implements IFsStoreCartScrmService
         if (product == null) {
             return num;
         }
-        
+
         // 如果商品没有设置限购,直接返回原数量
         if (product.getPurchaseLimit() == null || product.getPurchaseLimit() <= 0) {
             return num;
         }
-        
+
         // 查询用户已购买的数量
         FsStoreProductPurchaseLimitScrm purchaseLimit = purchaseLimitService.selectByProductIdAndUserId(productId, userId);
         int purchasedNum = 0;
         if (purchaseLimit != null) {
             purchasedNum = purchaseLimit.getNum();
         }
-        
+
         // 检查是否超过限购数量
         if (purchasedNum + num > product.getPurchaseLimit()) {
             // 如果超过限购,设置数量为限购的最大数量
@@ -313,7 +313,7 @@ public class FsStoreCartScrmServiceImpl implements IFsStoreCartScrmService
             }
             return maxAllowed; // 返回最大可购买数量
         }
-        
+
         return num; // 未超过限购,返回原数量
     }
 
@@ -327,7 +327,7 @@ public class FsStoreCartScrmServiceImpl implements IFsStoreCartScrmService
                 //单品
                 ErpGoodsStockQueryRequert queryRequert = new ErpGoodsStockQueryRequert();
                 queryRequert.setBarcode(productAttrValue.getBarCode());
-                ErpGoodsStockQueryResponse goodsStock = goodsService.getGoodsStockScrm(queryRequert);
+                ErpGoodsStockQueryResponse goodsStock = goodsService.getGoodsStock(queryRequert);
                 if(goodsStock != null && goodsStock.getStocks() != null && !goodsStock.getStocks().isEmpty()){
 
 //                    int stocks = Double.valueOf(goodsStock.getStocks().get(0).getSalable_qty()).intValue();
@@ -365,7 +365,7 @@ public class FsStoreCartScrmServiceImpl implements IFsStoreCartScrmService
                             FsStoreProductAttrValueScrm attrValue=valueMapper.selectFsStoreProductAttrValueById(dto.getId());
                             ErpGoodsStockQueryRequert queryRequert = new ErpGoodsStockQueryRequert();
                             queryRequert.setBarcode(attrValue.getGroupBarCode());
-                            ErpGoodsStockQueryResponse goodsStock = goodsService.getGoodsStockScrm(queryRequert);
+                            ErpGoodsStockQueryResponse goodsStock = goodsService.getGoodsStock(queryRequert);
                             if(goodsStock != null && goodsStock.getStocks() != null && !goodsStock.getStocks().isEmpty()){
                                 int stocks = Integer.valueOf(goodsStock.getStocks().get(0).getSalable_qty());
 

+ 55 - 26
fs-service/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java

@@ -1744,26 +1744,26 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
             if (payments != null && !payments.isEmpty()) {
 //                String json = configService.selectConfigByKey("his.pay");
 //                FsPayConfigScrm fsPayConfig = JSON.parseObject(json, FsPayConfigScrm.class);
+                SysConfig sysConfig = configService.selectConfigByConfigKey("app.config");
+                AppConfig config = new Gson().fromJson(sysConfig.getConfigValue(), AppConfig.class);
 
                 for (LiveOrderPayment payment : payments) {
-                    FsCoursePlaySourceConfig fsCoursePlaySourceConfig = fsCoursePlaySourceConfigMapper.selectCoursePlaySourceConfigByAppId(payment.getAppId());
-                    if (fsCoursePlaySourceConfig == null) {
-                        throw new CustomException("未找到appId对应的小程序配置: " + payment.getAppId());
+                    if (order.getPayType().equals("99")){
+                        payment.setAppId(config.getAppId());
                     }
-                    Long merchantConfigId = fsCoursePlaySourceConfig.getMerchantConfigId();
-                    if (merchantConfigId == null || merchantConfigId <= 0) {
-                        throw new CustomException("小程序没有配置商户信息");
+                    if (StringUtils.isBlank(payment.getAppId())) {
+                        throw new IllegalArgumentException("appId不能为空");
                     }
-                    Long merConfigId = fsCoursePlaySourceConfig.getMerchantConfigId();
-                    if(payment.getMerConfigId()!=null){
-                        merConfigId=payment.getMerConfigId();
+                    String payType = payment.getPayMode();
+                    if ("wxApp".equals(payment.getPayMode())){
+                        payType = "wx";
                     }
-                    MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigById(merConfigId);
+                    MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigByAppId(payment.getAppId(),payType);
                     FsPayConfig fsPayConfig = JSON.parseObject(merchantAppConfig.getDataJson(), FsPayConfig.class);
 
                     if (payment.getPayMode() == null || "wx".equals(payment.getPayMode())) {
                         WxPayConfig payConfig = new WxPayConfig();
-                        payConfig.setAppId(fsPayConfig.getAppId());
+                        payConfig.setAppId(payment.getAppId());
                         payConfig.setMchId(fsPayConfig.getWxMchId());
                         payConfig.setMchKey(fsPayConfig.getWxMchKey());
                         payConfig.setKeyPath(fsPayConfig.getKeyPath());
@@ -1793,35 +1793,38 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
                         }
                     } else if (payment.getPayMode() != null && "hf".equals(payment.getPayMode())) {
                         String huifuId = "";
-                        FsHfpayConfigMapper fsHfpayConfigMapper = SpringUtils.getBean(FsHfpayConfigMapper.class);
                         if (payment.getAppId() != null) {
-                            FsHfpayConfig fsHfpayConfig = fsHfpayConfigMapper.selectByAppId(payment.getAppId());
-                            if (fsHfpayConfig == null){
+                            if (merchantAppConfig == null){
                                 huifuId = fsPayConfig.getHuifuId();
                             }else {
-                                huifuId = fsHfpayConfig.getHuifuId();
+                                huifuId = merchantAppConfig.getMerchantId();
                             }
                         } else {
-                            CloudHostProper cloudHostProper = SpringUtils.getBean(CloudHostProper.class);
-                            if ("益善缘".equals(cloudHostProper.getCompanyName())) {
-                                FsHfpayConfig fsPayConfig2 = fsHfpayConfigMapper.selectByAppId("wx0d1a3dd485268521");
-                                huifuId = fsPayConfig2.getHuifuId();
-                            } else {
-                                huifuId = fsPayConfig.getHuifuId();
+                            if (("益善缘".equals(cloudHostProper.getCompanyName()))) {
+
+                                huifuId = merchantAppConfig.getMerchantId();
+                            }else {
+                                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));
+
+                        Map<String, Object> extendInfoMap = new HashMap<>();
+                        if (order.getPayType().equals("99")){
+                            request.setOrdAmt(payment.getPayMoney().setScale(2, RoundingMode.DOWN).toString());
+                            extendInfoMap.put("org_req_seq_id", "live-"+payment.getPayCode());
+                        }else {
+                            request.setOrdAmt(payment.getPayMoney().toString());
+                            extendInfoMap.put("org_party_order_id", payment.getBankSerialNo());
+                            request.setAppId(payment.getAppId());
+                        }
+
                         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);
-                        request.setAppId(payment.getAppId());
                         HuiFuRefundResult refund = huiFuService.refund(request);
                         log.info("退款:" + refund);
                         if (refund != null && ("00000000".equals(refund.getResp_code()) || "00000100".equals(refund.getResp_code()))
@@ -1834,6 +1837,32 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                             return R.error(refund != null ? refund.getResp_desc() : "退款失败");
                         }
+                    }else if (payment.getPayMode() != null &&"wxApp".equals(payment.getPayMode())) {
+                        // 处理微信退款
+                        WxPayService wxPayService = getWxPayService();
+                        WxPayRefundRequest refundRequest = new WxPayRefundRequest();
+                        refundRequest.setOutTradeNo("live-"+payment.getPayCode());
+                        refundRequest.setOutRefundNo("live-"+payment.getPayCode());
+                        refundRequest.setTotalFee(WxPayUnifiedOrderRequest.yuanToFen(payment.getPayMoney().toString()));
+                        refundRequest.setRefundFee(WxPayUnifiedOrderRequest.yuanToFen(payment.getPayMoney().toString()));
+                        try {
+                            WxPayRefundResult refundResult = wxPayService.refund(refundRequest);
+                            WxPayRefundQueryResult refundQueryResult = wxPayService.refundQuery("", refundResult.getOutTradeNo(), refundResult.getOutRefundNo(), refundResult.getRefundId());
+                            if (refundQueryResult != null && refundQueryResult.getResultCode().equals("SUCCESS")) {
+                                LiveOrderPayment paymentMap = new LiveOrderPayment();
+                                paymentMap.setPaymentId(payment.getPaymentId());
+                                paymentMap.setStatus(-1);
+                                paymentMap.setRefundTime(DateUtils.getNowDate());
+                                paymentMap.setRefundMoney(payment.getPayMoney());
+                                liveOrderPaymentMapper.updateLiveOrderPayment(paymentMap);
+                            } else {
+                                throw new CustomException("退款请求失败" + refundQueryResult.getReturnMsg());
+                            }
+
+                        } catch (WxPayException e) {
+                            throw new CustomException("退款请求失败" + e);
+                        }
+
                     } else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return R.error("支付类型异常");