From 466c1a085590a6f527e2be91ed415b9656368902 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 24 九月 2024 13:38:14 +0800
Subject: [PATCH] 添加生产环境配置

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java                            |    3 
 ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/AntiShakeProperties.java                                       |   34 ++
 ruoyi-api/ruoyi-api-chargingPile/pom.xml                                                                                       |    5 
 ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java                          |   33 +
 ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml                                                              |   56 +-
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/SendMessageFallbackFactory.java                |   18 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java                              |   26 +
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyFallbackFactory.java       |   10 
 ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml                                                                     |   56 +-
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java              |   10 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java                                 |   10 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyDetailFallbackFactory.java |   10 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java                               |   18 +
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java                                  |   10 
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/model/WeixinProperties.java                                     |    8 
 ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java                                                           |   12 
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/utils/WxAbstractPay.java                                        |   48 ++
 ruoyi-api/ruoyi-api-order/pom.xml                                                                                              |    5 
 ruoyi-api/ruoyi-api-account/pom.xml                                                                                            |    5 
 ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml                                                                     |   56 +-
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/model/V3.java                                                   |   11 
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/utils/WxV3Pay.java                                              |    2 
 ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml                                                                   |   56 +-
 ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/SignProperties.java                                            |   27 +
 ruoyi-gateway/src/main/resources/bootstrap.yml                                                                                 |    5 
 ruoyi-api/ruoyi-api-other/pom.xml                                                                                              |    4 
 ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/AliPaymentFallbackFactory.java                         |   34 ++
 ruoyi-auth/src/main/resources/bootstrap.yml                                                                                    |   56 +-
 ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java                                                           |   21 
 ruoyi-service/ruoyi-integration/src/main/resources/bootstrap.yml                                                               |   56 +-
 ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml                                                                   |   56 +-
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java                            |   10 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserVipDetailFallbackFactory.java                   |   18 +
 ruoyi-gateway/pom.xml                                                                                                          |   12 
 ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml                                                                    |   56 +-
 ruoyi-api/ruoyi-api-integration/pom.xml                                                                                        |    5 
 ruoyi-api/ruoyi-api-payment/pom.xml                                                                                            |    5 
 ruoyi-api/ruoyi-api-system/pom.xml                                                                                             |    4 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/InvoiceTypeFallbackFactory.java                            |   10 
 39 files changed, 594 insertions(+), 287 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/pom.xml b/ruoyi-api/ruoyi-api-account/pom.xml
index 20ad28e..526cd85 100644
--- a/ruoyi-api/ruoyi-api-account/pom.xml
+++ b/ruoyi-api/ruoyi-api-account/pom.xml
@@ -28,7 +28,10 @@
                 </exclusion>
             </exclusions>
         </dependency>
-
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
index 5c3fc3f..e0b6d42 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
@@ -7,6 +7,8 @@
 import com.ruoyi.account.api.model.TAppUserAddress;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.dto.PointChangeDto;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -36,7 +38,13 @@
     
             @Override
             public R<TAppUser> getUserById(Long id) {
-                throw new RuntimeException("根据id查询用户失败:"+throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("根据id查询用户失败:"+throwable.getMessage());
             }
 
             @Override
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserVipDetailFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserVipDetailFallbackFactory.java
index ebd90f7..21f6809 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserVipDetailFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserVipDetailFallbackFactory.java
@@ -4,6 +4,8 @@
 import com.ruoyi.account.api.model.TAppUserVipDetail;
 import com.ruoyi.account.api.vo.GetAppUserVipDetail;
 import com.ruoyi.common.core.domain.R;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -26,12 +28,24 @@
     
             @Override
             public R<TAppUserVipDetail> getAppUserVipDetail(GetAppUserVipDetail getAppUserVipDetail) {
-                throw new RuntimeException("获取用户当前有效的VIP明细调用失败:" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("获取用户当前有效的VIP明细调用失败:" + throwable.getMessage());
             }
     
             @Override
             public void updateAppUserVipDetail(TAppUserVipDetail appUserVipDetail) {
-                throw new RuntimeException(throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                R.fail(throwable.getMessage());
             }
         };
     }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/pom.xml b/ruoyi-api/ruoyi-api-chargingPile/pom.xml
index f8da29f..c39d339 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/pom.xml
+++ b/ruoyi-api/ruoyi-api-chargingPile/pom.xml
@@ -28,7 +28,10 @@
                 </exclusion>
             </exclusions>
         </dependency>
-
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyDetailFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyDetailFallbackFactory.java
index 844dbb9..d8a1054 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyDetailFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyDetailFallbackFactory.java
@@ -4,6 +4,8 @@
 import com.ruoyi.chargingPile.api.feignClient.AccountingStrategyDetailClient;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail;
 import com.ruoyi.common.core.domain.R;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -42,7 +44,13 @@
 			
 			@Override
 			public R<List<TAccountingStrategyDetail>> getListByAccountingStrategyId(Integer id) {
-				throw new RuntimeException("根据计费策略主表id策略明细失败:" + throwable.getMessage());
+				// 手动进行全局事务回滚
+				try {
+					GlobalTransactionContext.getCurrent().rollback();
+				} catch (TransactionException e) {
+					throw new RuntimeException(e);
+				}
+				return R.fail("根据计费策略主表id策略明细失败:" + throwable.getMessage());
 			}
 
 			@Override
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyFallbackFactory.java
index 108ab7d..8d883c3 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyFallbackFactory.java
@@ -3,6 +3,8 @@
 import com.ruoyi.chargingPile.api.feignClient.AccountingStrategyClient;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategy;
 import com.ruoyi.common.core.domain.R;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -25,7 +27,13 @@
 			
 			@Override
 			public R<TAccountingStrategy> getAccountingStrategyById(Integer id) {
-				throw new RuntimeException("根据id查询计费策略失败:" + throwable.getMessage());
+				// 手动进行全局事务回滚
+				try {
+					GlobalTransactionContext.getCurrent().rollback();
+				} catch (TransactionException e) {
+					throw new RuntimeException(e);
+				}
+				return R.fail("根据id查询计费策略失败:" + throwable.getMessage());
 			}
 		};
 	}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java
index a070ffd..ad57df7 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java
@@ -7,6 +7,8 @@
 import com.ruoyi.chargingPile.api.model.TFaultMessage;
 import com.ruoyi.chargingPile.api.vo.SiteNameVO;
 import com.ruoyi.common.core.domain.R;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -36,7 +38,13 @@
     
             @Override
             public R<TChargingGun> getChargingGunById(Integer id) {
-                throw new RuntimeException("根据id获取充电枪失败:" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("根据id获取充电枪失败:" + throwable.getMessage());
             }
 
             @Override
diff --git a/ruoyi-api/ruoyi-api-integration/pom.xml b/ruoyi-api/ruoyi-api-integration/pom.xml
index 36aa47d..ac96969 100644
--- a/ruoyi-api/ruoyi-api-integration/pom.xml
+++ b/ruoyi-api/ruoyi-api-integration/pom.xml
@@ -32,7 +32,10 @@
                 </exclusion>
             </exclusions>
         </dependency>
-
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/SendMessageFallbackFactory.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/SendMessageFallbackFactory.java
index 9db561c..c88ddbe 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/SendMessageFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/SendMessageFallbackFactory.java
@@ -6,6 +6,8 @@
 import com.ruoyi.integration.api.model.ChargingHandshake;
 import com.ruoyi.integration.api.model.PlatformStartCharging;
 import com.ruoyi.integration.api.model.PlatformStopCharging;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -29,12 +31,24 @@
     
             @Override
             public String platformStartCharging(PlatformStartCharging platformStartCharging) {
-                throw new RuntimeException("远程启机失败" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return "远程启机失败";
             }
     
             @Override
             public String platformStopCharging(PlatformStopCharging platformStopCharging) {
-                throw new RuntimeException("远程停机失败" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return "远程停机失败";
             }
         };
     }
diff --git a/ruoyi-api/ruoyi-api-order/pom.xml b/ruoyi-api/ruoyi-api-order/pom.xml
index 6bdc239..d3feb2c 100644
--- a/ruoyi-api/ruoyi-api-order/pom.xml
+++ b/ruoyi-api/ruoyi-api-order/pom.xml
@@ -32,7 +32,10 @@
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-other</artifactId>
         </dependency>
-
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-other/pom.xml b/ruoyi-api/ruoyi-api-other/pom.xml
index df1d49e..3f6a651 100644
--- a/ruoyi-api/ruoyi-api-other/pom.xml
+++ b/ruoyi-api/ruoyi-api-other/pom.xml
@@ -32,6 +32,10 @@
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-account</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java
index ba006ed..e61f478 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java
@@ -5,6 +5,8 @@
 import com.ruoyi.other.api.domain.TGoods;
 import com.ruoyi.other.api.feignClient.CouponClient;
 import com.ruoyi.other.api.feignClient.GoodsClient;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -38,7 +40,13 @@
 			
 			@Override
 			public R updateCoupon(TCoupon coupon) {
-				throw new RuntimeException("修改优惠券失败");
+				// 手动进行全局事务回滚
+				try {
+					GlobalTransactionContext.getCurrent().rollback();
+				} catch (TransactionException e) {
+					throw new RuntimeException(e);
+				}
+				return R.fail("修改优惠券失败");
 			}
 		};
 	}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java
index e9002f4..bb82c32 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java
@@ -3,6 +3,8 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.other.api.domain.TGoods;
 import com.ruoyi.other.api.feignClient.GoodsClient;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -36,7 +38,13 @@
 			
 			@Override
 			public R updateGoods(TGoods goods) {
-				throw new RuntimeException("修改商品异常");
+				// 手动进行全局事务回滚
+				try {
+					GlobalTransactionContext.getCurrent().rollback();
+				} catch (TransactionException e) {
+					throw new RuntimeException(e);
+				}
+				return R.fail("修改商品异常");
 			}
 		};
 	}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/InvoiceTypeFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/InvoiceTypeFallbackFactory.java
index d1a16c0..1a7c645 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/InvoiceTypeFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/InvoiceTypeFallbackFactory.java
@@ -3,6 +3,8 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.other.api.domain.TInvoiceType;
 import com.ruoyi.other.api.feignClient.InvoiceTypeClient;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -27,7 +29,13 @@
     
             @Override
             public R<TInvoiceType> getInvoiceType(Integer id) {
-                throw new RuntimeException(throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail(throwable.getMessage());
             }
         };
     }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java
index f36972c..06e0917 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java
@@ -3,6 +3,8 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.other.api.domain.TUserSite;
 import com.ruoyi.other.api.feignClient.UserSiteClient;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -31,12 +33,24 @@
     
             @Override
             public R addUserSite(List<TUserSite> userSite) {
-                throw new RuntimeException("添加用户站点失败:" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("添加用户站点失败:" + throwable.getMessage());
             }
     
             @Override
             public R delUserSite(Long userId) {
-                throw new RuntimeException("删除用户站点失败:" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("删除用户站点失败:" + throwable.getMessage());
             }
         };
     }
diff --git a/ruoyi-api/ruoyi-api-payment/pom.xml b/ruoyi-api/ruoyi-api-payment/pom.xml
index dbbea4c..31bbeee 100644
--- a/ruoyi-api/ruoyi-api-payment/pom.xml
+++ b/ruoyi-api/ruoyi-api-payment/pom.xml
@@ -28,7 +28,10 @@
                 </exclusion>
             </exclusions>
         </dependency>
-
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/AliPaymentFallbackFactory.java b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/AliPaymentFallbackFactory.java
index 97ebf3e..3c7b402 100644
--- a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/AliPaymentFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/AliPaymentFallbackFactory.java
@@ -7,6 +7,8 @@
 import com.ruoyi.payment.api.vo.AliPaymentReq;
 import com.ruoyi.payment.api.vo.AliPaymentResp;
 import com.ruoyi.payment.api.vo.AliQueryOrder;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -30,22 +32,46 @@
     
             @Override
             public R<AliPaymentResp> payment(AliPaymentReq req) {
-                throw new RuntimeException("调起支付宝小程序支付失败:" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("调起支付宝小程序支付失败:" + throwable.getMessage());
             }
     
             @Override
             public R<AliQueryOrder> query(String outTradeNo) {
-                throw new RuntimeException("查询支付订单失败:" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("查询支付订单失败:" + throwable.getMessage());
             }
     
             @Override
             public void close(String outTradeNo) {
-                throw new RuntimeException("关闭支付订单失败:" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                R.fail("关闭支付订单失败:" + throwable.getMessage());
             }
 
             @Override
             public R<RefundResp> refund(RefundReq dto) {
-                throw new RuntimeException("支付宝退款失败:" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("支付宝退款失败:" + throwable.getMessage());
             }
         };
     }
diff --git a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java
index 6ed2018..bab0b46 100644
--- a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/factory/WxPaymentFallbackFactory.java
@@ -6,6 +6,8 @@
 import com.ruoyi.payment.api.vo.NotifyV3PayDecodeRespBody;
 import com.ruoyi.payment.api.vo.PaymentOrder;
 import com.ruoyi.payment.api.vo.WxRefundNotifyResp;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -31,12 +33,24 @@
     
             @Override
             public R<NotifyV3PayDecodeRespBody> queryOrderInfo(String orderId) {
-                throw new RuntimeException("查询支付订单信息失败:" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("查询支付订单信息失败:" + throwable.getMessage());
             }
     
             @Override
             public R<Map<String, Object>> orderPay(PaymentOrder paymentOrder) {
-                throw new RuntimeException("调起微信支付失败:" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("调起微信支付失败:" + throwable.getMessage());
             }
     
             @Override
@@ -51,13 +65,24 @@
 
             @Override
             public void close(String outTradeNo) {
-                throw new RuntimeException("关闭支付订单失败:" + throwable.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                R.fail("关闭支付订单失败:" + throwable.getMessage());
             }
 
             @Override
             public R<String> refundOrderR(WxPaymentRefundModel model) {
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
                 return R.fail("微信退款失败:" + throwable.getMessage());
-
             }
     
             @Override
diff --git a/ruoyi-api/ruoyi-api-system/pom.xml b/ruoyi-api/ruoyi-api-system/pom.xml
index 2670f57..b2f0bcd 100644
--- a/ruoyi-api/ruoyi-api-system/pom.xml
+++ b/ruoyi-api/ruoyi-api-system/pom.xml
@@ -28,6 +28,10 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
index 9a8a1f6..377c0da 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
@@ -5,6 +5,8 @@
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.feignClient.SysUserClient;
 import com.ruoyi.system.api.model.*;
+import io.seata.core.exception.TransactionException;
+import io.seata.tm.api.GlobalTransactionContext;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
@@ -27,7 +29,13 @@
 
             @Override
             public R<Boolean> updateSysUser(SysUser sysUser) {
-                throw new RuntimeException("更新用户失败:" + cause.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("更新用户失败:" + cause.getMessage());
             }
 
             @Override
@@ -92,12 +100,24 @@
     
             @Override
             public R addSysUser(SysUser user) {
-                throw new RuntimeException("添加用户失败:" + cause.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("添加用户失败:" + cause.getMessage());
             }
 
             @Override
             public R resetPassword(SysUser user) {
-                throw new RuntimeException("重置用户密码失败:" + cause.getMessage());
+                // 手动进行全局事务回滚
+                try {
+                    GlobalTransactionContext.getCurrent().rollback();
+                } catch (TransactionException e) {
+                    throw new RuntimeException(e);
+                }
+                return R.fail("重置用户密码失败:" + cause.getMessage());
             }
         };
     }
diff --git a/ruoyi-auth/src/main/resources/bootstrap.yml b/ruoyi-auth/src/main/resources/bootstrap.yml
index 56494a5..0122628 100644
--- a/ruoyi-auth/src/main/resources/bootstrap.yml
+++ b/ruoyi-auth/src/main/resources/bootstrap.yml
@@ -1,10 +1,12 @@
 server:
   port: 9100
+  tomcat:
+    basedir: /data/tomcat
 # Spring
 spring:
   profiles:
     # 环境配置
-    active: prod
+    active: dev
   application:
     # 应用名称
     name: ruoyi-auth
@@ -53,52 +55,52 @@
     type: nacos
     nacos:
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      data-id: seata-server.properties
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      data-id: seata-server.properties
+#      username: nacos
+#      password: nacos
   registry:
     type: nacos
     nacos:
       application: seata-server
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      username: nacos
+#      password: nacos
   cloud:
     nacos:
       discovery:
         # 开发环境
-        #        server-addr: 192.168.110.169:8848 # nacos注册中心地址
-        #        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
-        #        group: DEFAULT_GROUP
-        #        application: seata-server #Nacos 中 Seata 名称
-        #        username: nacos
-        #        password: nacos
-        # 生产环境
-        server-addr: 192.168.0.137:8848,192.168.0.123:8848
-        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
         username: nacos
         password: nacos
+        # 生产环境
+#        server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#        group: DEFAULT_GROUP
+#        application: seata-server #Nacos 中 Seata 名称
+#        username: nacos
+#        password: nacos
     sentinel:
       transport:
         dashboard: 127.0.0.1:8080  #  Sentinel控制台地址
diff --git a/ruoyi-gateway/pom.xml b/ruoyi-gateway/pom.xml
index 35f7df5..f858a41 100644
--- a/ruoyi-gateway/pom.xml
+++ b/ruoyi-gateway/pom.xml
@@ -114,18 +114,6 @@
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
-        <dependency>
-            <groupId>com.ruoyi</groupId>
-            <artifactId>ruoyi-api-account</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.ruoyi</groupId>
-            <artifactId>ruoyi-api-system</artifactId>
-            <version>3.6.2</version>
-            <scope>compile</scope>
-        </dependency>
 
     </dependencies>
 
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/AntiShakeProperties.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/AntiShakeProperties.java
new file mode 100644
index 0000000..4ae2c6f
--- /dev/null
+++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/AntiShakeProperties.java
@@ -0,0 +1,34 @@
+package com.ruoyi.gateway.config.properties;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author ruoyi
+ */
+@Configuration
+@RefreshScope
+@ConfigurationProperties(prefix = "security.anti-shake")
+public class AntiShakeProperties {
+	
+	private Boolean enable;
+	
+	private Long interval;
+	
+	public Boolean getEnable() {
+		return enable;
+	}
+	
+	public void setEnable(Boolean enable) {
+		this.enable = enable;
+	}
+	
+	public Long getInterval() {
+		return interval;
+	}
+	
+	public void setInterval(Long interval) {
+		this.interval = interval;
+	}
+}
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/SignProperties.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/SignProperties.java
new file mode 100644
index 0000000..bcb77e1
--- /dev/null
+++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/SignProperties.java
@@ -0,0 +1,27 @@
+package com.ruoyi.gateway.config.properties;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author ruoyi
+ */
+@Configuration
+@RefreshScope
+@ConfigurationProperties(prefix = "security.sign")
+public class SignProperties {
+	
+	private Boolean enable;
+	
+	public Boolean getEnable() {
+		return enable;
+	}
+	
+	public void setEnable(Boolean enable) {
+		this.enable = enable;
+	}
+}
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
index 6aa40ff..bf60f1c 100644
--- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
+++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -1,5 +1,6 @@
 package com.ruoyi.gateway.filter;
 
+import com.ruoyi.gateway.config.properties.AntiShakeProperties;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,9 +40,12 @@
 	// 排除过滤的 uri 地址,nacos自行添加
 	@Autowired
 	private IgnoreWhiteProperties ignoreWhite;
+	@Autowired
+	private AntiShakeProperties antiShakeProperties;
 
 	@Autowired
 	private RedisService redisService;
+	
 	
 	
 	
@@ -59,7 +63,7 @@
 		try {
 			antiShake(request);
 		}catch (Exception e){
-			log.error("[重复提交]请求路径:{}", exchange.getRequest().getPath());
+			log.error(e.getMessage());
 			return ServletUtils.webFluxResponseWriter(exchange.getResponse(), e.getMessage(), HttpStatus.SUCCESS);
 		}
 		
@@ -129,7 +133,7 @@
 	 */
 	public void antiShake(ServerHttpRequest request) throws Exception{
 		HttpMethod method = request.getMethod();
-		if(HttpMethod.OPTIONS == method){
+		if(HttpMethod.OPTIONS == method || !antiShakeProperties.getEnable()){
 			return;
 		}
 		HttpHeaders headers = request.getHeaders();
@@ -155,8 +159,8 @@
 				Long old_timestamp = Long.valueOf(o.toString());
 				Long new_timestamp = Long.valueOf(timestamp);
 				//两个请求时间差小于1秒,判定为重复提交
-				if((new_timestamp - old_timestamp) <= 500){
-					throw new RuntimeException("重复提交");
+				if((new_timestamp - old_timestamp) <= antiShakeProperties.getInterval()){
+					throw new RuntimeException(url + "----->重复提交");
 				}else{
 					cacheMap.put(url, timestamp);
 				}
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java
index 11816ce..5b865dc 100644
--- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java
+++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java
@@ -3,27 +3,21 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.constant.HttpStatus;
-import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.constant.TokenConstants;
-import com.ruoyi.common.core.utils.JwtUtils;
 import com.ruoyi.common.core.utils.ServletUtils;
 import com.ruoyi.common.core.utils.StringUtils;
-import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties;
-import io.jsonwebtoken.Claims;
+import com.ruoyi.gateway.config.properties.SignProperties;
 import org.apache.commons.codec.binary.Base64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cloud.gateway.filter.GatewayFilterChain;
 import org.springframework.cloud.gateway.filter.GlobalFilter;
 import org.springframework.core.Ordered;
 import org.springframework.core.io.buffer.DataBuffer;
 import org.springframework.core.io.buffer.DataBufferUtils;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.http.server.reactive.ServerHttpRequestDecorator;
@@ -37,7 +31,6 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * 网关鉴权
@@ -48,11 +41,11 @@
 public class SignFilter implements GlobalFilter, Ordered {
     private static final Logger log = LoggerFactory.getLogger(SignFilter.class);
 
-    @Value("${security.sign}")
-    private boolean parameter_signature;
-
     @Autowired
     private IgnoreWhiteProperties ignoreWhite;
+    
+    @Autowired
+    private SignProperties signProperties;
 
 
     @Override
@@ -71,13 +64,13 @@
         }
         String sign = request.getHeaders().getFirst(TokenConstants.SIGN);
         String nonce_str = request.getHeaders().getFirst(TokenConstants.NONCE_STR);
-        if (parameter_signature && StringUtils.isEmpty(sign)) {
+        if (signProperties.getEnable() && StringUtils.isEmpty(sign)) {
             return unauthorizedResponse(exchange, "签名不能为空!");
         }
-        if (parameter_signature && StringUtils.isEmpty(nonce_str)) {
+        if (signProperties.getEnable() && StringUtils.isEmpty(nonce_str)) {
             return unauthorizedResponse(exchange, "签名不能为空!");
         }
-        if(parameter_signature){
+        if(signProperties.getEnable()){
             return authSign(exchange, chain, sign, nonce_str);
         }
         return chain.filter(exchange.mutate().request(mutate.build()).build());
diff --git a/ruoyi-gateway/src/main/resources/bootstrap.yml b/ruoyi-gateway/src/main/resources/bootstrap.yml
index 092b794..1beff53 100644
--- a/ruoyi-gateway/src/main/resources/bootstrap.yml
+++ b/ruoyi-gateway/src/main/resources/bootstrap.yml
@@ -1,5 +1,8 @@
 server:
   port: 9000
+  tomcat:
+    basedir: /data/tomcat
+    max-swallow-size: 100MB
 # Spring
 spring:
   application:
@@ -9,7 +12,7 @@
     allow-bean-definition-overriding: true
   profiles:
     # 环境配置
-    active: prod
+    active: dev
 ---
 spring:
   config:
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
index 08fea37..1fd2cc8 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -1,5 +1,7 @@
 server:
   port: 9800
+  tomcat:
+    basedir: /data/tomcat
 # Spring
 spring: 
   application:
@@ -9,7 +11,7 @@
     allow-bean-definition-overriding: true
   profiles:
     # 环境配置
-    active: prod
+    active: dev
 ---
 spring:
   config:
@@ -52,52 +54,52 @@
     type: nacos
     nacos:
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      data-id: seata-server.properties
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      data-id: seata-server.properties
+#      username: nacos
+#      password: nacos
   registry:
     type: nacos
     nacos:
       application: seata-server
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      username: nacos
+#      password: nacos
   cloud:
     nacos:
       discovery:
         # 开发环境
-#        server-addr: 192.168.110.169:8848 # nacos注册中心地址
-#        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
-#        group: DEFAULT_GROUP
-#        application: seata-server #Nacos 中 Seata 名称
-#        username: nacos
-#        password: nacos
-        # 生产环境
-        server-addr: 192.168.0.137:8848,192.168.0.123:8848
-        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
         username: nacos
         password: nacos
+        # 生产环境
+#        server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#        group: DEFAULT_GROUP
+#        application: seata-server #Nacos 中 Seata 名称
+#        username: nacos
+#        password: nacos
     sentinel:
       transport:
         dashboard: 127.0.0.1:8080  #  Sentinel控制台地址
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
index 9aa8ddd..4631e31 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
@@ -1,5 +1,7 @@
 server:
   port: 9200
+  tomcat:
+    basedir: /data/tomcat
 # Spring
 spring:
   application:
@@ -10,7 +12,7 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: prod
+    active: dev
 ---
 spring:
   config:
@@ -53,52 +55,52 @@
     type: nacos
     nacos:
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      data-id: seata-server.properties
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      data-id: seata-server.properties
+#      username: nacos
+#      password: nacos
   registry:
     type: nacos
     nacos:
       application: seata-server
       # 开发环境
-      #      server-addr: 192.168.110.169:8848
-      #      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-      #      group: DEFAULT_GROUP
-      #      username: nacos
-      #      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      username: nacos
+#      password: nacos
   cloud:
     nacos:
       discovery:
         # 开发环境
-        #        server-addr: 192.168.110.169:8848 # nacos注册中心地址
-        #        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
-        #        group: DEFAULT_GROUP
-        #        application: seata-server #Nacos 中 Seata 名称
-        #        username: nacos
-        #        password: nacos
-        # 生产环境
-        server-addr: 192.168.0.137:8848,192.168.0.123:8848
-        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
         username: nacos
         password: nacos
+        # 生产环境
+#        server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#        group: DEFAULT_GROUP
+#        application: seata-server #Nacos 中 Seata 名称
+#        username: nacos
+#        password: nacos
     sentinel:
       transport:
         dashboard: 192.168.0.137:8080  #  Sentinel控制台地址
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
index c24df46..610874d 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
@@ -1,5 +1,7 @@
 server:
   port: 9300
+  tomcat:
+    basedir: /data/tomcat
 # Spring
 spring:
   application:
@@ -10,7 +12,7 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: prod
+    active: dev
 ---
 spring:
   config:
@@ -53,52 +55,52 @@
     type: nacos
     nacos:
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      data-id: seata-server.properties
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      data-id: seata-server.properties
+#      username: nacos
+#      password: nacos
   registry:
     type: nacos
     nacos:
       application: seata-server
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      username: nacos
+#      password: nacos
   cloud:
     nacos:
       discovery:
         # 开发环境
-#        server-addr: 192.168.110.169:8848 # nacos注册中心地址
-#        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
-#        group: DEFAULT_GROUP
-#        application: seata-server #Nacos 中 Seata 名称
-#        username: nacos
-#        password: nacos
-        # 生产环境
-        server-addr: 192.168.0.137:8848,192.168.0.123:8848
-        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
         username: nacos
         password: nacos
+        # 生产环境
+#        server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#        group: DEFAULT_GROUP
+#        application: seata-server #Nacos 中 Seata 名称
+#        username: nacos
+#        password: nacos
     sentinel:
       transport:
         dashboard: 127.0.0.1:8080  #  Sentinel控制台地址
diff --git a/ruoyi-service/ruoyi-integration/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-integration/src/main/resources/bootstrap.yml
index adf78b9..20bdc83 100644
--- a/ruoyi-service/ruoyi-integration/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-integration/src/main/resources/bootstrap.yml
@@ -1,5 +1,7 @@
 server:
   port: 9700
+  tomcat:
+    basedir: /data/tomcat
 # Spring
 spring:
   application:
@@ -10,7 +12,7 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: prod
+    active: dev
     
 ---
 spring:
@@ -61,52 +63,52 @@
     type: nacos
     nacos:
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      data-id: seata-server.properties
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      data-id: seata-server.properties
+#      username: nacos
+#      password: nacos
   registry:
     type: nacos
     nacos:
       application: seata-server
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      username: nacos
+#      password: nacos
   cloud:
     nacos:
       discovery:
         # 开发环境
-#        server-addr: 192.168.110.169:8848 # nacos注册中心地址
-#        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
-#        group: DEFAULT_GROUP
-#        application: seata-server #Nacos 中 Seata 名称
-#        username: nacos
-#        password: nacos
-        # 生产环境
-        server-addr: 192.168.0.137:8848,192.168.0.123:8848
-        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
         username: nacos
         password: nacos
+        # 生产环境
+#        server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#        group: DEFAULT_GROUP
+#        application: seata-server #Nacos 中 Seata 名称
+#        username: nacos
+#        password: nacos
     sentinel:
       transport:
         dashboard: 127.0.0.1:8080  #  Sentinel控制台地址
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index 3d0b7e4..61b4ae3 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -70,6 +70,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
@@ -650,7 +651,7 @@
 				model.setOut_trade_no(chargingOrder.getCode());
 				model.setOut_refund_no(chargingOrderRefund.getRefundCode());
 				model.setReason("充电失败,取消充电订单");
-				model.setNotify_url("http://221.182.45.100:9000/order/t-charging-order/chargingOrderStartupFailureWxRefund");
+				model.setNotify_url("/order/t-charging-order/chargingOrderStartupFailureWxRefund");
 				WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount();
 				amount.setRefund(rechargeAmount.multiply(new BigDecimal(100)).intValue());
 				amount.setTotal(rechargeAmount.multiply(new BigDecimal(100)).intValue());
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
index 4d15611..a49dc2a 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
@@ -1,5 +1,7 @@
 server:
   port: 9400
+  tomcat:
+    basedir: /data/tomcat
 # Spring
 spring:
   application:
@@ -10,7 +12,7 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: prod
+    active: dev
 ---
 spring:
   config:
@@ -53,52 +55,52 @@
     type: nacos
     nacos:
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      data-id: seata-server.properties
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      data-id: seata-server.properties
+#      username: nacos
+#      password: nacos
   registry:
     type: nacos
     nacos:
       application: seata-server
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      username: nacos
+#      password: nacos
   cloud:
     nacos:
       discovery:
         # 开发环境
-#        server-addr: 192.168.110.169:8848 # nacos注册中心地址
-#        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
-#        group: DEFAULT_GROUP
-#        application: seata-server #Nacos 中 Seata 名称
-#        username: nacos
-#        password: nacos
-        # 生产环境
-        server-addr: 192.168.0.137:8848,192.168.0.123:8848
-        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
         username: nacos
         password: nacos
+        # 生产环境
+#        server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#        group: DEFAULT_GROUP
+#        application: seata-server #Nacos 中 Seata 名称
+#        username: nacos
+#        password: nacos
     sentinel:
       transport:
         dashboard: 127.0.0.1:8080  #  Sentinel控制台地址
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
index d8684e9..2c4088c 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
@@ -1,5 +1,7 @@
 server:
   port: 9600
+  tomcat:
+    basedir: /data/tomcat
 # Spring
 spring:
   application:
@@ -10,7 +12,7 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: prod
+    active: dev
 ---
 spring:
   config:
@@ -53,52 +55,52 @@
     type: nacos
     nacos:
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      data-id: seata-server.properties
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      data-id: seata-server.properties
+#      username: nacos
+#      password: nacos
   registry:
     type: nacos
     nacos:
       application: seata-server
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      username: nacos
+#      password: nacos
   cloud:
     nacos:
       discovery:
         # 开发环境
-#        server-addr: 192.168.110.169:8848 # nacos注册中心地址
-#        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
-#        group: DEFAULT_GROUP
-#        application: seata-server #Nacos 中 Seata 名称
-#        username: nacos
-#        password: nacos
-        # 生产环境
-        server-addr: 192.168.0.137:8848,192.168.0.123:8848
-        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
         username: nacos
         password: nacos
+        # 生产环境
+#        server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#        group: DEFAULT_GROUP
+#        application: seata-server #Nacos 中 Seata 名称
+#        username: nacos
+#        password: nacos
     sentinel:
       transport:
         dashboard: 127.0.0.1:8080  #  Sentinel控制台地址
diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/model/V3.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/model/V3.java
index b08ca9d..68aa7ec 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/model/V3.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/model/V3.java
@@ -61,12 +61,15 @@
             certStream = new FileInputStream(this.privateKeyPath);
             certData = IOUtils.toByteArray(certStream);
         } catch (IOException e) {
+            e.printStackTrace();
             throw new RuntimeException("私钥文件未找到");
         }finally {
-            try {
-                certStream.close();
-            } catch (IOException e) {
-                log.error("私钥流关闭异常");
+            if(null != certStream){
+                try {
+                    certStream.close();
+                } catch (IOException e) {
+                    log.error("私钥流关闭异常");
+                }
             }
         }
         return new ByteArrayInputStream(certData);
diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/model/WeixinProperties.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/model/WeixinProperties.java
index 6bf8113..782690b 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/model/WeixinProperties.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/model/WeixinProperties.java
@@ -103,4 +103,12 @@
     public void setMchId(String mchId) {
         this.mchId = mchId;
     }
+    
+    public String getCallBackUrl() {
+        return callBackUrl;
+    }
+    
+    public void setCallBackUrl(String callBackUrl) {
+        this.callBackUrl = callBackUrl;
+    }
 }
diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/utils/WxAbstractPay.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/utils/WxAbstractPay.java
index 3a3d081..629c51f 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/utils/WxAbstractPay.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/utils/WxAbstractPay.java
@@ -1,5 +1,7 @@
 package com.ruoyi.payment.wx.utils;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.ruoyi.common.core.utils.WebUtils;
 import com.ruoyi.payment.wx.model.WxCloseOrderModel;
@@ -69,7 +71,7 @@
      */
     protected String buildBaseParam(WxPaymentInfoModel requestBody, String notifyUrl) {
         // 封装基础数据
-//        requestBody.setNotify_url(notifyUrl);
+        requestBody.setNotify_url(notifyUrl + requestBody.getNotify_url());
         String reqBody = WxJsonUtils.toJsonString(requestBody);
         return reqBody;
     }
@@ -199,9 +201,46 @@
                 url
                 , socketTimeout
                 , connectTimeout);
-        String repBody = result(httpClient, httpGet);
-        NotifyV3PayDecodeRespBody body = WxJsonUtils.parseObject(repBody, NotifyV3PayDecodeRespBody.class);
-        return body;
+        CloseableHttpResponse response = null;
+        try {
+            response = httpClient.execute(httpGet);
+            int statusCode = response.getStatusLine().getStatusCode();
+            String respBodyStr = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
+            if (WxUtils.getLogger().isDebugEnabled()) {
+                WxUtils.debug("请求成功:{}", respBodyStr);
+            }
+            if(404 == statusCode){
+               return null;
+            }
+            // 成功相应
+            if (STATUS_CODE == statusCode || OTHER_STATUS_CODE == statusCode ) {
+                NotifyV3PayDecodeRespBody body = WxJsonUtils.parseObject(respBodyStr, NotifyV3PayDecodeRespBody.class);
+                return body;
+            } else {
+                WxUtils.error("failed,resp code = {},return body = {}", statusCode, respBodyStr);
+                throw new RuntimeException(respBodyStr);
+            }
+        } catch (ConnectTimeoutException e) {
+            e.printStackTrace();
+            throw new RuntimeException("接口超时");
+        } catch (SocketTimeoutException e) {
+            e.printStackTrace();
+            throw new RuntimeException("读取接口数据超时");
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw new RuntimeException("接口请求失败,请尝试检查网络环境或请求接口是否能正常访问");
+        } finally {
+            // 关闭响应
+            try {
+                if (response != null) {
+                    //关闭结果集
+                    response.getEntity().getContent().close();
+                    response.close();
+                }
+            } catch (IOException e) {
+                throw new RuntimeException("关闭流异常");
+            }
+        }
     }
 
     /**
@@ -251,7 +290,6 @@
         Map<String, Object> body = WxJsonUtils.parseObject(repBody, Map.class);
         return body;
     }
-
 
     /**
      * 请求结果
diff --git a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/utils/WxV3Pay.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/utils/WxV3Pay.java
index af10ca3..818f242 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/utils/WxV3Pay.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/wx/utils/WxV3Pay.java
@@ -191,7 +191,7 @@
      */
     @Override
     public Map<String, Object> refund(WxPaymentRefundModel refundModel) {
-//        refundModel.setNotify_url(this.config.getV3().getNotifyRefundUrl());
+        refundModel.setNotify_url(this.config.getV3().getNotifyRefundUrl() + refundModel.getNotify_url());
         return refund(this.httpClient, "/v3/refund/domestic/refunds", this.config.getHttpReadTimeoutMs(), this.config.getHttpConnectTimeoutMs(), refundModel);
     }
     
diff --git a/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml
index cc0a0b8..c1e6944 100644
--- a/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml
@@ -1,5 +1,7 @@
 server:
   port: 9500
+  tomcat:
+    basedir: /data/tomcat
 # Spring
 spring:
   application:
@@ -10,7 +12,7 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: prod
+    active: dev
 ---
 spring:
   config:
@@ -53,52 +55,52 @@
     type: nacos
     nacos:
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      data-id: seata-server.properties
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       data-id: seata-server.properties
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      data-id: seata-server.properties
+#      username: nacos
+#      password: nacos
   registry:
     type: nacos
     nacos:
       application: seata-server
       # 开发环境
-#      server-addr: 192.168.110.169:8848
-#      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
-#      group: DEFAULT_GROUP
-#      username: nacos
-#      password: nacos
-      # 生产环境
-      server-addr: 192.168.0.137:8848,192.168.0.123:8848
-      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+      server-addr: 192.168.110.169:8848
+      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
       group: DEFAULT_GROUP
       username: nacos
       password: nacos
+      # 生产环境
+#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#      group: DEFAULT_GROUP
+#      username: nacos
+#      password: nacos
   cloud:
     nacos:
       discovery:
         # 开发环境
-#        server-addr: 192.168.110.169:8848 # nacos注册中心地址
-#        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
-#        group: DEFAULT_GROUP
-#        application: seata-server #Nacos 中 Seata 名称
-#        username: nacos
-#        password: nacos
-        # 生产环境
-        server-addr: 192.168.0.137:8848,192.168.0.123:8848
-        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+        server-addr: 192.168.110.169:8848 # nacos注册中心地址
+        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
         group: DEFAULT_GROUP
         application: seata-server #Nacos 中 Seata 名称
         username: nacos
         password: nacos
+        # 生产环境
+#        server-addr: 192.168.0.137:8848,192.168.0.123:8848
+#        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+#        group: DEFAULT_GROUP
+#        application: seata-server #Nacos 中 Seata 名称
+#        username: nacos
+#        password: nacos
     sentinel:
       transport:
         dashboard: 127.0.0.1:8080  #  Sentinel控制台地址

--
Gitblit v1.7.1