From 85a21fdb54fa06f2fa6e25e763ec5337e85295e7 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 16 八月 2024 16:55:34 +0800
Subject: [PATCH] 小程序登录 token失效全局异常

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java                                  |  122 ++++
 ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports |    3 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyExchangeOrder.java                                                  |   17 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java                                          |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java                                 |   43 +
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java                                          |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java                                           |   19 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysRoleClient.java                                         |    3 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java                                                |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java                                     |   54 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java                                  |  107 +++
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java                    |   41 +
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java                                     |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TExchangeOrderService.java                                           |   22 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java                                                |    4 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml                                                   |   12 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java                                            |   26 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java                                     |   29 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java                                    |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderInfo.java                                                 |   59 ++
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml                                                        |   18 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserIntegralChangeFallbackFactory.java                    |   32 +
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserIntegralChangeClient.java                         |   24 
 ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java                                                                 |   26 
 ruoyi-service/ruoyi-order/pom.xml                                                                                                    |    7 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java                                |   15 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java                     |    2 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java                                |    5 
 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java                                                              |    8 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java                         |   34 +
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java                       |   10 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderAccountingStrategyClient.java                   |    5 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java                        |    1 
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java                                 |    7 
 ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java                                                |    2 
 ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports      |    4 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java                          |    2 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java                                         |   23 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java                                          |    6 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java                         |   28 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java                                       |   18 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/OrderEvaluateVo.java                                                     |   23 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java                                             |   15 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java                         |   34 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java                                  |  122 ++++
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java                               |    2 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java                                                  |    2 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java                                             |   12 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserAppletException.java                           |   48 +
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java              |   11 
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                                                        |    3 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ExchangeOrderGoodsInfo.java                                              |   54 ++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderList.java                                                 |   32 +
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserAddressClient.java                                |   26 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java                                           |   22 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java                                       |   34 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java                          |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java                                     |    5 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java                                       |   15 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyChargingOrderList.java                                              |   17 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java                                        |   32 +
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java                                       |    7 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java                                      |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java                                     |   37 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderAccountingStrategyController.java                   |    4 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java                                         |    4 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/IntegralRuleClient.java                                      |   24 
 ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports        |    5 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java                                    |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java                                    |    2 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java                                             |    3 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyExchangeOrderList.java                                                 |   30 +
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserAddressFallbackFactory.java                           |   33 +
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java                                                      |   17 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java                                          |    2 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java                                      |   18 
 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TCouponMapper.xml                                                          |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java                                          |    4 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/GoodsClient.java                                             |   25 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java                                  |    5 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java                                            |   12 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java                                     |   15 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java                                          |    4 
 83 files changed, 1,490 insertions(+), 126 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserAddressFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserAddressFallbackFactory.java
new file mode 100644
index 0000000..7e36950
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserAddressFallbackFactory.java
@@ -0,0 +1,33 @@
+package com.ruoyi.account.api.factory;
+
+import com.ruoyi.account.api.feignClient.AppUserAddressClient;
+import com.ruoyi.account.api.model.TAppUserAddress;
+import com.ruoyi.account.api.model.TAppUserIntegralChange;
+import com.ruoyi.common.core.domain.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 11:02
+ */
+@Component
+public class AppUserAddressFallbackFactory implements FallbackFactory<AppUserAddressClient> {
+	
+	private static final Logger log = LoggerFactory.getLogger(AppUserAddressFallbackFactory.class);
+	
+	
+	@Override
+	public AppUserAddressClient create(Throwable throwable) {
+		log.error("用户地址调用失败:{}", throwable.getMessage());
+		return new AppUserAddressClient(){
+			
+			@Override
+			public R<TAppUserAddress> getAppUserAddressById(Long id) {
+				return R.fail("根据id获取用户地址信息失败:" + throwable.getMessage());
+			}
+		};
+	}
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java
index 7a5d7e1..7c406e4 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java
@@ -28,7 +28,7 @@
         return new AppUserCarClient() {
 
             @Override
-            public R<List<TAppUserCar>> getCarByIds(List<Integer> carIds) {
+            public R<List<TAppUserCar>> getCarByIds(List<Long> carIds) {
                 return R.fail("根据用户车辆id查询车辆信息失败:"+throwable.getMessage());
             }
         };
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 ca9289e..e89e3b6 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
@@ -36,6 +36,11 @@
             }
 
             @Override
+            public R updateAppUser(TAppUser appUser) {
+                return R.fail("修改用户失败:"+throwable.getMessage());
+            }
+
+            @Override
             public R<List<TAppUser>> getUserByIds(List<Long> appUserIds) {
                 return R.fail("根据用户id查询用户信息失败:"+throwable.getMessage());
             }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserIntegralChangeFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserIntegralChangeFallbackFactory.java
new file mode 100644
index 0000000..da91d05
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserIntegralChangeFallbackFactory.java
@@ -0,0 +1,32 @@
+package com.ruoyi.account.api.factory;
+
+import com.ruoyi.account.api.feignClient.AppUserIntegralChangeClient;
+import com.ruoyi.account.api.model.TAppUserIntegralChange;
+import com.ruoyi.common.core.domain.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 11:02
+ */
+@Component
+public class AppUserIntegralChangeFallbackFactory implements FallbackFactory<AppUserIntegralChangeClient> {
+	
+	private static final Logger log = LoggerFactory.getLogger(AppUserIntegralChangeFallbackFactory.class);
+	
+	
+	@Override
+	public AppUserIntegralChangeClient create(Throwable throwable) {
+		log.error("账户积分变动调用失败:{}", throwable.getMessage());
+		return new AppUserIntegralChangeClient(){
+			
+			@Override
+			public R addAppUserIntegralChange(TAppUserIntegralChange appUserIntegralChange) {
+				return R.fail("添加积分变动记录失败:" + throwable.getMessage());
+			}
+		};
+	}
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserAddressClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserAddressClient.java
new file mode 100644
index 0000000..b284de8
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserAddressClient.java
@@ -0,0 +1,26 @@
+package com.ruoyi.account.api.feignClient;
+
+import com.ruoyi.account.api.factory.AppUserAddressFallbackFactory;
+import com.ruoyi.account.api.model.TAppUserAddress;
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 14:47
+ */
+@FeignClient(contextId = "AppUserAddressClient", value = ServiceNameConstants.ACCOUNT_SERVICE, fallbackFactory = AppUserAddressFallbackFactory.class)
+public interface AppUserAddressClient {
+	
+	
+	/**
+	 * 根据id获取用户地址信息
+	 * @param id
+	 * @return
+	 */
+	@PostMapping("/t-app-user-address/getAppUserAddressById")
+	R<TAppUserAddress> getAppUserAddressById(Long id);
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java
index 82bb2c5..27f3229 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java
@@ -27,5 +27,5 @@
      * @return
      */
     @PostMapping(value = "/t-app-user-car/getCarByIds")
-    public R<List<TAppUserCar>> getCarByIds(@RequestBody List<Integer> carIds);
+    public R<List<TAppUserCar>> getCarByIds(@RequestBody List<Long> carIds);
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
index 931d00a..9812ddd 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
@@ -37,6 +37,11 @@
      * @param id
      * @return
      */
-    @GetMapping(value = "/user/getUserById")
+    @PostMapping(value = "/t-app-user/user/getUserById")
     R<TAppUser> getUserById(Long id);
+    
+    
+    
+    @PostMapping("/t-app-user/")
+    R updateAppUser(TAppUser appUser);
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserIntegralChangeClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserIntegralChangeClient.java
new file mode 100644
index 0000000..2c86199
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserIntegralChangeClient.java
@@ -0,0 +1,24 @@
+package com.ruoyi.account.api.feignClient;
+
+import com.ruoyi.account.api.factory.AppUserIntegralChangeFallbackFactory;
+import com.ruoyi.account.api.model.TAppUserIntegralChange;
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 11:01
+ */
+@FeignClient(contextId = "AppUserIntegralChangeClient", value = ServiceNameConstants.ACCOUNT_SERVICE, fallbackFactory = AppUserIntegralChangeFallbackFactory.class)
+public interface AppUserIntegralChangeClient {
+	
+	/**
+	 * 添加积分变动记录
+	 * @param appUserIntegralChange
+	 * @return
+	 */
+	@PostMapping("/t-app-user-integral-change/addAppUserIntegralChange")
+	R addAppUserIntegralChange(TAppUserIntegralChange appUserIntegralChange);
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 3c87b41..40f7d82 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1,3 +1,5 @@
 com.ruoyi.account.api.factory.AppUserFallbackFactory
 com.ruoyi.account.api.factory.AppCouponFallbackFactory
-com.ruoyi.account.api.factory.AppUserCarFallbackFactory
\ No newline at end of file
+com.ruoyi.account.api.factory.AppUserCarFallbackFactory
+com.ruoyi.account.api.factory.AppUserIntegralChangeFallbackFactory
+com.ruoyi.account.api.factory.AppUserAddressFallbackFactory
\ No newline at end of file
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
new file mode 100644
index 0000000..ee67b6f
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java
@@ -0,0 +1,41 @@
+package com.ruoyi.chargingPile.api.factory;
+
+import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
+import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
+import com.ruoyi.chargingPile.api.model.TChargingGun;
+import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.common.core.domain.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 充电桩服务降级处理
+ * 
+ * @author ruoyi
+ */
+@Component
+public class ChargingGunFallbackFactory implements FallbackFactory<ChargingGunClient>
+{
+    private static final Logger log = LoggerFactory.getLogger(ChargingGunFallbackFactory.class);
+
+    @Override
+    public ChargingGunClient create(Throwable throwable) {
+        log.error("充电枪调用失败:{}", throwable.getMessage());
+        return new ChargingGunClient() {
+    
+            @Override
+            public R<String> getAllName(Integer id) {
+                return R.fail("根据id获取充电枪完整名称失败:" + throwable.getMessage());
+            }
+    
+            @Override
+            public R<TChargingGun> getChargingGunById(Integer id) {
+                return R.fail("根据id获取充电枪失败:" + throwable.getMessage());
+            }
+        };
+    }
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java
new file mode 100644
index 0000000..015c04b
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java
@@ -0,0 +1,34 @@
+package com.ruoyi.chargingPile.api.feignClient;
+
+import com.ruoyi.chargingPile.api.factory.ChargingGunFallbackFactory;
+import com.ruoyi.chargingPile.api.model.TChargingGun;
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/15 19:36
+ */
+@FeignClient(contextId = "ChargingGunClient", value = ServiceNameConstants.CHARGINGPILE_SERVICE, fallbackFactory = ChargingGunFallbackFactory.class)
+public interface ChargingGunClient {
+	
+	/**
+	 * 根据id获取充电枪完整名称
+	 * @param id
+	 * @return
+	 */
+	@PostMapping("/t-charging-gun/getAllName")
+	R<String> getAllName(Integer id);
+	
+	
+	/**
+	 * 根据id获取充电枪
+	 * @param id
+	 * @return
+	 */
+	@PostMapping("/t-charging-gun/getChargingGunById")
+	R<TChargingGun> getChargingGunById(Integer id);
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java
index 0312dd8..b6f8169 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java
@@ -23,7 +23,7 @@
     /**
      * 通过站点id查询停车场信息
      */
-    @GetMapping(value = "/t-parking-lot/getLotBySiteId")
+    @PostMapping(value = "/t-parking-lot/getLotBySiteId")
     public R<TParkingLot> getLotBySiteId(@RequestParam("siteId") Integer siteId);
 
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
new file mode 100644
index 0000000..39fae79
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
@@ -0,0 +1,23 @@
+package com.ruoyi.chargingPile.api.vo;
+
+import com.ruoyi.chargingPile.api.model.Site;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "SiteVO对象", description = "小程序扫一扫-详情页面")
+public class SiteInfoVO  {
+    @ApiModelProperty(value = "电站名称")
+    private String name;
+    @ApiModelProperty(value = "桩编号")
+    private String number;
+    @ApiModelProperty(value = "普通电价")
+    private BigDecimal electrovalence;
+    @ApiModelProperty(value = "会员电价")
+    private BigDecimal vipElectrovalence;
+    @ApiModelProperty(value = "超时占位费说明")
+    private String spaceChargeExplain;
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 2a1a113..e5e3ae5 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1,3 +1,4 @@
 com.ruoyi.chargingPile.api.factory.ChargingPileFallbackFactory
 com.ruoyi.chargingPile.api.factory.SiteFallbackFactory
-com.ruoyi.chargingPile.api.factory.ParkingLotFallbackFactory
\ No newline at end of file
+com.ruoyi.chargingPile.api.factory.ParkingLotFallbackFactory
+com.ruoyi.chargingPile.api.factory.ChargingGunFallbackFactory
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java
index 4abfb5e..7af99c0 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java
@@ -11,6 +11,7 @@
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * 充电订单服务降级处理
@@ -26,15 +27,15 @@
     public ChargingOrderAccountingStrategyClient create(Throwable throwable) {
         log.error("充电订单调用失败:{}", throwable.getMessage());
         return new ChargingOrderAccountingStrategyClient() {
-    
-    
+
+
             @Override
-            public R<List<List<Map<String, Object>>>> getTotalElectricQuantity(Integer days) {
+            public R<List<List<Map<String, Object>>>> getTotalElectricQuantity(Integer days, Set<Integer> siteIds) {
                 return R.fail("获取给定天数每天的充电量统计数据失败:" + throwable.getMessage());
             }
-    
+
             @Override
-            public R<List<Double>> getDailyChargingDegree(Integer days) {
+            public R<List<Double>> getDailyChargingDegree(Integer days, Set<Integer> siteIds) {
                 return R.fail("获取给定天数每天的充电度数失败:" + throwable.getMessage());
             }
         };
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 f29864d..c398faf 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
@@ -39,6 +39,11 @@
             public R<Integer> getChargingCount(TChargingCountQuery req) {
                 return R.fail("根据会员id和有效期查询有效期内享受充电折扣次数:" + throwable.getMessage());
             }
+
+            @Override
+            public R<TChargingOrder> getOrderDetailByGunId(Integer chargingGunId) {
+                return R.fail("根据充电枪获取正在充电的订单:" + throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderAccountingStrategyClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderAccountingStrategyClient.java
index c09794d..c9ede24 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderAccountingStrategyClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderAccountingStrategyClient.java
@@ -6,6 +6,7 @@
 import com.ruoyi.order.api.factory.ChargingOrderFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
@@ -25,7 +26,7 @@
 	 * @param days 天数
 	 * @return
 	 */
-	@GetMapping("/t-charging-order-accounting-strategy/getTotalElectricQuantity")
+	@PostMapping("/t-charging-order-accounting-strategy/getTotalElectricQuantity")
 	R<List<List<Map<String, Object>>>> getTotalElectricQuantity(Integer days, @RequestParam("siteIds") Set<Integer> siteIds);
 	
 	
@@ -34,6 +35,6 @@
 	 * @param days
 	 * @return
 	 */
-	@GetMapping("/t-charging-order-getDailyChargingDegree-strategy/getUtilizationTrend")
+	@PostMapping("/t-charging-order-getDailyChargingDegree-strategy/getUtilizationTrend")
 	R<List<Double>> getDailyChargingDegree(Integer days, @RequestParam("siteIds") Set<Integer> siteIds);
 }
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 2ac0181..b7402f2 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
@@ -37,6 +37,6 @@
      * @param chargingGunId 充电枪id
      * @return
      */
-    @GetMapping(value = "/t-charging-order/getOrderDetailByGunId")
+    @PostMapping(value = "/t-charging-order/getOrderDetailByGunId")
     R<TChargingOrder> getOrderDetailByGunId(@RequestParam("chargingGunId") Integer chargingGunId);
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
index 9f1178f..286e4e4 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
@@ -89,6 +89,10 @@
     @ApiModelProperty(value = "状态(0=未知,1=等待中,2=启动中,3=充电中,4=停止中,5=已结束)")
     @TableField("status")
     private Integer status;
+    
+    @ApiModelProperty(value = "结束方式(0=异常终止,1=主动终止,2=满电终止,3=费用不足终止)")
+    @TableField("end_mode")
+    private Integer endMode;
 
     @ApiModelProperty(value = "充值金额")
     @TableField("recharge_amount")
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java
index 77bbbe7..7b4f546 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderAppeal.java
@@ -28,7 +28,7 @@
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "主键")
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.NONE)
     private Long id;
 
     @ApiModelProperty(value = "订单类型(1=充电订单,2=购物订单,3=兑换订单,4=会员订单)")
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java
index c44dd0e..4ebe265 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java
@@ -45,7 +45,7 @@
 
     @ApiModelProperty(value = "充电车辆 id")
     @TableField("app_user_car_id")
-    private Integer appUserCarId;
+    private Long appUserCarId;
 
     @ApiModelProperty(value = "评分")
     @TableField("mark")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java
index 8073eef..87a0230 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java
@@ -38,7 +38,15 @@
     @ApiModelProperty(value = "优惠券名称")
     @TableField("name")
     private String name;
-
+    
+    @ApiModelProperty(value = "封面图")
+    @TableField("cover_picture")
+    private String coverPicture;
+    
+    @ApiModelProperty(value = "详情图片")
+    @TableField("details_picture")
+    private String detailsPicture;
+    
     @ApiModelProperty(value = "优惠方式(1=满减,2=抵扣)")
     @TableField("preferential_mode")
     private Integer preferentialMode;
@@ -98,13 +106,6 @@
     @ApiModelProperty(value = "优惠券说明")
     @TableField("explain")
     private String explain;
-
-    @ApiModelProperty(value = "封面图")
-    @TableField("cover_picture")
-    private String coverPicture;
-    @ApiModelProperty(value = "详情图片")
-    @TableField("details_picture")
-    private String detailsPicture;
 
     @ApiModelProperty(value = "说明")
     @TableField("remark")
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
new file mode 100644
index 0000000..f5821e7
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/CouponFallbackFactory.java
@@ -0,0 +1,34 @@
+package com.ruoyi.other.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TCoupon;
+import com.ruoyi.other.api.domain.TGoods;
+import com.ruoyi.other.api.feignClient.CouponClient;
+import com.ruoyi.other.api.feignClient.GoodsClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 13:48
+ */
+@Component
+public class CouponFallbackFactory implements FallbackFactory<CouponClient> {
+	
+	private static final Logger log = LoggerFactory.getLogger(CouponFallbackFactory.class);
+	
+	@Override
+	public CouponClient create(Throwable throwable) {
+		log.error("优惠券调用失败:{}", throwable.getMessage());
+		return new CouponClient() {
+			
+			@Override
+			public R<TCoupon> getCouponById(Integer id) {
+				return R.fail("根据id获取优惠券信息失败:" + throwable.getMessage());
+			}
+		};
+	}
+	
+}
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
new file mode 100644
index 0000000..2f57fab
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsFallbackFactory.java
@@ -0,0 +1,32 @@
+package com.ruoyi.other.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TGoods;
+import com.ruoyi.other.api.feignClient.GoodsClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 13:48
+ */
+@Component
+public class GoodsFallbackFactory implements FallbackFactory<GoodsClient> {
+	
+	private static final Logger log = LoggerFactory.getLogger(GoodsFallbackFactory.class);
+	
+	@Override
+	public GoodsClient create(Throwable throwable) {
+		log.error("商品调用失败:{}", throwable.getMessage());
+		return new GoodsClient() {
+			
+			@Override
+			public R<TGoods> getGoodsById(Integer id) {
+				return R.fail("根据id获取商品信息失败:" + throwable.getMessage());
+			}
+		};
+	}
+	
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java
new file mode 100644
index 0000000..a1f7ab5
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/IntegralRuleFallbackFactory.java
@@ -0,0 +1,43 @@
+package com.ruoyi.other.api.factory;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.api.dto.TagListQueryDto;
+import com.ruoyi.account.api.dto.UnitListQueryDto;
+import com.ruoyi.account.api.vo.CouponListVOVO;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TCompany;
+import com.ruoyi.other.api.domain.TIntegralRule;
+import com.ruoyi.other.api.domain.TUserTag;
+import com.ruoyi.other.api.feignClient.IntegralRuleClient;
+import com.ruoyi.other.api.feignClient.OtherClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 商品服务降级处理
+ * 
+ * @author ruoyi
+ */
+@Component
+public class IntegralRuleFallbackFactory implements FallbackFactory<IntegralRuleClient>
+{
+    private static final Logger log = LoggerFactory.getLogger(IntegralRuleFallbackFactory.class);
+
+    @Override
+    public IntegralRuleClient create(Throwable throwable) {
+        log.error("积分规则调用失败:{}", throwable.getMessage());
+        return new IntegralRuleClient() {
+    
+    
+            @Override
+            public R<TIntegralRule> getSet() {
+                return R.fail("获取积分设置失败:" + throwable.getMessage());
+            }
+        };
+    }
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java
new file mode 100644
index 0000000..f2f6fd6
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/CouponClient.java
@@ -0,0 +1,26 @@
+package com.ruoyi.other.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TCoupon;
+import com.ruoyi.other.api.factory.CouponFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 14:00
+ */
+@FeignClient(contextId = "CouponClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = CouponFallbackFactory.class)
+public interface CouponClient {
+	
+	
+	/**
+	 * 根据id获取优惠券信息
+	 * @param id
+	 * @return
+	 */
+	@PostMapping("/t-coupon/getCouponById")
+	R<TCoupon> getCouponById(Integer id);
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/GoodsClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/GoodsClient.java
new file mode 100644
index 0000000..05c44ec
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/GoodsClient.java
@@ -0,0 +1,25 @@
+package com.ruoyi.other.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TGoods;
+import com.ruoyi.other.api.factory.GoodsFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 13:47
+ */
+@FeignClient(contextId = "GoodsClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = GoodsFallbackFactory.class)
+public interface GoodsClient {
+	
+	/**
+	 * 根据id获取商品信息
+	 * @param id
+	 * @return
+	 */
+	@PostMapping("/t-goods/getGoodsById")
+	R<TGoods> getGoodsById(Integer id);
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/IntegralRuleClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/IntegralRuleClient.java
new file mode 100644
index 0000000..9659c83
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/IntegralRuleClient.java
@@ -0,0 +1,24 @@
+package com.ruoyi.other.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TIntegralRule;
+import com.ruoyi.other.api.factory.IntegralRuleFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 10:54
+ */
+@FeignClient(contextId = "IntegralRuleClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = IntegralRuleFallbackFactory.class)
+public interface IntegralRuleClient {
+	
+	/**
+	 * 获取积分设置
+	 * @return
+	 */
+	@PostMapping("/integral/getSet")
+	R<TIntegralRule> getSet();
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java
index e4dc369..7dd2db2 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/RoleSiteClient.java
@@ -26,7 +26,7 @@
 	 * @param roleId
 	 * @return
 	 */
-	@GetMapping("/t-role-site/getSiteIds")
+	@PostMapping("/t-role-site/getSiteIds")
 	R<List<Integer>> getSiteIds(Long roleId);
 	
 	
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java
index 4d7e87a..ea305af 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java
@@ -33,6 +33,6 @@
 	 * @param tagIds
 	 * @return
 	 */
-	@GetMapping("/t-evaluation-tag/getListByIds")
+	@PostMapping("/t-evaluation-tag/getListByIds")
 	R<List<TEvaluationTag>> getListByIds(List<Integer> tagIds);
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java
index 4cd3910..68d0746 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java
@@ -26,7 +26,7 @@
 	 * @param userId
 	 * @return
 	 */
-	@GetMapping("/t-user-site/getSiteIds")
+	@PostMapping("/t-user-site/getSiteIds")
 	R<List<Integer>> getSiteIds(Long userId);
 	
 	
diff --git a/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index bbbaed4..8ca6c74 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -2,4 +2,7 @@
 com.ruoyi.other.api.factory.UserSiteFallbackFactory
 com.ruoyi.other.api.factory.RoleSiteFallbackFactory
 com.ruoyi.other.api.factory.TEvaluationTagFallbackFactory
-com.ruoyi.other.api.factory.VipFallbackFactory
\ No newline at end of file
+com.ruoyi.other.api.factory.VipFallbackFactory
+com.ruoyi.other.api.factory.IntegralRuleFallbackFactory
+com.ruoyi.other.api.factory.GoodsFallbackFactory
+com.ruoyi.other.api.factory.CouponFallbackFactory
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysRoleClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysRoleClient.java
index 10edd4c..16472fa 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysRoleClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysRoleClient.java
@@ -7,6 +7,7 @@
 import com.ruoyi.system.api.model.GetSysRoleByIds;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 
 import java.util.List;
 
@@ -17,7 +18,7 @@
 @FeignClient(contextId = "SysRoleClient", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = SysRoleFallbackFactory.class)
 public interface SysRoleClient {
 	
-	@GetMapping("/role/getSysRoleByIds")
+	@PostMapping("/role/getSysRoleByIds")
 	public R<List<SysRole>> getSysRoleByIds(GetSysRoleByIds ids);
 
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
index 4dff3cc..d0f2eb4 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
@@ -51,7 +51,7 @@
      * @param userId
      * @return
      */
-    @GetMapping("/user/queryRoleByUserId/{userId}")
+    @PostMapping("/user/queryRoleByUserId/{userId}")
     R<SysRole>  queryRoleByUserId(@PathVariable("userId") Long userId);
 
 
@@ -60,7 +60,7 @@
      * @param roleId
      * @return
      */
-    @GetMapping("/user/queryRoleByRoleId/{roleId}")
+    @PostMapping("/user/queryRoleByRoleId/{roleId}")
     R<SysRole>  queryRoleByRoleId(@PathVariable("roleId") Long roleId);
 
     /**
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java
index 2f01d93..33e9d2a 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java
@@ -45,7 +45,4 @@
      * 登录IP地址
      */
     private String ipaddr;
-
-
-
 }
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
index ccab699..41c1531 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -53,11 +53,11 @@
         HashMap<String, Object> map = new HashMap<>();
         map.put("token",tokenService.createToken(userInfo));
         List<SysRole> roles = userInfo.getSysUser().getRoles();
-        if(CollectionUtils.isEmpty(roles)){
-            return R.fail("请关联角色!");
-        }
+//        if(CollectionUtils.isEmpty(roles)){
+//            return R.fail("请关联角色!");
+//        }
 
-        map.put("roleName",roles.get(0).getRoleName());
+//        map.put("roleName",roles.get(0).getRoleName());
         map.put("info",userInfo);
         // 修改用户最后登录时间
         SysUser sysUser = new SysUser();
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java
index a6d2b55..2f32d25 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java
@@ -25,7 +25,7 @@
     /**
      * 参数签名
      */
-    public static final String SING = "sing";
+    public static final String SIGN = "sign";
     
     /**
      * 参数随机字符串
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserAppletException.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserAppletException.java
new file mode 100644
index 0000000..b8da2e9
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/exception/user/UserAppletException.java
@@ -0,0 +1,48 @@
+package com.ruoyi.common.core.exception.user;
+
+/**
+ * 学生端登录异常信息
+ *
+ * @author HJL
+ * @version 1.0
+ * @since 2024-05-24 11:35
+ */
+public class UserAppletException extends RuntimeException {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 错误提示
+     */
+    private String message;
+
+    /**
+     * 错误码
+     */
+    private int code;
+
+    public UserAppletException() {
+    }
+
+    public UserAppletException(String message, Integer code) {
+        this.message = message;
+        this.code = code;
+    }
+
+    @Override
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+}
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
index a9cb1b7..262a05f 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
@@ -3,6 +3,8 @@
 import javax.naming.SizeLimitExceededException;
 import javax.servlet.http.HttpServletRequest;
 
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.exception.user.UserAppletException;
 import org.apache.commons.fileupload.FileUploadBase;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -151,4 +153,12 @@
         log.error("上传文件异常 => : {}", e.getMessage());
         return AjaxResult.error("文件识别大小超出限制,允许的大小在" + maxFileSize);
     }
+
+    /**
+     * 学生端单点登录-异常信息
+     */
+    @ExceptionHandler(UserAppletException.class)
+    public AjaxResult<String> studyLoginExceptionHandler(UserAppletException e) {
+        return AjaxResult.error(e.getCode(), e.getMessage());
+    }
 }
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
index 2d7cae5..d2bff49 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -5,6 +5,7 @@
 import java.util.concurrent.TimeUnit;
 import javax.servlet.http.HttpServletRequest;
 
+import com.ruoyi.common.core.exception.user.UserAppletException;
 import com.ruoyi.system.api.model.LoginUserApplet;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -88,7 +89,11 @@
         return rspMap;
     }
     public LoginUserApplet getLoginUserApplet() {
-        return getLoginUserAppletToken(ServletUtils.getRequest());
+        LoginUserApplet loginUserAppletToken = getLoginUserAppletToken(ServletUtils.getRequest());
+        if (loginUserAppletToken == null){
+            throw new UserAppletException("登录失效,请重新登录!", 401);
+        }
+        return loginUserAppletToken;
     }
     public LoginUserApplet getLoginUserAppletToken(HttpServletRequest request) {
         // 获取请求携带的令牌
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java
index ccc99f7..6c20c07 100644
--- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java
+++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java
@@ -31,7 +31,7 @@
     /**
      * 这里为支持的请求头,如果有自定义的header字段请自己添加
      */
-    private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, request-origion";
+    private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, request-origion, sign, nonce_str";
     private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD";
     private static final String ALLOWED_ORIGIN = "*";
     private static final String ALLOWED_EXPOSE = "*";
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 c8b573a..0fe0de6 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
@@ -67,16 +67,16 @@
         if(method != HttpMethod.POST){
             return chain.filter(exchange.mutate().request(mutate.build()).build());
         }
-        String sing = request.getHeaders().getFirst(TokenConstants.SING);
+        String sign = request.getHeaders().getFirst(TokenConstants.SIGN);
         String nonce_str = request.getHeaders().getFirst(TokenConstants.NONCE_STR);
-//        if (parameter_signature && StringUtils.isEmpty(sing)) {
-//            return unauthorizedResponse(exchange, "签名不能为空!");
-//        }
-//        if (parameter_signature && StringUtils.isEmpty(nonce_str)) {
-//            return unauthorizedResponse(exchange, "签名不能为空!");
-//        }
+        if (parameter_signature && StringUtils.isEmpty(sign)) {
+            return unauthorizedResponse(exchange, "签名不能为空!");
+        }
+        if (parameter_signature && StringUtils.isEmpty(nonce_str)) {
+            return unauthorizedResponse(exchange, "签名不能为空!");
+        }
         if(parameter_signature){
-            return authSign(exchange, chain, sing, nonce_str);
+            return authSign(exchange, chain, sign, nonce_str);
         }
         return chain.filter(exchange.mutate().request(mutate.build()).build());
     }
@@ -93,14 +93,14 @@
      * 校验签名
      * @return
      */
-    private Mono<Void> authSign(ServerWebExchange exchange, GatewayFilterChain chain, String sing, String nonce_str){
+    private Mono<Void> authSign(ServerWebExchange exchange, GatewayFilterChain chain, String sign, String nonce_str){
         return DataBufferUtils.join(exchange.getRequest().getBody())
                 .flatMap(dataBuffer -> {
                     byte[] bytes = new byte[dataBuffer.readableByteCount()];
                     dataBuffer.read(bytes);
                     String bodyString = new String(bytes, StandardCharsets.UTF_8);
                     log.info("请求参数:{}", bodyString);
-                    if(!authSign(JSON.parseObject(bodyString), sing, nonce_str)){
+                    if(!authSign(JSON.parseObject(bodyString), sign, nonce_str)){
                         return unauthorizedResponse(exchange, "签名验证失败!");
                     }
                     DataBufferUtils.release(dataBuffer);
@@ -129,11 +129,12 @@
     private boolean authSign(JSONObject jsonStr, String sign, String nonce_str) {
         String signUrlEncode = localSignUrl(jsonStr, nonce_str);
         signUrlEncode = signUrlEncode.replaceAll("& #40;", "\\(")
-                .replaceAll("& #41;", "\\)")
-                .replaceAll("\\+", " ");
+                .replaceAll("& #41;", "\\)");
         if(sign.equals(signUrlEncode)){
             return true;
         }
+
+        System.err.println("签名值:" + signUrlEncode);
         return false;
     }
     
@@ -161,6 +162,7 @@
             }
         }
         String signUrl = sb.substring(0, sb.length() - 1);
+        System.err.println("签名串:" + signUrl);
         return signUrlEncode(signUrl, key);
     }
     
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
index b22299a..1ab7ca1 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
@@ -314,7 +314,7 @@
      * @return
      */
     @ResponseBody
-    @GetMapping(value = "/getSysRoleByIds")
+    @PostMapping(value = "/getSysRoleByIds")
     public R<List<SysRole>> getSysRoleByIds(@RequestBody GetSysRoleByIds ids){
         List<SysRole> sysRoleByIds = roleService.getSysRoleByIds(ids.getIds());
         return R.ok(sysRoleByIds);
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 20f1847..bc9e7b5 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -595,7 +595,7 @@
      * @param userId
      * @return
      */
-    @GetMapping("/queryRoleByUserId/{userId}")
+    @PostMapping("/queryRoleByUserId/{userId}")
     public R<SysRole> queryRoleByUserId(@PathVariable("userId") Long userId){
         SysUserRole one = sysUserRoleService.getOne(Wrappers.lambdaQuery(SysUserRole.class)
                 .eq(SysUserRole::getUserId, userId)
@@ -611,7 +611,7 @@
     }
 
 
-    @GetMapping("/queryRoleByRoleId/{roleId}")
+    @PostMapping("/queryRoleByRoleId/{roleId}")
     public R<SysRole> queryRoleByRoleId(@PathVariable("roleId") Long roleId){
         return R.ok( roleService.getOne(Wrappers.lambdaQuery(SysRole.class)
                 .eq(SysRole::getRoleId, roleId)
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
index a22d9b5..f28abf0 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -8,10 +8,7 @@
 		<id     property="roleId"             column="role_id"               />
 		<result property="roleName"           column="role_name"             />
 		<result property="roleKey"            column="role_key"              />
-		<result property="roleSort"           column="role_sort"             />
 		<result property="dataScope"          column="data_scope"            />
-		<result property="menuCheckStrictly"  column="menu_check_strictly"   />
-		<result property="deptCheckStrictly"  column="dept_check_strictly"   />
 		<result property="status"             column="status"                />
 		<result property="delFlag"            column="del_flag"              />
 		<result property="createBy"           column="create_by"             />
@@ -22,8 +19,8 @@
 	</resultMap>
 	
 	<sql id="selectRoleVo">
-	    select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly,
-            r.status, r.del_flag, r.create_time, r.remark ,r.carDataAuth,r.carTrainOperAuth,r.contractDataAuth
+	    select distinct r.role_id, r.role_name, r.role_key, r.data_scope,
+            r.status, r.del_flag, r.create_time, r.remark
         from sys_role r
 	        left join sys_user_role ur on ur.role_id = r.role_id
 	        left join sys_user u on u.user_id = ur.user_id
@@ -53,7 +50,6 @@
 		</if>
 		<!-- 数据范围过滤 -->
 		${params.dataScope}
-		order by r.role_sort
 	</select>
     
 	<select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult">
@@ -167,9 +163,11 @@
 	
 	<select id="getSysRoleByIds" resultMap="SysRoleResult">
 		<include refid="selectRoleVo"/>
-		where id in
-		<foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
-			#{item}
-		</foreach>
+		<if test="null != ids and ids.size() > 0">
+			where r.id in
+			<foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
+				#{item}
+			</foreach>
+		</if>
 	</select>
 </mapper> 
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 2b11d94..4446573 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -43,7 +43,6 @@
         <id     property="roleId"       column="role_id"        />
         <result property="roleName"     column="role_name"      />
         <result property="roleKey"      column="role_key"       />
-        <result property="roleSort"     column="role_sort"      />
         <result property="dataScope"     column="data_scope"    />
         <result property="status"       column="role_status"    />
     </resultMap>
@@ -51,7 +50,7 @@
 	<sql id="selectUserVo">
         select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, 
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
-        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status ,u.roleType as roleType,u.objectId AS objectId
+        r.role_id, r.role_name, r.role_key, r.data_scope, r.status as role_status ,u.roleType as roleType,u.objectId AS objectId
         from sys_user u
 		    left join sys_dept d on u.dept_id = d.dept_id
 		    left join sys_user_role ur on u.user_id = ur.user_id
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
index a85603f..2bf8d35 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -16,6 +16,7 @@
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.other.api.domain.TCoupon;
 import com.ruoyi.other.api.feignClient.OtherClient;
 import io.swagger.annotations.ApiModelProperty;
@@ -48,6 +49,8 @@
 
     @Autowired
     private TAppUserCarService appUserCarService;
+    @Autowired
+    private TokenService tokenService;
     /**
      * 查询用户可用优惠券数量
      * @param dto
@@ -68,7 +71,7 @@
     public AjaxResult<List<TAppUserCar>> carList() {
         // todo 用户id
         List<TAppUserCar> appUserId = appUserCarService.list(new QueryWrapper<TAppUserCar>()
-                .eq("app_user_id", 11));
+                .eq("app_user_id",tokenService.getLoginUserApplet().getUserid() ));
         return AjaxResult.ok(appUserId);
     }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java
index f1bb29d..277bfdd 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.account.api.model.TAppUserAddress;
 import com.ruoyi.account.service.TAppUserAddressService;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -72,6 +73,18 @@
     public AjaxResult<Boolean> deleteById(@RequestParam("id") Integer id) {
         return AjaxResult.ok(appUserAddressService.removeById(id));
     }
-
+    
+    
+    /**
+     * 根据id获取地址信息
+     * @param id
+     * @return
+     */
+    @PostMapping(value = "/getAppUserAddressById/{id}")
+    public R<TAppUserAddress> getAppUserAddressById(@PathVariable Long id){
+        TAppUserAddress userAddress = appUserAddressService.getById(id);
+        return R.ok(userAddress);
+    }
+    
 }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
index 7a4479f..d438eb7 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
@@ -34,7 +34,7 @@
      * @return
      */
     @PostMapping(value = "/t-app-user-car/getCarByIds")
-    public R<List<TAppUserCar>> getCarByIds(@RequestBody List<Integer> carIds){
+    public R<List<TAppUserCar>> getCarByIds(@RequestBody List<Long> carIds){
         return R.ok(appUserCarService.list(Wrappers.lambdaQuery(TAppUserCar.class).in(TAppUserCar::getId,carIds)));
     }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index 839c64a..f8237ff 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -355,10 +355,23 @@
      * @param id
      * @return
      */
-    @GetMapping(value = "/user/getUserById/{id}")
+    @PostMapping(value = "/user/getUserById/{id}")
     public R<TAppUser> getUserById(@PathVariable Long id){
         TAppUser appUser = appUserService.getById(id);
         return R.ok(appUser);
     }
+    
+    
+    /**
+     * 修改用户信息
+     * @param appUser
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/user/updateAppUser")
+    public R updateAppUser(@RequestBody TAppUser appUser){
+        appUserService.updateById(appUser);
+        return R.ok();
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java
index acea96c..b721c52 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserIntegralChangeController.java
@@ -1,8 +1,15 @@
 package com.ruoyi.account.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.account.api.model.TAppUserIntegralChange;
+import com.ruoyi.account.service.TAppUserIntegralChangeService;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
 
 /**
  * <p>
@@ -16,5 +23,22 @@
 @RequestMapping("/t-app-user-integral-change")
 public class TAppUserIntegralChangeController {
 
+	@Resource
+	private TAppUserIntegralChangeService appUserIntegralChangeService;
+	
+	
+	/**
+	 * 添加积分变动记录
+	 * @param appUserIntegralChange
+	 * @return
+	 */
+	@ResponseBody
+	@PostMapping("/addAppUserIntegralChange")
+	public R addAppUserIntegralChange(@RequestBody TAppUserIntegralChange appUserIntegralChange){
+		String code = Math.random() * 1000 + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
+		appUserIntegralChange.setCode(code);
+		appUserIntegralChangeService.save(appUserIntegralChange);
+		return R.ok();
+	}
 }
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
index 6ef7c88..e9f4b05 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
@@ -3,9 +3,12 @@
 
 import com.ruoyi.chargingPile.api.dto.TChargingGunDTO;
 import com.ruoyi.chargingPile.api.model.TChargingGun;
+import com.ruoyi.chargingPile.api.model.TChargingPile;
 import com.ruoyi.chargingPile.api.query.TChargingGunQuery;
 import com.ruoyi.chargingPile.api.vo.TChargingGunVO;
 import com.ruoyi.chargingPile.service.TChargingGunService;
+import com.ruoyi.chargingPile.service.TChargingPileService;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.log.annotation.Log;
@@ -16,6 +19,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
@@ -33,6 +37,9 @@
 public class TChargingGunController {
 
     private final TChargingGunService chargingGunService;
+    
+    @Resource
+    private TChargingPileService chargingPileService;
 
     @Autowired
     public TChargingGunController(TChargingGunService chargingGunService) {
@@ -118,5 +125,32 @@
     public void downloadQRCode(@PathVariable Integer id, HttpServletResponse response){
         // todo 待完善
     }
+    
+    
+    /**
+     * 根据id获取充电枪完整名称
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping(value = "/getAllName/{id}")
+    public R<String> getAllName(@PathVariable Integer id){
+        TChargingGun chargingGun = chargingGunService.getById(id);
+        TChargingPile chargingPile = chargingPileService.getById(chargingGun.getChargingPileId());
+        return R.ok(chargingPile.getName() + chargingGun.getName());
+    }
+    
+    
+    /**
+     * 根据id获取充电枪详情
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping(value = "/getChargingGunById/{id}")
+    public R<TChargingGun> getChargingGunById(@PathVariable Integer id){
+        TChargingGun chargingGun = chargingGunService.getById(id);
+        return R.ok(chargingGun);
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
index 8be1229..11b8807 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
@@ -80,7 +80,6 @@
     }
 	
 	
-	
 	@ResponseBody
 	@GetMapping("/pageChargingPileList")
 	@ApiOperation(value = "获取充电桩列表数据", tags = {"管理后台-充电桩信息"})
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
index 3ad4a91..aca8121 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
@@ -130,7 +130,7 @@
     /**
      * 通过站点id查询停车场信息
      */
-    @GetMapping(value = "/getLotBySiteId")
+    @PostMapping(value = "/getLotBySiteId")
     public R<TParkingLot> getLotBySiteId(@RequestParam("siteId") Integer siteId){
         return R.ok(parkingLotService.getOne(Wrappers.lambdaQuery(TParkingLot.class)
                 .eq(TParkingLot::getSiteId, siteId)));
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
index 212b792..fda8e8f 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -420,7 +420,7 @@
 				Integer id = gunMonitoring.getId();
 				//根据订单数据查询车牌号
 				TChargingOrder chargingOrder = chargingOrderClient.getOrderDetailByGunId(id).getData();
-				Integer appUserCarId = chargingOrder.getAppUserCarId();
+				Long appUserCarId = chargingOrder.getAppUserCarId();
 				if(null != appUserCarId){
 					TAppUserCar tAppUserCar = appUserCarClient.getCarByIds(Arrays.asList(appUserCarId)).getData().get(0);
 					gunMonitoring.setLicensePlate(tAppUserCar.getLicensePlate());
diff --git a/ruoyi-service/ruoyi-order/pom.xml b/ruoyi-service/ruoyi-order/pom.xml
index 3488348..193649c 100644
--- a/ruoyi-service/ruoyi-order/pom.xml
+++ b/ruoyi-service/ruoyi-order/pom.xml
@@ -60,7 +60,12 @@
             <groupId>com.alibaba.cloud</groupId>
             <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
         </dependency>
-
+    
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
+        </dependency>
+        
         <!-- SpringBoot Actuator -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderAccountingStrategyController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderAccountingStrategyController.java
index eb4fe5b..b24aa02 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderAccountingStrategyController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderAccountingStrategyController.java
@@ -34,7 +34,7 @@
 	 * @return
 	 */
 	@ResponseBody
-	@GetMapping("/getTotalElectricQuantity/{days}")
+	@PostMapping("/getTotalElectricQuantity/{days}")
 	public R<List<List<Map<String, Object>>>> getTotalElectricQuantity(@PathVariable Integer days, @RequestParam("siteIds") Set<Integer> siteIds){
 		List<List<Map<String, Object>>> list = chargingOrderAccountingStrategyService.getTotalElectricQuantity(days, siteIds);
 		return R.ok(list);
@@ -47,7 +47,7 @@
 	 * @return
 	 */
 	@ResponseBody
-	@GetMapping("/getDailyChargingDegree/{days}")
+	@PostMapping("/getDailyChargingDegree/{days}")
 	public R<List<Double>> getDailyChargingDegree(@PathVariable Integer days, @RequestParam("siteIds") Set<Integer> siteIds){
 		List<Double> list = chargingOrderAccountingStrategyService.getDailyChargingDegree(days, siteIds);
 		return R.ok(list);
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 075ac4a..9b405c1 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
@@ -3,13 +3,23 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.BasePage;
+import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.api.model.TChargingOrder;
 import com.ruoyi.order.api.query.TChargingCountQuery;
+import com.ruoyi.order.dto.GetMyChargingOrderList;
+import com.ruoyi.order.dto.MyChargingOrderInfo;
 import com.ruoyi.order.service.TChargingOrderService;
 import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
 import java.util.List;
 
 /**
@@ -27,6 +37,8 @@
 
     @Resource
     private TChargingOrderService chargingOrderService;
+    @Autowired
+    private TokenService tokenService;
     /**
      * 查询用户最近一次充电记录使用的车辆
      * @param
@@ -34,9 +46,8 @@
      */
     @PostMapping(value = "/getCar")
     public R<Long> getCar() {
-        // todo 获取用户id
         List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>()
-                .eq(TChargingOrder::getAppUserId, 11)
+                .eq(TChargingOrder::getAppUserId, tokenService.getLoginUserApplet().getUserid())
                 .isNotNull(TChargingOrder::getAppUserCarId));
         if (!list.isEmpty()){
             // 最近使用的车辆id
@@ -78,11 +89,31 @@
      * @param chargingGunId 充电枪id
      * @return
      */
-    @GetMapping(value = "/getOrderDetailByGunId")
+    @PostMapping(value = "/getOrderDetailByGunId")
     public R<TChargingOrder> getOrderDetailByGunId(@RequestParam("chargingGunId") Integer chargingGunId){
         TChargingOrder one = chargingOrderService.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getChargingGunId, chargingGunId)
                 .eq(TChargingOrder::getDelFlag, 0).eq(TChargingOrder::getStatus, 3));
         return R.ok(one);
     }
+    
+    
+    
+    
+    @ResponseBody
+    @GetMapping(value = "/getMyChargingOrderList")
+    @ApiOperation(value = "获取充电记录列表", tags = {"小程序-充电记录"})
+    public AjaxResult<Map<String, Object>> getMyChargingOrderList(GetMyChargingOrderList query){
+        Map<String, Object> orderList = chargingOrderService.getMyChargingOrderList(query);
+        return AjaxResult.success(orderList);
+    }
+    
+    
+    @ResponseBody
+    @GetMapping(value = "/getMyChargingOrderInfo")
+    @ApiOperation(value = "获取充电记订单明细", tags = {"小程序-充电记录"})
+    public AjaxResult<MyChargingOrderInfo> getMyChargingOrderInfo(String id){
+        MyChargingOrderInfo myChargingOrderInfo = chargingOrderService.getMyChargingOrderInfo(id);
+        return AjaxResult.success(myChargingOrderInfo);
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
index 0208eb3..d5dc5e8 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
@@ -6,26 +6,25 @@
 import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
 import com.ruoyi.chargingPile.api.model.TChargingPile;
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.web.page.PageInfo;
-import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.order.api.model.TExchangeOrder;
 import com.ruoyi.order.api.model.TShoppingOrder;
 import com.ruoyi.order.api.query.TActivityStatisticsQuery;
-import com.ruoyi.order.api.vo.TActivityStatisticslVO;
 import com.ruoyi.order.api.vo.TActivityVO;
+import com.ruoyi.order.dto.ExchangeOrderGoodsInfo;
+import com.ruoyi.order.dto.GetMyExchangeOrder;
+import com.ruoyi.order.dto.MyExchangeOrderList;
 import com.ruoyi.order.service.TChargingOrderService;
 import com.ruoyi.order.service.TExchangeOrderService;
 import com.ruoyi.order.service.TShoppingOrderService;
 import com.ruoyi.order.service.TVipOrderService;
-import com.ruoyi.order.service.impl.TChargingOrderServiceImpl;
 import io.swagger.annotations.Api;
-import io.swagger.models.auth.In;
-import org.springframework.beans.factory.annotation.Autowired;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -41,17 +40,14 @@
 @RestController
 @RequestMapping("/t-exchange-order")
 public class TExchangeOrderController {
-    @Autowired
+    @Resource
     private TShoppingOrderService tShoppingOrderService;
-    @Autowired
+    @Resource
     private TExchangeOrderService exchangeOrderService;
-    @Autowired
-    private TChargingOrderService chargingOrderService;
-    @Autowired
-    private TVipOrderService vipOrderService;
-    @Autowired
+    
+    @Resource
     private AppUserClient appUserClient;
-    @Autowired
+    @Resource
     private ChargingPileClient chargingPileClient;
     /**
      * 管理后台 活动费用统计
@@ -148,11 +144,27 @@
 
         return R.ok(strings);
     }
-    /**
-     * 管理后台 根据t_app_coupon订单ids查询积分兑换优惠券的订单编号
-     * @param goodsIds  订单号-商品类型
-     * @return
-     */
-
+    
+    
+    
+    
+    
+    
+    @GetMapping("/getMyExchangeOrder")
+    @ApiOperation(value = "获取兑换记录列表", tags = {"小程序-兑换记录"})
+    public AjaxResult<List<MyExchangeOrderList>> getMyExchangeOrder(GetMyExchangeOrder query){
+        List<MyExchangeOrderList> list = exchangeOrderService.getMyExchangeOrder(query);
+        return AjaxResult.success(list);
+    }
+    
+    
+    
+    @GetMapping("/getGoodsExchangeOrder/{id}")
+    @ApiOperation(value = "获取兑换订单详情", tags = {"小程序-兑换记录"})
+    public AjaxResult<ExchangeOrderGoodsInfo> getGoodsExchangeOrder(@PathVariable String id){
+        ExchangeOrderGoodsInfo goodsExchangeOrder = exchangeOrderService.getGoodsExchangeOrder(id);
+        return AjaxResult.success(goodsExchangeOrder);
+    }
+    
 }
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java
index d1615ae..9188660 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java
@@ -4,6 +4,8 @@
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.order.api.model.TOrderAppeal;
 import com.ruoyi.order.api.query.TOrderAppealQuery;
 import com.ruoyi.order.api.vo.TOrderAppealVO;
 import com.ruoyi.order.service.TOrderAppealService;
@@ -53,8 +55,18 @@
     public AjaxResult<TOrderAppealVO> getDetailById(@RequestParam("id") Integer id) {
         return AjaxResult.ok(orderAppealService.getDetailById(id));
     }
-
-
-
+    
+    
+    
+    @ResponseBody
+    @GetMapping(value = "/addOrderAppeal")
+    @ApiOperation(value = "申诉订单", tags = {"小程序-充电记录(个人中心)"})
+    public AjaxResult addOrderAppeal(@RequestBody TOrderAppeal orderAppeal){
+        Long appUserId = tokenService.getLoginUser().getUserid();
+        orderAppeal.setAppUserId(appUserId);
+        orderAppeal.setStatus(1);
+        orderAppealService.save(orderAppeal);
+        return AjaxResult.success();
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java
index 844f56e..977579c 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java
@@ -9,11 +9,10 @@
 import com.ruoyi.order.api.vo.TOrderEvaluateVO;
 import com.ruoyi.order.dto.GetOrderEvaluatePageList;
 import com.ruoyi.order.dto.GetOrderEvaluatePageListDTO;
+import com.ruoyi.order.dto.OrderEvaluateVo;
 import com.ruoyi.order.service.TOrderEvaluateService;
 import com.ruoyi.other.api.vo.TEvaluationTagVO;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -111,6 +110,28 @@
     public AjaxResult<SiteDetailEvaluateVO> getSiteDetailEveList(@RequestParam(value = "siteId")@ApiParam(value = "站点id")Integer siteId) {
         return AjaxResult.ok(orderEvaluateService.getSiteDetailEveList(siteId));
     }
-
+    
+    
+    
+    
+    @PostMapping(value = "/addOrderEvaluate")
+    @ApiOperation(value = "添加评价记录", tags = {"小程序-充电记录"})
+    public AjaxResult addOrderEvaluate(@RequestBody OrderEvaluateVo query){
+        return orderEvaluateService.addOrderEvaluate(query);
+    }
+    
+    
+    @GetMapping(value = "/getOrderEvaluate")
+    @ApiOperation(value = "获取订单评价详情", tags = {"小程序-充电记录"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true),
+            @ApiImplicitParam(value = "订单类型(1=充电订单,2=购物订单,3=兑换订单,4=会员订单)", name = "orderType", required = true),
+    })
+    public AjaxResult<OrderEvaluateVo> getOrderEvaluate(@PathVariable Integer orderId, Integer orderType){
+        OrderEvaluateVo orderEvaluate = orderEvaluateService.getOrderEvaluate(orderId, orderType);
+        return AjaxResult.success(orderEvaluate);
+    }
+    
+    
 }
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ExchangeOrderGoodsInfo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ExchangeOrderGoodsInfo.java
new file mode 100644
index 0000000..bb080b4
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ExchangeOrderGoodsInfo.java
@@ -0,0 +1,54 @@
+package com.ruoyi.order.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 14:07
+ */
+@Data
+@ApiModel
+public class ExchangeOrderGoodsInfo {
+	@ApiModelProperty("订单id")
+	private String id;
+	@ApiModelProperty("状态(1=待发货,2=待收货,3=已完成,4=已取消)")
+	private Integer status;
+	@ApiModelProperty("收货人姓名")
+	private String consignee;
+	@ApiModelProperty("电话")
+	private String phone;
+	@ApiModelProperty("地址")
+	private String address;
+	@ApiModelProperty("快递公司")
+	private String expressCompany;
+	@ApiModelProperty("快递单号")
+	private String expressNumber;
+	@ApiModelProperty("商品名称")
+	private String name;
+	@ApiModelProperty("商品图片")
+	private String imgUrl;
+	@ApiModelProperty("兑换数量")
+	private Integer purchaseQuantity;
+	@ApiModelProperty("兑换积分单价")
+	private Integer unitPoints;
+	@ApiModelProperty("订单编号")
+	private String code;
+	@ApiModelProperty("下单时间")
+	private String createTime;
+	@ApiModelProperty("兑换总积分")
+	private Integer points;
+	@ApiModelProperty("备注")
+	private String remark;
+	@ApiModelProperty("发货时间")
+	private String deliveryTime;
+	@ApiModelProperty("完成时间")
+	private String finishTime;
+	@ApiModelProperty("优惠券类型(1=充电优惠券,2=购物优惠券)")
+	private Integer couponType;
+	@ApiModelProperty("优惠券有效天数")
+	private Integer days;
+	@ApiModelProperty("有效期截止时间")
+	private String endTime;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyChargingOrderList.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyChargingOrderList.java
new file mode 100644
index 0000000..5e8e9eb
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyChargingOrderList.java
@@ -0,0 +1,17 @@
+package com.ruoyi.order.dto;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/15 19:11
+ */
+@Data
+@ApiModel
+public class GetMyChargingOrderList extends BasePage {
+	@ApiModelProperty("0=全部,1=待评价")
+	private Integer type;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyExchangeOrder.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyExchangeOrder.java
new file mode 100644
index 0000000..64520c0
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/GetMyExchangeOrder.java
@@ -0,0 +1,17 @@
+package com.ruoyi.order.dto;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 13:34
+ */
+@Data
+@ApiModel
+public class GetMyExchangeOrder extends BasePage {
+	@ApiModelProperty("状态(0=全部,1=待发货,2=待收货,3=已完成)")
+	private Integer status;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderInfo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderInfo.java
new file mode 100644
index 0000000..65d4294
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderInfo.java
@@ -0,0 +1,59 @@
+package com.ruoyi.order.dto;
+
+import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 9:08
+ */
+@Data
+@ApiModel
+public class MyChargingOrderInfo {
+	@ApiModelProperty("订单id")
+	private String id;
+	@ApiModelProperty("订单编号")
+	private String code;
+	@ApiModelProperty("订单时间")
+	private String createTime;
+	@ApiModelProperty("订单状态(0=未知,1=等待中,2=启动中,3=充电中,4=停止中,5=已结束)")
+	private Integer status;
+	@ApiModelProperty("订单标题")
+	private String title;
+	@ApiModelProperty("充电模式(1=超级快充,2=快充,3=慢充)")
+	private Integer chargeMode;
+	@ApiModelProperty("充电枪名称")
+	private String name;
+	@ApiModelProperty("车牌号")
+	private String licensePlate;
+	@ApiModelProperty("充电开始时间")
+	private Long startTime;
+	@ApiModelProperty("充电结束时间")
+	private Long endTime;
+	@ApiModelProperty("充电费")
+	private BigDecimal orderAmount;
+	@ApiModelProperty("实际消费")
+	private BigDecimal paymentAmount;;
+	@ApiModelProperty("充值金额")
+	private BigDecimal rechargeAmount;
+	@ApiModelProperty("优惠券抵扣")
+	private BigDecimal couponDiscountAmount;
+	@ApiModelProperty("会员抵扣")
+	private BigDecimal vipDiscountAmount;
+	@ApiModelProperty("退回金额")
+	private BigDecimal refundAmount;
+	@ApiModelProperty("阶段费用明细")
+	private List<TChargingOrderAccountingStrategy> stageCost;
+	@ApiModelProperty("电流电压曲线")
+	private Map<String, Object> currentAndVoltage;
+	@ApiModelProperty("功率曲线")
+	private Map<String, Object> power;
+	@ApiModelProperty("是否可申诉(0=否,1=是)")
+	private Integer actionable;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderList.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderList.java
new file mode 100644
index 0000000..e38ea6e
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyChargingOrderList.java
@@ -0,0 +1,32 @@
+package com.ruoyi.order.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/15 18:59
+ */
+@Data
+@ApiModel
+public class MyChargingOrderList {
+	@ApiModelProperty("订单id")
+	private String id;
+	@ApiModelProperty("订单状态(0=未知,1=等待中,2=启动中,3=充电中,4=停止中,5=已结束)")
+	private Integer status;
+	@ApiModelProperty("标题")
+	private String title;
+	@ApiModelProperty("充电度数")
+	private BigDecimal chargingDegree;
+	@ApiModelProperty("充电桩枪名称")
+	private String name;
+	@ApiModelProperty("结束方式(0=异常终止,1=主动终止,2=满电终止,3=费用不足终止)")
+	private Integer endMode;
+	@ApiModelProperty("支付金额")
+	private BigDecimal payMoney;
+	@ApiModelProperty("订单时间")
+	private String createTime;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyExchangeOrderList.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyExchangeOrderList.java
new file mode 100644
index 0000000..6f4c588
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/MyExchangeOrderList.java
@@ -0,0 +1,30 @@
+package com.ruoyi.order.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 13:36
+ */
+@Data
+@ApiModel
+public class MyExchangeOrderList {
+	@ApiModelProperty("订单id")
+	private String id;
+	@ApiModelProperty("兑换积分单价")
+	private Integer unitPoints;
+	@ApiModelProperty("兑换总积分")
+	private Integer points;
+	@ApiModelProperty("兑换数量")
+	private Integer purchaseQuantity;
+	@ApiModelProperty("订单类型(1=商品,2=优惠券)")
+	private Integer orderType;
+	@ApiModelProperty("状态(1=待发货,2=待收货,3=已完成,4=已取消)")
+	private Integer status;
+	@ApiModelProperty("名称")
+	private String name;
+	@ApiModelProperty("图片")
+	private String imgUrl;
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/OrderEvaluateVo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/OrderEvaluateVo.java
new file mode 100644
index 0000000..bcbd782
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/OrderEvaluateVo.java
@@ -0,0 +1,23 @@
+package com.ruoyi.order.dto;
+
+import com.ruoyi.order.api.model.TOrderEvaluate;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 10:25
+ */
+@Data
+@ApiModel
+public class OrderEvaluateVo extends TOrderEvaluate {
+	@ApiModelProperty("评价标签id")
+	private List<Integer> tagIds;
+	
+	@ApiModelProperty("评价标签名称")
+	private List<String> tagName;
+	
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
index 2d6a017..1b186da 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
@@ -4,6 +4,9 @@
 import com.ruoyi.order.api.model.TChargingOrder;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  *  Mapper 接口
@@ -14,5 +17,15 @@
  */
 @Mapper
 public interface TChargingOrderMapper extends BaseMapper<TChargingOrder> {
-
+	
+	
+	/**
+	 * 获取小程序充电记录列表数据
+	 * @param appUserId
+	 * @param type
+	 * @param pageCurr
+	 * @param pageSize
+	 * @return
+	 */
+	List<TChargingOrder> getMyChargingOrderList(Long appUserId, Integer type, Integer pageCurr, Integer pageSize);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
index 5650b83..d5e9755 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -1,7 +1,12 @@
 package com.ruoyi.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.order.dto.GetMyChargingOrderList;
+import com.ruoyi.order.dto.MyChargingOrderInfo;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -12,5 +17,20 @@
  * @since 2024-08-07
  */
 public interface TChargingOrderService extends IService<TChargingOrder> {
-
+	
+	
+	/**
+	 * 获取小程序充电记录列表数据
+	 * @param query
+	 * @return
+	 */
+	Map<String, Object> getMyChargingOrderList(GetMyChargingOrderList query);
+	
+	
+	/**
+	 * 获取小程序充电记录明细
+	 * @param id
+	 * @return
+	 */
+	MyChargingOrderInfo getMyChargingOrderInfo(String id);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TExchangeOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TExchangeOrderService.java
index 9246415..baf7452 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TExchangeOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TExchangeOrderService.java
@@ -2,6 +2,11 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.order.api.model.TExchangeOrder;
+import com.ruoyi.order.dto.ExchangeOrderGoodsInfo;
+import com.ruoyi.order.dto.GetMyExchangeOrder;
+import com.ruoyi.order.dto.MyExchangeOrderList;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +17,20 @@
  * @since 2024-08-07
  */
 public interface TExchangeOrderService extends IService<TExchangeOrder> {
-
+	
+	
+	/**
+	 * 获取小程序兑换记录
+	 * @param query
+	 * @return
+	 */
+	List<MyExchangeOrderList> getMyExchangeOrder(GetMyExchangeOrder query);
+	
+	
+	/**
+	 * 获取兑换订单详情
+	 * @param id
+	 * @return
+	 */
+	ExchangeOrderGoodsInfo getGoodsExchangeOrder(String id);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java
index 534d681..3098ba9 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java
@@ -1,6 +1,7 @@
 package com.ruoyi.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.api.model.TOrderEvaluate;
 import com.ruoyi.order.api.query.TOrderEvaluateQuery;
@@ -8,7 +9,9 @@
 import com.ruoyi.order.api.vo.TOrderEvaluateVO;
 import com.ruoyi.order.dto.GetOrderEvaluatePageList;
 import com.ruoyi.order.dto.GetOrderEvaluatePageListDTO;
+import com.ruoyi.order.dto.OrderEvaluateVo;
 import com.ruoyi.other.api.vo.TEvaluationTagVO;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
@@ -50,4 +53,20 @@
      * @return
      */
     PageInfo<GetOrderEvaluatePageListDTO> getPageList(GetOrderEvaluatePageList pageList);
+    
+    
+    /**
+     * 评价订单
+     * @param query
+     * @return
+     */
+    AjaxResult addOrderEvaluate(OrderEvaluateVo query);
+    
+    
+    /**
+     * 根据订单id获取
+     * @param orderId
+     * @return
+     */
+    OrderEvaluateVo getOrderEvaluate(Integer orderId, Integer orderType);
 }
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 de40f2c..f189465 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
@@ -1,10 +1,33 @@
 package com.ruoyi.order.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.feignClient.AppUserCarClient;
+import com.ruoyi.account.api.model.TAppUserCar;
+import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
+import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
+import com.ruoyi.chargingPile.api.feignClient.SiteClient;
+import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.model.TChargingGun;
+import com.ruoyi.common.core.web.page.BasePage;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy;
+import com.ruoyi.order.dto.GetMyChargingOrderList;
+import com.ruoyi.order.dto.MyChargingOrderInfo;
+import com.ruoyi.order.dto.MyChargingOrderList;
 import com.ruoyi.order.mapper.TChargingOrderMapper;
+import com.ruoyi.order.service.TChargingOrderAccountingStrategyService;
 import com.ruoyi.order.service.TChargingOrderService;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 
 /**
  * <p>
@@ -16,5 +39,102 @@
  */
 @Service
 public class TChargingOrderServiceImpl extends ServiceImpl<TChargingOrderMapper, TChargingOrder> implements TChargingOrderService {
-
+	
+	@Resource
+	private ChargingGunClient chargingGunClient;
+	
+	@Resource
+	private SiteClient siteClient;
+	
+	@Resource
+	private AppUserCarClient appUserCarClient;
+	
+	@Resource
+	private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
+	
+	@Resource
+	private TokenService tokenService;
+	
+	
+	
+	
+	/**
+	 * 获取小程序充电记录列表数据
+	 * @param query
+	 * @return
+	 */
+	@Override
+	public Map<String, Object> getMyChargingOrderList(GetMyChargingOrderList query) {
+		Long appUserId = tokenService.getLoginUser().getUserid();
+		Map<String, Object> map = new HashMap<>();
+		int size = this.baseMapper.getMyChargingOrderList(appUserId, 1, null, null).size();
+		map.put("number", size);
+		List<TChargingOrder> list = this.baseMapper.getMyChargingOrderList(appUserId, query.getType(), query.getPageCurr(), query.getPageSize());
+		List<MyChargingOrderList> orderLists = new ArrayList<>();
+		for (TChargingOrder tChargingOrder : list) {
+			MyChargingOrderList myChargingOrderList = new MyChargingOrderList();
+			myChargingOrderList.setId(tChargingOrder.getId().toString());
+			myChargingOrderList.setStatus(tChargingOrder.getStatus());
+			Site site = siteClient.getSiteByIds(Arrays.asList(tChargingOrder.getSiteId())).getData().get(0);
+			myChargingOrderList.setTitle(site.getName());
+			myChargingOrderList.setChargingDegree(tChargingOrder.getChargingCapacity());
+			String name = chargingGunClient.getAllName(tChargingOrder.getChargingGunId()).getData();
+			myChargingOrderList.setName(name);
+			myChargingOrderList.setEndMode(tChargingOrder.getEndMode());
+			BigDecimal payMoney = tChargingOrder.getStatus() < 4 ? tChargingOrder.getRechargeAmount() : tChargingOrder.getPaymentAmount();
+			myChargingOrderList.setPayMoney(payMoney);
+			myChargingOrderList.setCreateTime(tChargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+			orderLists.add(myChargingOrderList);
+		}
+		map.put("list", orderLists);
+		return map;
+	}
+	
+	
+	/**
+	 * 获取充电订单明细
+	 * @param id 订单id
+	 * @return
+	 */
+	@Override
+	public MyChargingOrderInfo getMyChargingOrderInfo(String id) {
+		TChargingOrder chargingOrder = this.getById(id);
+		MyChargingOrderInfo myChargingOrderInfo = new MyChargingOrderInfo();
+		myChargingOrderInfo.setId(id);
+		myChargingOrderInfo.setCode(chargingOrder.getCode());
+		myChargingOrderInfo.setCreateTime(chargingOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		myChargingOrderInfo.setStatus(chargingOrder.getStatus());
+		Site site = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData().get(0);
+		myChargingOrderInfo.setTitle(site.getName());
+		TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData();
+		myChargingOrderInfo.setChargeMode(chargingGun.getChargeMode());
+		String name = chargingGunClient.getAllName(chargingOrder.getChargingGunId()).getData();
+		myChargingOrderInfo.setName(name);
+		if(null != chargingOrder.getAppUserCarId()){
+			TAppUserCar tAppUserCar = appUserCarClient.getCarByIds(Arrays.asList(chargingOrder.getAppUserCarId())).getData().get(0);
+			myChargingOrderInfo.setLicensePlate(tAppUserCar.getLicensePlate());
+		}else{
+			myChargingOrderInfo.setLicensePlate("无");
+		}
+		myChargingOrderInfo.setStartTime(chargingOrder.getStartTime().toInstant(ZoneOffset.of("+8")).toEpochMilli());
+		myChargingOrderInfo.setEndTime(chargingOrder.getEndTime().toInstant(ZoneOffset.of("+8")).toEpochMilli());
+		myChargingOrderInfo.setOrderAmount(chargingOrder.getOrderAmount());
+		myChargingOrderInfo.setPaymentAmount(chargingOrder.getPaymentAmount());
+		myChargingOrderInfo.setRechargeAmount(chargingOrder.getRechargeAmount());
+		myChargingOrderInfo.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount());
+		myChargingOrderInfo.setVipDiscountAmount(chargingOrder.getVipDiscountAmount());
+		myChargingOrderInfo.setRefundAmount(chargingOrder.getRefundAmount());
+		List<TChargingOrderAccountingStrategy> stageCost = chargingOrderAccountingStrategyService.list(
+				new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, id)
+						.orderByAsc(TChargingOrderAccountingStrategy::getStartTime)
+		);
+		myChargingOrderInfo.setStageCost(stageCost);
+		// todo 待完善
+		//再MongoDB中获取数据
+		myChargingOrderInfo.setCurrentAndVoltage(null);
+		//再MongoDB中获取数据
+		myChargingOrderInfo.setPower(null);
+		myChargingOrderInfo.setActionable(myChargingOrderInfo.getEndTime() + 604800000L > System.currentTimeMillis() ? 0 : 1);
+		return myChargingOrderInfo;
+	}
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java
index 84f4764..341d6b7 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TExchangeOrderServiceImpl.java
@@ -1,10 +1,27 @@
 package com.ruoyi.order.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.feignClient.AppUserAddressClient;
+import com.ruoyi.account.api.model.TAppUserAddress;
+import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.api.model.TExchangeOrder;
+import com.ruoyi.order.dto.ExchangeOrderGoodsInfo;
+import com.ruoyi.order.dto.GetMyExchangeOrder;
+import com.ruoyi.order.dto.MyExchangeOrderList;
 import com.ruoyi.order.mapper.TExchangeOrderMapper;
 import com.ruoyi.order.service.TExchangeOrderService;
+import com.ruoyi.other.api.domain.TCoupon;
+import com.ruoyi.other.api.domain.TGoods;
+import com.ruoyi.other.api.feignClient.CouponClient;
+import com.ruoyi.other.api.feignClient.GoodsClient;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * <p>
@@ -16,5 +33,108 @@
  */
 @Service
 public class TExchangeOrderServiceImpl extends ServiceImpl<TExchangeOrderMapper, TExchangeOrder> implements TExchangeOrderService {
-
+	
+	@Resource
+	private TokenService tokenService;
+	
+	@Resource
+	private GoodsClient goodsClient;
+	
+	@Resource
+	private CouponClient couponClient;
+	
+	@Resource
+	private AppUserAddressClient appUserAddressClient;
+	
+	
+	
+	
+	
+	
+	/**
+	 * 获取小程序兑换记录
+	 * @param query
+	 * @return
+	 */
+	@Override
+	public List<MyExchangeOrderList> getMyExchangeOrder(GetMyExchangeOrder query) {
+		Long userid = tokenService.getLoginUser().getUserid();
+		LambdaQueryWrapper<TExchangeOrder> wrapper = new LambdaQueryWrapper<TExchangeOrder>().eq(TExchangeOrder::getDelFlag, 0).eq(TExchangeOrder::getAppUserId, userid);
+		if(query.getStatus() == 0){
+			wrapper.ne(TExchangeOrder::getStatus, 4);
+		}else{
+			wrapper.eq(TExchangeOrder::getStatus, query.getStatus());
+		}
+		List<TExchangeOrder> list = this.list(wrapper.orderByDesc(TExchangeOrder::getCreateTime).last(" limit " + query.getPageCurr() + "," + query.getPageSize()));
+		List<MyExchangeOrderList> pageList = new ArrayList<>();
+		for (TExchangeOrder tExchangeOrder : list) {
+			MyExchangeOrderList exchangeOrderList = new MyExchangeOrderList();
+			exchangeOrderList.setId(tExchangeOrder.getId().toString());
+			exchangeOrderList.setUnitPoints(tExchangeOrder.getPoints() / tExchangeOrder.getPurchaseQuantity());
+			exchangeOrderList.setPoints(tExchangeOrder.getPoints());
+			exchangeOrderList.setPurchaseQuantity(tExchangeOrder.getPurchaseQuantity());
+			exchangeOrderList.setOrderType(tExchangeOrder.getOrderType());
+			exchangeOrderList.setStatus(tExchangeOrder.getStatus());
+			String name = "";
+			String imgUrl = "";
+			if(tExchangeOrder.getOrderType() == 1){
+				TGoods goods = goodsClient.getGoodsById(tExchangeOrder.getGoodsId()).getData();
+				name = goods.getName();
+				imgUrl = goods.getCoverPicture();
+			}else{
+				TCoupon coupon = couponClient.getCouponById(tExchangeOrder.getGoodsId()).getData();
+				name = coupon.getName();
+				imgUrl = coupon.getCoverPicture();
+			}
+			exchangeOrderList.setName(name);
+			exchangeOrderList.setImgUrl(imgUrl);
+			pageList.add(exchangeOrderList);
+		}
+		return pageList;
+	}
+	
+	
+	/**
+	 * 获取兑换订单详情
+	 * @param id
+	 * @return
+	 */
+	@Override
+	public ExchangeOrderGoodsInfo getGoodsExchangeOrder(String id) {
+		TExchangeOrder exchangeOrder = this.getById(id);
+		ExchangeOrderGoodsInfo info = new ExchangeOrderGoodsInfo();
+		info.setId(id);
+		info.setStatus(exchangeOrder.getStatus());
+		TAppUserAddress userAddress = appUserAddressClient.getAppUserAddressById(exchangeOrder.getAppUserAddressId()).getData();
+		info.setConsignee(userAddress.getName());
+		info.setPhone(userAddress.getPhone());
+		info.setAddress(userAddress.getAddress());
+		info.setExpressCompany(exchangeOrder.getExpressCompany());
+		info.setExpressNumber(exchangeOrder.getExpressNumber());
+		String name = "";
+		String imgUrl = "";
+		if(exchangeOrder.getOrderType() == 1){
+			TGoods goods = goodsClient.getGoodsById(exchangeOrder.getGoodsId()).getData();
+			name = goods.getName();
+			imgUrl = goods.getCoverPicture();
+		}else{
+			TCoupon coupon = couponClient.getCouponById(exchangeOrder.getGoodsId()).getData();
+			info.setCouponType(coupon.getType());
+			info.setDays(coupon.getDays());
+			info.setEndTime(coupon.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+			name = coupon.getName();
+			imgUrl = coupon.getCoverPicture();
+		}
+		info.setName(name);
+		info.setImgUrl(imgUrl);
+		info.setPurchaseQuantity(exchangeOrder.getPurchaseQuantity());
+		info.setUnitPoints(exchangeOrder.getPoints() / exchangeOrder.getPurchaseQuantity());
+		info.setCode(exchangeOrder.getCode());
+		info.setCreateTime(exchangeOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		info.setPoints(exchangeOrder.getPoints());
+		info.setRemark(exchangeOrder.getRemark());
+		info.setDeliveryTime(exchangeOrder.getConsignerTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		info.setFinishTime(exchangeOrder.getReceivingTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+		return info;
+	}
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
index 6916f8a..e0f76a8 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
@@ -1,19 +1,26 @@
 package com.ruoyi.order.service.impl;
 
+import cn.hutool.db.DaoTemplate;
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.account.api.feignClient.AppUserCarClient;
 import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.feignClient.AppUserIntegralChangeClient;
 import com.ruoyi.account.api.model.TAppUser;
 import com.ruoyi.account.api.model.TAppUserCar;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserIntegralChange;
 import com.ruoyi.chargingPile.api.feignClient.SiteClient;
 import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.api.model.TChargingOrder;
 import com.ruoyi.order.api.model.TOrderEvaluate;
 import com.ruoyi.order.api.model.TOrderEvaluateTag;
@@ -22,19 +29,26 @@
 import com.ruoyi.order.api.vo.TOrderEvaluateVO;
 import com.ruoyi.order.dto.GetOrderEvaluatePageList;
 import com.ruoyi.order.dto.GetOrderEvaluatePageListDTO;
+import com.ruoyi.order.dto.OrderEvaluateVo;
 import com.ruoyi.order.mapper.TChargingOrderMapper;
 import com.ruoyi.order.mapper.TOrderEvaluateMapper;
 import com.ruoyi.order.mapper.TOrderEvaluateTagMapper;
+import com.ruoyi.order.service.TChargingOrderService;
 import com.ruoyi.order.service.TOrderEvaluateService;
 import com.ruoyi.other.api.domain.TEvaluationTag;
+import com.ruoyi.other.api.domain.TIntegralRule;
+import com.ruoyi.other.api.feignClient.IntegralRuleClient;
 import com.ruoyi.other.api.feignClient.TEvaluationTagClient;
 import com.ruoyi.other.api.vo.TEvaluationTagVO;
+import io.seata.spring.annotation.GlobalTransactional;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 import java.util.Arrays;
 import java.util.Comparator;
 import java.util.List;
@@ -66,6 +80,19 @@
     
     @Resource
     private SiteClient siteClient;
+    
+    @Resource
+    private TokenService tokenService;
+    
+    @Resource
+    private TChargingOrderService chargingOrderService;
+    
+    @Resource
+    private IntegralRuleClient integralRuleClient;
+    
+    @Resource
+    private AppUserIntegralChangeClient appUserIntegralChangeClient;
+    
     
     
     
@@ -202,4 +229,84 @@
         }
         return pageInfo.setRecords(list);
     }
+    
+    
+    /**
+     * 评价订单
+     * @param query
+     * @return
+     */
+    @Override
+    @GlobalTransactional(rollbackFor = Exception.class)//分布式事务
+    public AjaxResult addOrderEvaluate(OrderEvaluateVo query) {
+        TOrderEvaluate orderEvaluate = this.getOne(new LambdaQueryWrapper<TOrderEvaluate>().eq(TOrderEvaluate::getOrderId, query.getOrderId())
+                .eq(TOrderEvaluate::getOrderType, query.getOrderType()).eq(TOrderEvaluate::getDelFlag, 0));
+        if(null != orderEvaluate){
+            return AjaxResult.error("不能重复评价");
+        }
+        orderEvaluate = new TOrderEvaluate();
+        BeanUtils.copyProperties(query, orderEvaluate);
+        Long userid = tokenService.getLoginUser().getUserid();
+        orderEvaluate.setAppUserId(userid);
+        if(query.getOrderType() == 1){
+            TChargingOrder chargingOrder = chargingOrderService.getById(query.getOrderId());
+            orderEvaluate.setAppUserCarId(chargingOrder.getAppUserCarId());
+        }
+        this.save(orderEvaluate);
+    
+        List<Integer> tagIds = query.getTagIds();
+        for (Integer tagId : tagIds) {
+            TOrderEvaluateTag orderEvaluateTag = new TOrderEvaluateTag();
+            orderEvaluateTag.setOrderEvaluateId(orderEvaluate.getId());
+            orderEvaluateTag.setEvaluationTagId(tagId);
+            orderEvaluateTagMapper.insert(orderEvaluateTag);
+        }
+    
+        //判断发放积分  文字+图片+5星好评
+        if(StringUtils.isNotEmpty(query.getContent()) && StringUtils.isNotEmpty(query.getImgUrl()) && 5 == query.getMark()){
+            TIntegralRule data = integralRuleClient.getSet().getData();
+            String credit = data.getCredit();
+            //积分
+            Integer num1 = JSON.parseObject(credit).getInteger("num1");
+            if(null != num1 && 0 < num1){
+                TAppUser appUser = appUserClient.getUserById(userid).getData();
+                Integer points = appUser.getPoints();
+                appUser.setPoints(appUser.getPoints() + num1);
+                appUserClient.updateAppUser(appUser);
+    
+                //积分变动明细
+                TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange();
+                appUserIntegralChange.setAppUserId(appUser.getId());
+                appUserIntegralChange.setChangeType(3);
+                appUserIntegralChange.setHistoricalIntegral(points);
+                appUserIntegralChange.setCurrentIntegral(points + num1);
+                appUserIntegralChange.setCreateTime(LocalDateTime.now());
+                appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
+            }
+        }
+        return AjaxResult.success();
+    }
+    
+    
+    /**
+     * 获取订单评价
+     * @param orderId 订单id
+     * @param orderType 订单类型
+     * @return
+     */
+    @Override
+    public OrderEvaluateVo getOrderEvaluate(Integer orderId, Integer orderType) {
+        TOrderEvaluate orderEvaluate = this.getOne(new LambdaQueryWrapper<TOrderEvaluate>().eq(TOrderEvaluate::getOrderId, orderId).eq(TOrderEvaluate::getOrderType, orderType));
+        if(null != orderEvaluate){
+            OrderEvaluateVo orderEvaluateVo = new OrderEvaluateVo();
+            BeanUtils.copyProperties(orderEvaluate, orderEvaluateVo);
+            List<TOrderEvaluateTag> tOrderEvaluateTags = orderEvaluateTagMapper.selectList(new LambdaQueryWrapper<TOrderEvaluateTag>().eq(TOrderEvaluateTag::getOrderEvaluateId, orderEvaluate.getId()));
+            List<Integer> tagId = tOrderEvaluateTags.stream().map(TOrderEvaluateTag::getEvaluationTagId).collect(Collectors.toList());
+            List<TEvaluationTag> data = evaluationTagClient.getListByIds(tagId).getData();
+            List<String> collect = data.stream().map(TEvaluationTag::getName).collect(Collectors.toList());
+            orderEvaluateVo.setTagName(collect);
+            return orderEvaluateVo;
+        }
+        return null;
+    }
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index f41d4d6..418f126 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -19,6 +19,7 @@
         <result column="start_time" property="startTime" />
         <result column="end_time" property="endTime" />
         <result column="status" property="status" />
+        <result column="end_mode" property="endMode"/>
         <result column="recharge_amount" property="rechargeAmount" />
         <result column="recharge_payment_type" property="rechargePaymentType" />
         <result column="recharge_payment_status" property="rechargePaymentStatus" />
@@ -43,4 +44,15 @@
         id, code, order_type, order_classification, app_user_id, app_user_car_id,site_id, parking_lot_id, charging_pile_id, charging_gun_id, start_time, end_time, status, recharge_amount, recharge_payment_type, recharge_payment_status, recharge_serial_number, order_amount, app_coupon_id, coupon_discount_amount, vip_discount, vip_discount_amount, payment_amount, refund_code, refund_amount, refund_status, refund_serial_number, refund_time, create_time, del_flag
     </sql>
 
+    
+    <select id="getMyChargingOrderList" resultMap="BaseResultMap">
+        select * from t_charging_order where del_flag = 0 and app_user_id = #{appUserId}
+        <if test="1 == type">
+            and id not in (select order_id from t_order_evaluate where order_type = 1 and app_user_id = #{appUserId} and del_flag = 0)
+        </if>
+        order by create_time desc
+        <if test="null != pageCurr and null != pageSize">
+            limit #{pageCurr}, #{pageSize}
+        </if>
+    </select>
 </mapper>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
index bc579b9..f36cca6 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
@@ -129,5 +129,17 @@
         }
         return R.ok(list);
     }
+    
+    
+    /**
+     * 根据id获取优惠券信息
+     * @param id
+     * @return
+     */
+    @PostMapping(value = "/getCouponById/{id}")
+    public R<TCoupon> getCouponById(@PathVariable Integer id){
+        TCoupon coupon = tCouponService.getById(id);
+        return R.ok(coupon);
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java
index 6b55808..9a49776 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.other.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.BasePage;
@@ -96,10 +97,20 @@
      * @param tagIds
      * @return
      */
-    @GetMapping("/getListByIds")
-    public R<List<TEvaluationTag>> getListByIds(List<Integer> tagIds){
+    @PostMapping("/getListByIds")
+    public R<List<TEvaluationTag>> getListByIds(@RequestBody List<Integer> tagIds){
         List<TEvaluationTag> tEvaluationTags = evaluationTagService.listByIds(tagIds);
         return R.ok(tEvaluationTags);
     }
+    
+    
+    
+    @ResponseBody
+    @GetMapping("/getRandomEvaluationTag")
+    @ApiOperation(value = "获取随机的4个评价标签", tags = {"小程序-充电记录"})
+    public AjaxResult<List<TEvaluationTag>> getRandomEvaluationTag(){
+        List<TEvaluationTag> list = evaluationTagService.list(new LambdaQueryWrapper<TEvaluationTag>().last(" order by RAND() limit 0, 4"));
+        return AjaxResult.success(list);
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
index f714570..bea875b 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.other.controller;
 
 
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.other.api.domain.TActivity;
@@ -57,5 +58,16 @@
     public AjaxResult<PageInfo<TGoods>> pageList(@RequestBody GoodsDTO dto) {
         return AjaxResult.ok(goodsService.pageList(dto));
     }
+    
+    /**
+     * 根据id获取商品信息
+     * @param id
+     * @return
+     */
+    @PostMapping("/getGoodsById/{id}")
+    public R<TGoods> getGoodsById(@PathVariable Integer id){
+        TGoods goods = goodsService.getById(id);
+        return R.ok(goods);
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java
index 772d11a..4c80295 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java
@@ -1,14 +1,12 @@
 package com.ruoyi.other.controller;
 import java.time.LocalDateTime;
-import java.util.Date;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.other.api.domain.THtml;
 import com.ruoyi.other.api.domain.TIntegralRule;
-import com.ruoyi.other.api.dto.SaveIntegralDTO;
 import com.ruoyi.other.service.THtmlService;
 import com.ruoyi.other.service.TIntegralRuleService;
 import io.swagger.annotations.ApiImplicitParam;
@@ -32,12 +30,18 @@
     private THtmlService htmlService;
     @Autowired
     private TIntegralRuleService integralRuleService;
+    
+    
+    
     @GetMapping("/getSet")
     @ApiOperation(tags = {"管理后台-积分管理"},value = "获取积分设置")
     public R<TIntegralRule> getSet() {
         TIntegralRule res = integralRuleService.getOne(new QueryWrapper<>());
         return R.ok(res);
     }
+    
+    
+    
     @PostMapping("/saveSet")
     @ApiOperation(tags = {"管理后台-积分管理"},value = "保存积分设置")
     public R saveSet(@RequestBody TIntegralRule dto) {
@@ -94,5 +98,13 @@
         }
         return R.ok();
     }
+    
+    
+    @GetMapping("/getIntegralRule")
+    @ApiOperation(tags = {"小程序-充电记录"},value = "获取积分规则设置")
+    public AjaxResult<String> getIntegralRule(){
+        TIntegralRule one = integralRuleService.getOne(null);
+        return AjaxResult.success(one);
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java
index 043a2cd..089747c 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java
@@ -32,8 +32,8 @@
 	 * @return
 	 */
 	@ResponseBody
-	@GetMapping("/getSiteIds")
-	public R<List<Integer>> getSiteIds(Long roleId){
+	@PostMapping("/getSiteIds/{roleId}")
+	public R<List<Integer>> getSiteIds(@PathVariable Long roleId){
 		List<TRoleSite> list = roleSiteService.list(new LambdaQueryWrapper<TRoleSite>().eq(TRoleSite::getRoleId, roleId));
 		List<Integer> collect = list.stream().map(TRoleSite::getSiteId).collect(Collectors.toList());
 		return R.ok(collect);
@@ -45,7 +45,7 @@
 	 * @return
 	 */
 	@ResponseBody
-	@PostMapping("/getSiteIds")
+	@PostMapping("/addRoleSite")
 	public R addRoleSite(@RequestBody List<TRoleSite> roleSites){
 		roleSiteService.saveBatch(roleSites);
 		return R.ok();
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java
index 686f3b9..8b5327c 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TUserSiteController.java
@@ -33,8 +33,8 @@
 	 * @return
 	 */
 	@ResponseBody
-	@GetMapping("/getSiteIds")
-	public R<List<Integer>> getSiteIds(Long userId){
+	@PostMapping("/getSiteIds/{userId}")
+	public R<List<Integer>> getSiteIds(@PathVariable Long userId){
 		List<TUserSite> list = userSiteService.list(new LambdaQueryWrapper<TUserSite>().eq(TUserSite::getUserId, userId));
 		List<Integer> collect = list.stream().map(TUserSite::getSiteId).collect(Collectors.toList());
 		return R.ok(collect);
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TCouponMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TCouponMapper.xml
index 517753e..ae8d93a 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TCouponMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TCouponMapper.xml
@@ -7,6 +7,8 @@
         <id column="id" property="id" />
         <result column="type" property="type" />
         <result column="name" property="name" />
+        <result column="cover_picture" property="coverPicture"/>
+        <result column="details_picture" property="detailsPicture"/>
         <result column="preferential_mode" property="preferentialMode" />
         <result column="discount_amount" property="discountAmount" />
         <result column="meet_the_conditions" property="meetTheConditions" />

--
Gitblit v1.7.1