From b1aa5f226578dd03852e34db9aba16084f5d05dc Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 06 十二月 2024 11:56:32 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java             |   18 
 ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml                                                      |   57 ++--
 ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml                                                    |   56 ++--
 ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/AliPayController.java                    |   86 ++++++-
 ruoyi-gateway/src/main/resources/bootstrap.yml                                                                  |    4 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml                                               |   55 ++--
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/RedisLock.java                                     |    8 
 ruoyi-auth/src/main/resources/bootstrap.yml                                                                     |   56 ++--
 ruoyi-service/ruoyi-integration/src/main/resources/bootstrap.yml                                                |   64 ++---
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java           |    5 
 ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml                                                      |   60 ++--
 ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml                                                    |   52 +++-
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java |   26 +-
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java                |   11 +
 ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml                                                     |   55 ++--
 ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/AliPaymentClient.java               |    7 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java                  |    7 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java                |   19 -
 18 files changed, 361 insertions(+), 285 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
index d2656dc..0062651 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
@@ -129,6 +129,11 @@
             }
     
             @Override
+            public void chargingOrderALICallback(String out_trade_no, String transaction_id, String attach) {
+                log.error("充电支付成功回调通知失败:" + throwable.getMessage());
+            }
+    
+            @Override
             public void chargingOrderStartupFailureWxRefund(String out_refund_no, String refund_id, String tradeState, String success_time) {
                 log.error("远程启动失败后退款通知失败:" + throwable.getMessage());
             }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
index 2d3875b..e54666c 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
@@ -153,6 +153,17 @@
     
     
     /**
+     * 充电支付成功回调通知
+     * @param out_trade_no
+     * @param transaction_id
+     * @param attach
+     */
+    @PostMapping("/t-charging-order/chargingOrderALICallback")
+    void chargingOrderALICallback(@RequestParam("out_trade_no") String out_trade_no,
+                                  @RequestParam("transaction_id") String transaction_id,
+                                  @RequestParam("attach") String attach);
+    
+    /**
      * 远程启动失败后退款回调
      * @param out_refund_no
      * @param refund_id
diff --git a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/AliPaymentClient.java b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/AliPaymentClient.java
index 496217c..357bdc9 100644
--- a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/AliPaymentClient.java
+++ b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/AliPaymentClient.java
@@ -11,6 +11,7 @@
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * @author zhibing.pu
@@ -26,7 +27,7 @@
 	 * @return
 	 */
 	@PostMapping("/ali/payment")
-	R<AliPaymentResp> payment(AliPaymentReq req);
+	R<AliPaymentResp> payment(@RequestBody AliPaymentReq req);
 	
 	
 	/**
@@ -35,14 +36,14 @@
 	 * @return
 	 */
 	@PostMapping("/ali/query")
-	R<AliQueryOrder> query(String outTradeNo);
+	R<AliQueryOrder> query(@RequestParam("outTradeNo") String outTradeNo);
 	
 	/**
 	 * 关闭订单
 	 * @param outTradeNo
 	 */
 	@PostMapping("/ali/close")
-	void close(String outTradeNo);
+	void close(@RequestParam("outTradeNo") String outTradeNo);
 	/**
 	 * 后台退款 远程调用
 	 */
diff --git a/ruoyi-auth/src/main/resources/bootstrap.yml b/ruoyi-auth/src/main/resources/bootstrap.yml
index 866e429..20ccecd 100644
--- a/ruoyi-auth/src/main/resources/bootstrap.yml
+++ b/ruoyi-auth/src/main/resources/bootstrap.yml
@@ -6,8 +6,8 @@
 spring:
   profiles:
     # 环境配置
-    active: dev
-#    active: prod
+#    active: dev
+    active: prod
   application:
     # 应用名称
     name: ruoyi-auth
@@ -56,52 +56,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/src/main/resources/bootstrap.yml b/ruoyi-gateway/src/main/resources/bootstrap.yml
index 48963f2..7598ca6 100644
--- a/ruoyi-gateway/src/main/resources/bootstrap.yml
+++ b/ruoyi-gateway/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@
     allow-bean-definition-overriding: true
   profiles:
     # 环境配置
-    active: dev
-#    active: prod
+#    active: dev
+    active: prod
 ---
 spring:
   config:
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 16f9f89..673d496 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -13,6 +13,7 @@
 import com.ruoyi.chargingPile.api.feignClient.SiteClient;
 import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.other.api.feignClient.RoleSiteClient;
 import com.ruoyi.other.api.feignClient.UserSiteClient;
 import com.ruoyi.system.api.query.ChangeUserQuery;
@@ -89,6 +90,9 @@
 	
 	@Resource
 	private ISysRoleService sysRoleService;
+	
+	@Resource
+	private TokenService tokenService;
 	
 	
 	/**
@@ -235,7 +239,8 @@
 	 */
 	@Override
 	public void checkUserAllowed(SysUser user) {
-		if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) {
+		Long userid = tokenService.getLoginUser().getUserid();
+		if (StringUtils.isNotNull(user.getUserId()) && !userid.equals(user.getUserId()) && user.isAdmin()) {
 			throw new ServiceException("不允许操作超级管理员用户");
 		}
 	}
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
index d837d2b..c8f030b 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -11,7 +11,8 @@
     allow-bean-definition-overriding: true
   profiles:
     # 环境配置
-    active: dev
+#    active: dev
+    active: prod
 ---
 spring:
   config:
@@ -54,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-account/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
index ce8973a..32d84d4 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: dev
-#    active: prod
+#    active: dev
+    active: prod
 ---
 spring:
   config:
@@ -56,52 +56,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 7570bee..742f2c5 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
@@ -12,7 +12,8 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: dev
+#    active: dev
+    active: prod
 ---
 spring:
   config:
@@ -55,52 +56,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
-        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
+#        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/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
index 613a09e..75440f0 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/barrierGate/server/ParkingOrderService.java
@@ -108,18 +108,12 @@
 				TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
 				parkingRecord.setPhone(appUser.getPhone());
 				parkingRecord.setFreeDuration(parkingLot.getChargeFreeDuration());
-				//超时占位费
-				long out = parkingRecord.getOutParkingTime().atZone(ZoneId.systemDefault()).toEpochSecond();
-				long in = parkingRecord.getInParkingTime().atZone(ZoneId.systemDefault()).toEpochSecond();
-				long m = (out - in) / 60;
+				long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
 				parkingRecord.setTimeoutAmount(m > parkingLot.getChargeFreeDuration() ? new BigDecimal(m - parkingLot.getChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
 				
 			}else{
 				parkingRecord.setFreeDuration(parkingLot.getNonChargeFreeDuration());
-				//超时占位费
-				long out = parkingRecord.getOutParkingTime().atZone(ZoneId.systemDefault()).toEpochSecond();
-				long in = parkingRecord.getInParkingTime().atZone(ZoneId.systemDefault()).toEpochSecond();
-				long m = (out - in) / 60;
+				long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
 				parkingRecord.setTimeoutAmount(m > parkingLot.getNonChargeFreeDuration() ? new BigDecimal(m - parkingLot.getNonChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
 			}
 		}
@@ -170,9 +164,8 @@
 		query.setLicensePlate(order.getPlatenumber());
 		query.setStatus(1);
 		TParkingRecord parkingRecord = parkingRecordClient.getParkingRecord(query).getData();
-		LocalDateTime parse = LocalDateTime.parse(order.getLeavetime(), DateTimeFormatter.ISO_DATE_TIME);
-		parse = parse.plusHours(8);
-		parkingRecord.setOutParkingTime(parse);
+		TParkingLot parkingLot = parkingLotClient.getParkingLotByAppKey(order.getAppkey()).getData();
+		parkingRecord.setOutParkingTime(LocalDateTime.now());
 		parkingRecord.setParkingDuration(Integer.valueOf(order.getLongTime()));
 		parkingRecord.setOrderAmount(new BigDecimal(order.getMoney()));
 		parkingRecord.setPayment(new BigDecimal(order.getMoney()));
@@ -188,8 +181,19 @@
 				TChargingOrder chargingOrder = data.get(0);
 				parkingRecord.setAppUserId(chargingOrder.getAppUserId());
 				parkingRecord.setChargingOrderId(chargingOrder.getId());
+				TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
+				parkingRecord.setPhone(appUser.getPhone());
+				parkingRecord.setFreeDuration(parkingLot.getChargeFreeDuration());
+				long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
+				parkingRecord.setTimeoutAmount(m > parkingLot.getChargeFreeDuration() ? new BigDecimal(m - parkingLot.getChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
+				
+			}else{
+				parkingRecord.setFreeDuration(parkingLot.getNonChargeFreeDuration());
+				long m = parkingRecord.getParkingDuration() - parkingRecord.getFreeDuration();
+				parkingRecord.setTimeoutAmount(m > parkingLot.getNonChargeFreeDuration() ? new BigDecimal(m - parkingLot.getNonChargeFreeDuration()).multiply(parkingLot.getChargeRate()) : BigDecimal.ZERO);
 			}
 		}
+		parkingRecord.setFreeAmount(parkingRecord.getOrderAmount().subtract(parkingRecord.getPayment()));
 		parkingRecordClient.updateParkingRecord(parkingRecord);
 	}
 	
diff --git a/ruoyi-service/ruoyi-integration/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-integration/src/main/resources/bootstrap.yml
index 834c664..60c4fde 100644
--- a/ruoyi-service/ruoyi-integration/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-integration/src/main/resources/bootstrap.yml
@@ -12,15 +12,9 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: dev
-#    active: prod
----
-spring:
-  cloud:
-    stream:
-      rocketmq:
-        binder:
-          name-server: 127.0.0.1:9876
+#    active: dev
+    active: prod
+    
 ---
 spring:
   config:
@@ -63,52 +57,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/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index bb06444..2525a1c 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -548,21 +548,10 @@
      */
     @ResponseBody
     @PostMapping(value = "/chargingOrderALICallback")
-    public void chargingOrderALICallback(@RequestBody AliQueryOrder aliQueryOrder, HttpServletResponse response) {
-        try {
-            String out_trade_no = aliQueryOrder.getOutTradeNo();
-            String transaction_id = aliQueryOrder.getTradeNo();
-            String attach = aliQueryOrder.getPassbackParams();
-            AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(2, out_trade_no, transaction_id, attach);
-            if (ajaxResult.isSuccess()) {
-                PrintWriter writer = response.getWriter();
-                writer.println("success");
-                writer.flush();
-                writer.close();
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+    public void chargingOrderALICallback(@RequestParam("out_trade_no") String out_trade_no,
+                                         @RequestParam("transaction_id") String transaction_id,
+                                         @RequestParam("attach") String attach) {
+        chargingOrderService.chargingOrderCallback(2, out_trade_no, transaction_id, attach);
     }
     
     
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 dfd55ed..b350fea 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
@@ -884,8 +884,7 @@
 				dto.setRefundReason("充电失败,取消充电订单");
 				RefundResp resp = aliPaymentClient.refund(dto).getData();
 				if(null != resp){
-					SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE");
-					AjaxResult success = chargingOrderStartupFailureWxRefund(resp.getOutTradeNo(), resp.getTradeNo(), "SUCCESS", sdf1.format(new Date()));
+					AjaxResult success = chargingOrderStartupFailureWxRefund(resp.getOutTradeNo(), resp.getTradeNo(), "SUCCESS", null);
 					if(success.isSuccess()){
 						chargingOrderRefundService.save(chargingOrderRefund);
 					}
@@ -959,12 +958,12 @@
 			Integer h = Integer.valueOf(data.getCumulative_charging_time() / 60);
 			Integer m = Integer.valueOf(data.getCumulative_charging_time() % 60);
 			chargingDetails.setChargedTime(String.format("%02d", h) + ":" + String.format("%02d", m));
-		}
-		if(null != data && null != one.getAppUserCarId()){
-			TAppUserCar appUserCar = appUserCarClient.getCarByIds(Arrays.asList(one.getAppUserCarId())).getData().get(0);
-			//   续航 = 续航里程 * soc
-			BigDecimal multiply = new BigDecimal(data.getSoc() / 100).multiply(new BigDecimal(appUserCar.getEndurance()));
-			chargingDetails.setEndurance(multiply);
+			if(null != one.getAppUserCarId()){
+				TAppUserCar appUserCar = appUserCarClient.getCarById(one.getAppUserCarId().toString()).getData();
+				//   续航 = 续航里程 * soc
+				BigDecimal multiply = new BigDecimal(data.getSoc()).divide(new BigDecimal(100)).multiply(new BigDecimal(appUserCar.getEndurance()));
+				chargingDetails.setEndurance(multiply.setScale(2, RoundingMode.HALF_EVEN));
+			}
 		}
 		return chargingDetails;
 	}
@@ -2210,8 +2209,7 @@
 				dto.setRefundReason("充电完成退款");
 				RefundResp resp = aliPaymentClient.refund(dto).getData();
 				if(null != resp){
-					SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-DDTHH:mm:ss+TIMEZONE");
-					AjaxResult success = chargingOrderStartupFailureWxRefund(resp.getOutTradeNo(), resp.getTradeNo(), "SUCCESS", sdf1.format(new Date()));
+					AjaxResult success = chargingOrderStartupFailureWxRefund(resp.getOutTradeNo(), resp.getTradeNo(), "SUCCESS", null);
 					if(success.isSuccess()){
 						chargingOrderRefundService.save(chargingOrderRefund);
 					}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/RedisLock.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/RedisLock.java
index b9954c8..b6b72a4 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/RedisLock.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/RedisLock.java
@@ -41,11 +41,7 @@
 	}
 	
 	public boolean unlock() {
-		String identifier = redisTemplate.opsForValue().get(lockKey);
-		if (identifier != null && identifier.equals(UUID.randomUUID().toString())) {
-			redisTemplate.delete(lockKey);
-			return true;
-		}
-		return false;
+		redisTemplate.delete(lockKey);
+		return true;
 	}
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
index c1a7ee9..24c7d3a 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: dev
-#    active: prod
+#    active: dev
+    active: prod
 ---
 spring:
   config:
@@ -56,52 +56,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
-        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
+#        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控制台地址
@@ -121,7 +121,6 @@
         namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
         username: nacos
         password: nacos
-        ip: 192.168.110.111
       config:
         # 配置中心地址
         server-addr: 192.168.0.137:8848,192.168.0.123:8848
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
index fc51ae5..61a6efb 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: dev
-#    active: prod
+#    active: dev
+    active: prod
 ---
 spring:
   config:
@@ -23,7 +23,7 @@
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: 192.168.110.169:8848
+        server-addr: 127.0.0.1:8848
         service: ${spring.application.name}
         group: DEFAULT_GROUP
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
@@ -31,7 +31,7 @@
         password: nacos
       config:
         # 配置中心地址
-        server-addr: 192.168.110.169:8848
+        server-addr: 127.0.0.1:8848
         namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
         group: DEFAULT_GROUP
         name: ${spring.application.name}
@@ -56,52 +56,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: 127.0.0.1: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: 127.0.0.1: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: 127.0.0.1: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/controller/AliPayController.java b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/AliPayController.java
index c3d5bc2..0d927f1 100644
--- a/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/AliPayController.java
+++ b/ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/AliPayController.java
@@ -1,5 +1,7 @@
 package com.ruoyi.payment.controller;
 
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.internal.util.AlipaySignature;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.order.api.feignClient.ChargingOrderClient;
@@ -14,8 +16,12 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
 
 /**
  * @author zhibing.pu
@@ -95,35 +101,75 @@
 	private ChargingOrderClient chargingOrderClient;
 	@ResponseBody
 	@PostMapping(value = "/callBack")
-	public void chargingOrderALICallback(@RequestBody AliQueryOrder aliQueryOrder, HttpServletResponse response) {
+	public void chargingOrderALICallback(HttpServletRequest request, HttpServletResponse response) {
 		try {
-			String out_trade_no = aliQueryOrder.getOutTradeNo();
-			String transaction_id = aliQueryOrder.getTradeNo();
-			String attach = aliQueryOrder.getPassbackParams();
-			String substring = out_trade_no.substring(0, 2);
-			switch (substring){
-				//购物订单
-				case "GW":
-					R r = orderClient.callBack(out_trade_no, transaction_id);
-					System.err.println("----收到购物回调");
-					break;
-				case "HY":
-					orderClient.vipCallBack(out_trade_no,transaction_id);
-					System.err.println("----收到会员回调");
-					break;
-				case "CD":
-					chargingOrderClient.chargingOrderWXCallback(out_trade_no, transaction_id, attach);
-					System.err.println("----充电支付回调");
-					break;
+			Map<String, String> callback = alipayCallback(request);
+			if(null != callback){
+				String out_trade_no = callback.get("out_trade_no");
+				String attach = callback.get("subject");
+				String total_amount = callback.get("total_amount");
+				String transaction_id = callback.get("trade_no");
+				String substring = out_trade_no.substring(0, 2);
+				switch (substring){
+					//购物订单
+					case "GW":
+						R r = orderClient.callBack(out_trade_no, transaction_id);
+						System.err.println("----收到购物回调");
+						break;
+					case "HY":
+						orderClient.vipCallBack(out_trade_no,transaction_id);
+						System.err.println("----收到会员回调");
+						break;
+					case "CD":
+						chargingOrderClient.chargingOrderALICallback(out_trade_no, transaction_id, attach);
+						System.err.println("----充电支付回调");
+						break;
+				}
+				PrintWriter writer = response.getWriter();
+				writer.println("success");
+				writer.flush();
+				writer.close();
 			}
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
 	}
-
 	
 	
 	
 	
+	public Map<String, String> alipayCallback(HttpServletRequest request){
+		Map<String,String> params = new HashMap<String,String>();
+		Map requestParams = request.getParameterMap();
+		for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
+			String name = (String) iter.next();
+			String[] values = (String[]) requestParams.get(name);
+			String valueStr = "";
+			for (int i = 0; i < values.length; i++) {
+				valueStr = (i == values.length - 1) ? valueStr + values[i]
+						: valueStr + values[i] + ",";
+			}
+			params.put(name, valueStr);
+		}
+		try {
+			boolean flag = AlipaySignature.rsaCheckV1(params, aliProperties.getAlipayPublicKey(), "UTF-8","RSA2");
+			if(flag){
+				Map<String, String> map = new HashMap<>();
+				String out_trade_no = params.get("out_trade_no");
+				String subject = params.get("subject");
+				String total_amount = params.get("total_amount");
+				String trade_no = params.get("trade_no");
+				map.put("out_trade_no", out_trade_no);//商家订单号
+				map.put("subject", subject);
+				map.put("total_amount", total_amount);
+				map.put("trade_no", trade_no);//支付宝交易号
+				return map;
+			}
+			
+		} catch (AlipayApiException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
 	
 }
diff --git a/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml
index b9bff69..37a8ee1 100644
--- a/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-payment/src/main/resources/bootstrap.yml
@@ -8,7 +8,8 @@
     allow-circular-references: true
   profiles:
     # 环境配置
-    active: dev
+#    active: dev
+    active: prod
 ---
 spring:
   config:
@@ -40,7 +41,6 @@
 
 
 ---
-
 seata:
   enabled: true
   application-id: ${spring.application.name}
@@ -53,8 +53,16 @@
   config:
     type: nacos
     nacos:
-      server-addr: 192.168.110.169:8848
-      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
+      # 开发环境
+#      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
@@ -63,16 +71,31 @@
     type: nacos
     nacos:
       application: seata-server
-      server-addr: 192.168.110.169:8848
-      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
+      # 开发环境
+#      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
-        namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间
+        # 开发环境
+#        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
@@ -81,7 +104,6 @@
       transport:
         dashboard: 127.0.0.1:8080  #  Sentinel控制台地址
       eager: true
-
 
 ---
 spring:
@@ -92,14 +114,18 @@
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: 127.0.0.1:8848
+        server-addr: 192.168.0.137:8848,192.168.0.123:8848
         service: ${spring.application.name}
         group: DEFAULT_GROUP
-        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+        username: nacos
+        password: nacos
       config:
         # 配置中心地址
-        server-addr: 127.0.0.1:8848
-        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
+        server-addr: 192.168.0.137:8848,192.168.0.123:8848
+        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
+        username: nacos
+        password: nacos
         group: DEFAULT_GROUP
         name: ${spring.application.name}
         # 配置文件格式

--
Gitblit v1.7.1