From 731c3d326b6cc2e08e703f06d06aa453bc52cda3 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 16 八月 2024 15:32:57 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java                                  |  122 ++++
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java                                   |    4 
 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-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-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-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java                                               |   12 
 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-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                         |   20 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java                                      |   16 
 ruoyi-service/ruoyi-order/pom.xml                                                                                                    |    7 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserAddressController.java                                |   15 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java                         |   34 +
 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                                 |   58 ++
 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-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-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-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml                                               |   28 +
 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/SiteController.java                                 |   28 
 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                                     |   15 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java                                       |   15 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java                                         |   12 
 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-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java                                     |   30 +
 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        |    3 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java                                             |   51 +
 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                                                      |   10 
 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-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java                              |   44 +
 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 
 72 files changed, 1,591 insertions(+), 85 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/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/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..dfc2d19
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserIntegralChangeClient.java
@@ -0,0 +1,20 @@
+package com.ruoyi.account.api.feignClient;
+
+import com.ruoyi.account.api.model.TAppUserIntegralChange;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/16 11:01
+ */
+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/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/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-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..4e7777b 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;
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..3398b1d 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,5 @@
 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
\ 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
new file mode 100644
index 0000000..2f01d93
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserApplet.java
@@ -0,0 +1,51 @@
+package com.ruoyi.system.api.model;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 用户信息 小程序登录使用
+ *
+ * @author 无关风月
+ */
+@Data
+public class LoginUserApplet implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户唯一标识
+     */
+    private String token;
+    /**
+     * 用户姓名
+     */
+    private String name;
+
+    /**
+     * 用户名id
+     */
+    private Integer userid;
+
+    /**
+     * 用户名
+     */
+    private String phone;
+    /**
+     * 登录时间
+     */
+    private Long loginTime;
+
+    /**
+     * 过期时间
+     */
+    private Long expireTime;
+
+    /**
+     * 登录IP地址
+     */
+    private String ipaddr;
+
+
+
+}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java
index c122e52..8f56ebf 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java
@@ -36,6 +36,10 @@
      * 用户标识
      */
     public static final String USER_KEY = "user_key";
+    /**
+     * 小程序登录用户标识
+     */
+    public static final String USER_APPLET_KEY = "user_applet_key";
 
     /**
      * 登录用户
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java
index d984892..b5f5b92 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java
@@ -64,6 +64,17 @@
     }
 
     /**
+     * 小程序根据令牌获取用户标识
+     *
+     * @param token 令牌
+     * @return 用户ID
+     */
+    public static String getUserKeyApplet(String token)
+    {
+        Claims claims = parseToken(token);
+        return getValue(claims, SecurityConstants.USER_APPLET_KEY);
+    }
+    /**
      * 根据令牌获取用户ID
      * 
      * @param token 令牌
@@ -75,6 +86,7 @@
         return getValue(claims, SecurityConstants.DETAILS_USER_ID);
     }
 
+
     /**
      * 根据身份信息获取用户ID
      * 
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 139ee8b..2d7cae5 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
@@ -4,6 +4,8 @@
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import javax.servlet.http.HttpServletRequest;
+
+import com.ruoyi.system.api.model.LoginUserApplet;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import com.ruoyi.common.core.constant.CacheConstants;
@@ -64,7 +66,53 @@
         rspMap.put("expires_in", expireTime);
         return rspMap;
     }
-
+    /**
+     * 创建小程序令牌
+     */
+    public Map<String, Object> createTokenApplet(LoginUserApplet loginUser) {
+        String token = IdUtils.fastUUID();
+        Integer userId = loginUser.getUserid();
+        String name = loginUser.getName();
+        loginUser.setToken(token);
+        loginUser.setIpaddr(IpUtils.getIpAddr());
+        refreshToken1(loginUser);
+        // Jwt存储信息
+        Map<String, Object> claimsMap = new HashMap<String, Object>();
+        claimsMap.put(SecurityConstants.USER_APPLET_KEY, token);
+        claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
+        claimsMap.put(SecurityConstants.DETAILS_USERNAME, name);
+        // 接口返回信息
+        Map<String, Object> rspMap = new HashMap<String, Object>();
+        rspMap.put("access_token", JwtUtils.createToken(claimsMap));
+        rspMap.put("expires_in", expireTime);
+        return rspMap;
+    }
+    public LoginUserApplet getLoginUserApplet() {
+        return getLoginUserAppletToken(ServletUtils.getRequest());
+    }
+    public LoginUserApplet getLoginUserAppletToken(HttpServletRequest request) {
+        // 获取请求携带的令牌
+        String token = SecurityUtils.getToken(request);
+        return getLoginUserApplet(token);
+    }
+    /**
+     * 小程序 获取用户身份信息
+     *
+     * @return 用户信息
+     */
+    public LoginUserApplet getLoginUserApplet(String token) {
+        LoginUserApplet user = null;
+        try {
+            if (StringUtils.isNotEmpty(token)) {
+                String userkey = JwtUtils.getUserKeyApplet(token);
+                user = redisService.getCacheObject(getTokenKey(userkey));
+                return user;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return user;
+    }
     /**
      * 获取用户身份信息
      *
@@ -161,7 +209,13 @@
         String userKey = getTokenKey(loginUser.getToken());
         redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
     }
-
+    public void refreshToken1(LoginUserApplet dto) {
+        dto.setLoginTime(System.currentTimeMillis());
+        dto.setExpireTime(dto.getLoginTime() + expireTime * MILLIS_MINUTE);
+        // 根据uuid将loginUser缓存
+        String userKey = getTokenKey(dto.getToken());
+        redisService.setCacheObject(userKey, dto, expireTime, TimeUnit.MINUTES);
+    }
     private String getTokenKey(String token)
     {
         return ACCESS_TOKEN + token;
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-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 26d4687..a85603f 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
@@ -5,10 +5,13 @@
 import com.ruoyi.account.api.dto.CouponListDto;
 import com.ruoyi.account.api.dto.GrantCouponDto;
 import com.ruoyi.account.api.model.TAppCoupon;
+import com.ruoyi.account.api.model.TAppUserCar;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
+import com.ruoyi.account.api.vo.CarListVO;
 import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
 import com.ruoyi.account.service.TAppCouponService;
+import com.ruoyi.account.service.TAppUserCarService;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.BasePage;
@@ -43,6 +46,8 @@
     @Autowired
     private OtherClient otherClient;
 
+    @Autowired
+    private TAppUserCarService appUserCarService;
     /**
      * 查询用户可用优惠券数量
      * @param dto
@@ -55,14 +60,16 @@
         return AjaxResult.ok(res);
     }
     /**
-     *
-     * @param dto
+     * 选择车辆列表
      * @return
      */
     @ApiOperation(value = "选择车辆列表", tags = {"小程序-扫一扫"})
     @PostMapping(value = "/scan/carList")
-    public AjaxResult<CouponListVOVO> carList(@RequestBody CouponListDto dto) {
-        return AjaxResult.success();
+    public AjaxResult<List<TAppUserCar>> carList() {
+        // todo 用户id
+        List<TAppUserCar> appUserId = appUserCarService.list(new QueryWrapper<TAppUserCar>()
+                .eq("app_user_id", 11));
+        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/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/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
index 6209a9a..44c9356 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
 import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient;
 import com.ruoyi.chargingPile.api.model.Site;
@@ -16,10 +17,7 @@
 import com.ruoyi.chargingPile.api.vo.SiteVO;
 import com.ruoyi.chargingPile.api.vo.TChargingPileVO;
 import com.ruoyi.chargingPile.domain.SiteMenu;
-import com.ruoyi.chargingPile.service.IPartnerService;
-import com.ruoyi.chargingPile.service.ISiteService;
-import com.ruoyi.chargingPile.service.TChargingGunService;
-import com.ruoyi.chargingPile.service.TChargingPileService;
+import com.ruoyi.chargingPile.service.*;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.GeodesyUtil;
 import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -69,7 +67,9 @@
 	@Resource
 	private TChargingGunService chargingGunService;
 
-	
+	@Autowired
+	private TParkingLotService parkingLotService;
+
 	
 	
 	
@@ -86,12 +86,23 @@
 	public AjaxResult<List<Site>> getSiteList1(){
 		return AjaxResult.success(siteService.list(new QueryWrapper<>()));
 	}
-	@ApiOperation(value = "获取站点分页列表", tags = {"小程序-站点管理"})
+
+	@PostMapping("/getSiteListGun")
+	@ApiOperation(value = "获取站点列表 不分页", tags = {"管理后台-接口信息使用"})
+	public AjaxResult<List<Site>> getSiteListGun(){
+		return AjaxResult.success(siteService.getSiteListGun());
+	}
+
+	@PostMapping("/getSiteListParkLot")
+	@ApiOperation(value = "获取站点列表不分页", tags = {"管理后台-停车场绑定"})
+	public AjaxResult<List<Site>> getSiteListParkLot(){
+		return AjaxResult.success(siteService.getSiteListParkLot());
+	}
+	@ApiOperation(value = "获取站点分页列表", tags = {"小程序-站点管理-首页"})
 	@PostMapping("/pageList")
 	public AjaxResult<PageInfo<SiteVO>> pageList(@Validated @RequestBody SiteQuery query){
 		return AjaxResult.success(siteService.pageList(query));
 	}
-
 	@ApiOperation(value = "获取站点详细信息", tags = {"小程序-站点管理-站点详情"})
 	@PostMapping("/getDetailById")
 	public AjaxResult<SiteDetailVO> getDetailById(@Validated @RequestBody SiteDetailQuery query){
@@ -100,7 +111,8 @@
 		Map<String, Double> distance = GeodesyUtil.getDistance(query.getLat() + "," + query.getLon(), siteDetailVO.getLat() + "," + siteDetailVO.getLon());
 		siteDetailVO.setDistance(distance.get("WGS84"));
 		// 查询绑定车牌提示文案
-		TParkingLot parkingLot = parkingLotClient.getLotBySiteId(query.getSiteId()).getData();
+		TParkingLot parkingLot = parkingLotService.getOne(Wrappers.lambdaQuery(TParkingLot.class)
+				.eq(TParkingLot::getSiteId, query.getSiteId()));
 		if(Objects.nonNull(parkingLot)){
 			siteDetailVO.setRemark(parkingLot.getRemark());
 		}
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/mapper/SiteMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
index 0305c89..1603912 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
@@ -41,4 +41,16 @@
 	 */
 	SiteDetailVO getDetailById(@Param("siteId")Integer siteId);
 
+	/**
+	 * 获取站点列表不分页 管理后台-停车场绑定
+	 * @return
+	 */
+	List<Site> getSiteListParkLot(@Param("ids")Set<Integer> ids);
+
+	/**
+	 * 获取站点列表不分页接口信息使用
+	 * @param ids
+	 * @return
+	 */
+	List<Site> getSiteListGun(@Param("ids")Set<Integer> ids);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
index 4a8dd0e..4145a21 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
@@ -13,6 +13,8 @@
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.List;
+
 /**
  * @author zhibing.pu
  * @Date 2024/8/7 19:54
@@ -73,4 +75,18 @@
 	 * @return
 	 */
 	SiteDetailVO getDetailById(Integer siteId);
+
+	/**
+	 * 获取站点列表不分页 管理后台-停车场绑定
+	 * @return
+	 */
+	List<Site> getSiteListParkLot();
+
+
+	/**
+	 * 获取站点列表不分页接口信息使用
+	 * @return
+	 */
+	List<Site> getSiteListGun();
+
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
index fe3d696..a427ee1 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -229,6 +229,50 @@
 		return this.baseMapper.getDetailById(siteId);
 	}
 
+	@Override
+	public List<Site> getSiteListParkLot() {
+		Set<Integer> ids = null;
+		//校验合作商权限
+		SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
+		Integer roleType = sysUser.getRoleType();
+		Integer objectId = sysUser.getObjectId();
+		//合作商
+		if(roleType == 2){
+			ids = partnerService.authSite(objectId, SiteMenu.SITE_LIST);
+		}else{
+			//非管理员需要根据角色和用户配置查询允许的站点数据
+			if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+				List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
+				List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
+				data.addAll(data1);
+				ids = new HashSet<>(data);
+			}
+		}
+		return this.baseMapper.getSiteListParkLot(ids);
+	}
+
+	@Override
+	public List<Site> getSiteListGun() {
+		Set<Integer> ids = null;
+		//校验合作商权限
+		SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
+		Integer roleType = sysUser.getRoleType();
+		Integer objectId = sysUser.getObjectId();
+		//合作商
+		if(roleType == 2){
+			ids = partnerService.authSite(objectId, SiteMenu.SITE_LIST);
+		}else{
+			//非管理员需要根据角色和用户配置查询允许的站点数据
+			if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+				List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
+				List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData();
+				data.addAll(data1);
+				ids = new HashSet<>(data);
+			}
+		}
+		return this.baseMapper.getSiteListGun(ids);
+	}
+
 
 	/**
 	 * 设置站点计费策略
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
index 79ce0b7..2d141d8 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
@@ -178,4 +178,32 @@
 		SELECT <include refid="Base_Column_List"></include>
 		FROM t_site WHERE id = #{siteId} AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
 	</select>
+    <select id="getSiteListParkLot" resultType="com.ruoyi.chargingPile.api.model.Site">
+		select ts.id, ts.partner_id, ts.code, ts.`name`, ts.site_type, ts.business_category, ts.status,tpl.id AS parkingLotId
+		from t_site ts
+		left join t_parking_lot tpl on (ts.id = tpl.site_id)
+		<where>
+			<if test="null != ids and ids.size()>0">
+				AND ts.id IN
+				<foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
+					#{id}
+				</foreach>
+			</if>
+			AND ts.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
+			AND tpl.id IS NULL
+		</where>
+	</select>
+	<select id="getSiteListGun" resultType="com.ruoyi.chargingPile.api.model.Site">
+		select <include refid="Base_Column_List"></include>
+		from t_site
+		<where>
+			<if test="null != ids and ids.size()>0">
+				AND id IN
+				<foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
+					#{id}
+				</foreach>
+			</if>
+			AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
+		</where>
+	</select>
 </mapper>
\ No newline at end of file
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..14971f7 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,21 @@
 
 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;
+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 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;
 
 /**
@@ -78,11 +86,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