From c3363d35b8dd42a862681d505360cd2c72d070a1 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期六, 10 八月 2024 18:11:39 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TOrderEvaluateQuery.java                         |   26 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java                |  104 ++++
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java                          |   19 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java      |   12 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java                      |   16 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TEvaluationTagMapper.java                           |    9 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TEvaluationTagServiceImpl.java                |    7 
 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                         |   18 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java                           |   11 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java                   |   94 ++-
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java                |   84 +++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TActivityStatisticsController.java              |   41 +
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java                   |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/TEvaluationTagFallbackFactory.java             |   34 +
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java                              |    4 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/TEvaluationTagVO.java                               |   15 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml                                 |    3 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/GrantCouponDto.java                            |   20 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java                           |   20 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java                   |   30 +
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java                  |   28 +
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java                         |   48 +
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/ChoiceUserListQueryDto.java                    |   19 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml                                 |   57 ++
 ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/ChargingPileClient.java        |    2 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TActivityStatisticsQuery.java                    |   32 +
 ruoyi-service/ruoyi-order/pom.xml                                                                                  |   21 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java   |    8 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java |   10 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TGrantVipServiceImpl.java                     |   23 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java      |   10 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java              |   22 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TGrantVipMapper.java                                |   19 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TGrantVipService.java                              |   17 
 ruoyi-service/ruoyi-account/pom.xml                                                                                |    6 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java                           |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java                           |   15 
 ruoyi-service/ruoyi-other/src/main/resources/mapper/TEvaluationTagMapper.xml                                       |   10 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateTagMapper.xml                              |   12 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java                         |    5 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TGrantVip.java                                   |   49 +
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderEvaluateVO.java                               |   18 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java               |   16 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java                   |   22 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java                     |   50 ++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java                           |    7 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java                     |   12 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java                   |   13 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TEvaluationTagService.java                         |    8 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java              |    8 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateTagMapper.java                        |   10 
 ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/ChargingOrderClient.java               |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/UserSiteClient.java                        |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java                |   35 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml                                 |  161 ++++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java            |    3 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java                |    9 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java                          |   42 +
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TEvaluationTagController.java                   |   21 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java             |    3 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ExchangeOrderClient.java                   |    2 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java                                    |   27 +
 63 files changed, 1,350 insertions(+), 107 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/ChoiceUserListQueryDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/ChoiceUserListQueryDto.java
new file mode 100644
index 0000000..feda3ea
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/ChoiceUserListQueryDto.java
@@ -0,0 +1,19 @@
+package com.ruoyi.account.api.dto;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("发放优惠券-选择人员列表DTO")
+public class ChoiceUserListQueryDto extends BasePage {
+    @ApiModelProperty(value = "用户手机号")
+    String userPhone;
+    @ApiModelProperty(value = "市code")
+    String cityCode;
+    @ApiModelProperty(value = "省code")
+    String provinceCode;
+    @ApiModelProperty(value = "用户标签ids 多个逗号分隔")
+    String userTagId;
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/GrantCouponDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/GrantCouponDto.java
new file mode 100644
index 0000000..645a948
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/GrantCouponDto.java
@@ -0,0 +1,20 @@
+package com.ruoyi.account.api.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("管理后台发放优惠券DTO")
+public class GrantCouponDto {
+    @ApiModelProperty("用户ids 逗号分隔")
+    private String userIds;
+    @ApiModelProperty("优惠券id")
+    private Integer couponId;
+    @ApiModelProperty("发放方式 1积分 2现金")
+    private Integer waysToObtain;
+    @ApiModelProperty("结束时间 前端忽略")
+    private LocalDateTime endTime;
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java
index 2605486..b958d1d 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UserListQueryDto.java
@@ -1,14 +1,21 @@
 package com.ruoyi.account.api.dto;
 
 import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
 public class UserListQueryDto extends BasePage {
-    private  String userPhone;
-    private  String cityCode;
-    private  Integer status;
-    private Integer userTagId;
-    private  Integer vipTypeId;
-    private   Integer companyId;
+    @ApiModelProperty(value = "用户手机号")
+    String userPhone;
+    @ApiModelProperty(value = "所在地code")
+    String cityCode;
+    @ApiModelProperty(value = "状态 1正常2冻结 3注销")
+    Integer status;
+    @ApiModelProperty(value = "用户标签id")
+    Integer userTagId;
+    @ApiModelProperty(value = "会员类型id")
+    Integer vipTypeId;
+    @ApiModelProperty(value = "单位id")
+    Integer companyId;
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
index 370b476..cec1394 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
@@ -2,7 +2,10 @@
 
 import com.ruoyi.account.api.feignClient.AppCouponClient;
 import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
+import com.ruoyi.account.api.vo.ExchangeRecordVO;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.page.PageInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -34,6 +37,11 @@
             public R<Integer> getUseCountByCouponId(Integer couponId) {
                 return null;
             }
+
+            @Override
+            public R<PageInfo<ExchangeRecordVO>> getExchangeRecordByCouponId(ExchangeRecordGoodsQuery couponId) {
+                return R.fail("根据优惠券id查询领取记录:"+throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
index a2bd046..22549a5 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
@@ -1,10 +1,13 @@
 package com.ruoyi.account.api.factory;
 
 import com.ruoyi.account.api.feignClient.AppUserClient;
+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;
 
 /**
  * 门店服务降级处理
@@ -20,7 +23,11 @@
     public AppUserClient create(Throwable throwable) {
         log.error("账户服务调用失败:{}", throwable.getMessage());
         return new AppUserClient() {
-        
+
+            @Override
+            public R<List<Long>> getUserIdsByPhone(String phone) {
+                return R.fail("根据手机号查询用户ids失败:"+throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
index 595543c..e3ea1b3 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
@@ -2,10 +2,14 @@
 
 import com.ruoyi.account.api.factory.AppCouponFallbackFactory;
 import com.ruoyi.account.api.factory.AppUserFallbackFactory;
+import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
+import com.ruoyi.account.api.vo.ExchangeRecordVO;
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.page.PageInfo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
@@ -13,7 +17,7 @@
  * 用户服务
  * @author ruoyi
  */
-@FeignClient(contextId = "AppCouponClient", value = ServiceNameConstants.CONTRACT_ACCOUNT, fallbackFactory = AppCouponFallbackFactory.class)
+@FeignClient(contextId = "AppCouponClient", value = ServiceNameConstants.ACCOUNT_SERVICE, fallbackFactory = AppCouponFallbackFactory.class)
 public interface AppCouponClient {
 
     /**
@@ -29,4 +33,11 @@
      */
     @PostMapping("/t-app-coupon/getUseCountByCouponId")
     public R<Integer> getUseCountByCouponId(Integer couponId);
+    /**
+     * 后台远程调用 根据优惠券id 查询领取记录
+     * @param couponId
+     * @return
+     */
+    @PostMapping("/t-app-coupon/getExchangeRecordByCouponId")
+    R<PageInfo<ExchangeRecordVO>> getExchangeRecordByCouponId(@RequestBody ExchangeRecordGoodsQuery couponId);
 }
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 0d96f57..8d4d1c7 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
@@ -2,14 +2,22 @@
 
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.account.api.factory.AppUserFallbackFactory;
+import com.ruoyi.common.core.domain.R;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
 
 /**
  * 用户服务
  * @author ruoyi
  */
-@FeignClient(contextId = "AppUserClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = AppUserFallbackFactory.class)
+@FeignClient(contextId = "AppUserClient", value = ServiceNameConstants.ACCOUNT_SERVICE, fallbackFactory = AppUserFallbackFactory.class)
 public interface AppUserClient {
-
+    @ApiOperation(value = "管理后台-根据手机号查询用户ids", tags = {"管理后台-活动费用统计"})
+    @PostMapping(value = "/t-app-user/user/getUserIdsByPhone")
+    public R<List<Long>> getUserIdsByPhone(@RequestParam("phone") String phone);
 
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java
index 43c0f6d..b0cf1c1 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/ExchangeRecordVO.java
@@ -11,7 +11,9 @@
 @ApiModel("管理后台 优惠券兑换记录列表返回VO")
 public class ExchangeRecordVO {
     @ApiModelProperty(value = "获得时间")
-    private String createTime;
+    private String createTime1;
+    @ApiModelProperty(value = "获得时间 前端忽略")
+    private LocalDateTime createTime;
     @ApiModelProperty(value = "获得用户")
     private String phone;
     @ApiModelProperty(value = "优惠金额")
@@ -28,9 +30,8 @@
     private String orderId;
     @ApiModelProperty(value = " 前端忽略 获取方式 1=积分兑换 2现金购买")
     private Integer waysToObtain;
-    @ApiModelProperty(value = " 是否删除0否1是")
+    @ApiModelProperty(value = "优惠券id")
+    private Integer couponId;
+    @ApiModelProperty(value = " 是否删除0否1是 前端忽略")
     private Integer delFlag;
-    @ApiModelProperty(value = "三方支付流水号 前端忽略")
-    private String serialNumber;
-
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java
index a62e139..a868183 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java
@@ -1,10 +1,14 @@
 package com.ruoyi.chargingPile.api.factory;
 
 import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
+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;
 
 /**
  * 充电桩服务降级处理
@@ -20,7 +24,11 @@
     public ChargingPileClient create(Throwable throwable) {
         log.error("充电桩调用失败:{}", throwable.getMessage());
         return new ChargingPileClient() {
-        
+
+            @Override
+            public R<List<TChargingPile>> getChargingPileBySiteId(Integer siteId) {
+                return R.fail("通过站点id获取充电桩列表失败:"+throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java
index aad471f..024bd8a 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingPileClient.java
@@ -1,18 +1,28 @@
 package com.ruoyi.chargingPile.api.feignClient;
 
 import com.ruoyi.chargingPile.api.factory.ChargingPileFallbackFactory;
+import com.ruoyi.chargingPile.api.model.TChargingPile;
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
 
 /**
  * 充电桩服务
  * @author ruoyi
  */
-@FeignClient(contextId = "ChargingPileClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = ChargingPileFallbackFactory.class)
+@FeignClient(contextId = "ChargingPileClient", value = ServiceNameConstants.CHARGINGPILE_SERVICE, fallbackFactory = ChargingPileFallbackFactory.class)
 public interface ChargingPileClient {
 
+    /**
+     * 管理后台-通过站点id获取充电桩列表 不分页
+     */
+    @ApiOperation(value = "管理后台-通过站点id获取充电桩列表 不分页")
+    @PostMapping(value = "/t-charging-pile/getChargingPileBySiteId")
+    public R<List<TChargingPile>> getChargingPileBySiteId(@RequestParam("siteId") Integer siteId);
 
 }
diff --git a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/ChargingPileClient.java b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/ChargingPileClient.java
index 462bc13..c7c1277 100644
--- a/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/ChargingPileClient.java
+++ b/ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/ChargingPileClient.java
@@ -8,7 +8,7 @@
  * 充电订单服务
  * @author ruoyi
  */
-@FeignClient(contextId = "ChargingPileClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = ChargingPileFallbackFactory.class)
+@FeignClient(contextId = "ChargingPileClient", value = ServiceNameConstants.INTEGRATION_SERVICE, fallbackFactory = ChargingPileFallbackFactory.class)
 public interface ChargingPileClient {
 
 
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
index f3f3b95..4177dd3 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
@@ -4,6 +4,8 @@
 import com.ruoyi.order.api.feignClient.ChargingOrderClient;
 import com.ruoyi.order.api.feignClient.OrderClient;
 import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.order.api.query.TActivityStatisticsQuery;
+import com.ruoyi.order.api.vo.TActivityVO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -30,8 +32,20 @@
 
             @Override
             public R<List<Integer>> getSalesCountByGoodsId(String goodsIds) {
-                return null;
+                return R.fail("根据商品订单ids查询销量:" + cause.getMessage());
             }
+
+            @Override
+            public R<List<String>> getCodeByOrderId(String goodsIds) {
+                return R.fail("根据订单ids查询现金购买优惠券订单编号:" + cause.getMessage());
+            }
+
+            @Override
+            public R<TActivityVO> activityStatistics(TActivityStatisticsQuery dto) {
+                return R.fail("查询活动费用统计失败:" + cause.getMessage());
+            }
+
+
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
index 6a48e86..6fcf8eb 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
@@ -12,7 +12,7 @@
  * 充电订单服务
  * @author ruoyi
  */
-@FeignClient(contextId = "ChargingOrderClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = ChargingOrderFallbackFactory.class)
+@FeignClient(contextId = "ChargingOrderClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = ChargingOrderFallbackFactory.class)
 public interface ChargingOrderClient {
     @PostMapping(value = "/t-charging-order/useOrderCount")
     R<Long> useOrderCount(@RequestParam Long userId);
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ExchangeOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ExchangeOrderClient.java
index ac22284..d690334 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ExchangeOrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ExchangeOrderClient.java
@@ -14,7 +14,7 @@
  * 充电订单服务
  * @author ruoyi
  */
-@FeignClient(contextId = "ChargingOrderClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = ExchangeOrderFallbackFactory.class)
+@FeignClient(contextId = "ChargingOrderClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = ExchangeOrderFallbackFactory.class)
 public interface ExchangeOrderClient {
 
 
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
index c763d67..c00f97c 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
@@ -4,8 +4,11 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.order.api.factory.ChargingOrderFallbackFactory;
 import com.ruoyi.order.api.factory.OrderFallbackFactory;
+import com.ruoyi.order.api.query.TActivityStatisticsQuery;
+import com.ruoyi.order.api.vo.TActivityVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
@@ -13,9 +16,24 @@
  * 后台订单服务
  * @author ruoyi
  */
-@FeignClient(contextId = "OrderClient", value = ServiceNameConstants.CONTRACT_ORDER, fallbackFactory = OrderFallbackFactory.class)
+@FeignClient(contextId = "OrderClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = OrderFallbackFactory.class)
 public interface OrderClient {
 
     @PostMapping("/t-exchange-order/getSalesCountByGoodsIds")
     R<List<Integer>> getSalesCountByGoodsId(String goodsIds);
+
+    /**
+     * 管理后台 根据t_app_coupon订单购买或者兑换优惠券的订单编号
+     * @param goodsIds  订单号-商品类型
+     * @return
+     */
+    @PostMapping("/t-exchange-order/getCodeByOrderId")
+    public R<List<String>> getCodeByOrderId(String goodsIds);
+    /**
+     * 管理后台 活动费用统计
+     * @param
+     * @return
+     */
+    @PostMapping(value = "/t-exchange-order/activityStatistics")
+    public R<TActivityVO> activityStatistics(@RequestBody TActivityStatisticsQuery dto);
 }
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 a48b136..3f36bcb 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
@@ -52,6 +52,10 @@
     @TableField("app_user_car_id")
     private Integer appUserCarId;
 
+    @ApiModelProperty(value = "站点 id")
+    @TableField("site_id")
+    private Integer siteId;
+
     @ApiModelProperty(value = "停车场id")
     @TableField("parking_lot_id")
     private Integer parkingLotId;
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TGrantVip.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TGrantVip.java
new file mode 100644
index 0000000..f1958b4
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TGrantVip.java
@@ -0,0 +1,49 @@
+package com.ruoyi.order.api.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.web.domain.BasePojo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2024-08-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("t_grant_vip")
+@ApiModel(value="TGrantVip对象", description="")
+public class TGrantVip extends BasePojo {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "订单编号")
+    @TableField("code")
+    private String code;
+
+    @ApiModelProperty(value = "用户id")
+    @TableField("app_user_id")
+    private Long appUserId;
+
+    @ApiModelProperty(value = "购买的会员id")
+    @TableField("vip_id")
+    private Integer vipId;
+    @ApiModelProperty(value = "购买的会员id")
+    @TableField("vip_id")
+    private BigDecimal orderAmount;
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TActivityStatisticsQuery.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TActivityStatisticsQuery.java
new file mode 100644
index 0000000..d1627a8
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TActivityStatisticsQuery.java
@@ -0,0 +1,32 @@
+package com.ruoyi.order.api.query;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "管理后台-活动费用统计Query")
+public class TActivityStatisticsQuery extends BasePage {
+    @ApiModelProperty(value = "用户电话")
+    private String phone;
+    @ApiModelProperty(value = "订单编号")
+    private String code;
+    @ApiModelProperty(value = "参与类型1优惠券 2会员抵扣 3会员活动 4赠送会员")
+    private Integer type;
+    @ApiModelProperty(value = "订单类型1充电订单 2商品订单 3会员订单 4赠送会员")
+    private Integer orderType;
+    @ApiModelProperty(value = "电站id")
+    private Integer siteId;
+    @ApiModelProperty(value = "消费时间开始(2020-01-02 00:00)")
+    private String startTime;
+    @ApiModelProperty(value = "消费时间结束(2020-01-02 00:00)")
+    private String endTime;
+
+    @ApiModelProperty(value = "用户ids 前端忽略")
+    private List<Long> userIds;
+    @ApiModelProperty(value = "充电桩ids 前端忽略")
+    private List<Integer> chargingPileIds;
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TOrderEvaluateQuery.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TOrderEvaluateQuery.java
new file mode 100644
index 0000000..baa8356
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TOrderEvaluateQuery.java
@@ -0,0 +1,26 @@
+package com.ruoyi.order.api.query;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "TOrderEvaluateQuery对象",description = "订单评价查询条件")
+public class TOrderEvaluateQuery extends BasePage {
+
+    @ApiModelProperty(value = "站点id")
+    private Integer siteId;
+
+    @ApiModelProperty(value = "订单id集合 前端忽略")
+    private List<Long> orderIds;
+
+    @ApiModelProperty(value = "标签类型 1=最新 2=有图 3=好评 4=中差评 5=其他")
+    private Integer tagType;
+
+    @ApiModelProperty(value = "标签id 标签类型为5时传输此字段")
+    private Integer tagId;
+
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java
new file mode 100644
index 0000000..f20373b
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityStatisticslVO.java
@@ -0,0 +1,48 @@
+package com.ruoyi.order.api.vo;
+
+import com.fasterxml.jackson.databind.ser.Serializers;
+import com.ruoyi.common.core.web.domain.BasePojo;
+import com.ruoyi.order.api.model.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "管理后台活动费用统计分页列表", description = "管理后台活动费用统计分页列表")
+public class TActivityStatisticslVO extends BasePojo {
+
+    @ApiModelProperty(value = "用户手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "参与类型 优惠券 会员抵扣 会员活动 赠送会员")
+    private String type;
+
+    @ApiModelProperty(value = "订单类型 充电订单 商品订单 会员订单 赠送会员")
+    private Integer orderType;
+
+    @ApiModelProperty(value = "订单编号")
+    private String code;
+    @ApiModelProperty(value = "应付/价值")
+    private BigDecimal orderAmount;
+    @ApiModelProperty(value = "优惠券抵扣")
+    private BigDecimal couponDiscountAmount;
+    @ApiModelProperty(value = "会员抵扣")
+    private BigDecimal vipDiscountAmount;
+    @ApiModelProperty(value = "实付")
+    private BigDecimal paymentAmount;
+    @ApiModelProperty(value = "消费时间")
+    private String time;
+    @ApiModelProperty(value = "消费时间")
+    private BigDecimal total;
+    @ApiModelProperty(value = "消费时间")
+    private BigDecimal coupon;
+    @ApiModelProperty(value = "消费时间")
+    private BigDecimal discount;
+    @ApiModelProperty(value = "消费时间")
+    private BigDecimal vipActivity;
+    @ApiModelProperty(value = "消费时间")
+    private BigDecimal grantVip;
+
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java
new file mode 100644
index 0000000..405d1c0
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TActivityVO.java
@@ -0,0 +1,27 @@
+package com.ruoyi.order.api.vo;
+
+import com.ruoyi.common.core.web.domain.BasePojo;
+import com.ruoyi.common.core.web.page.PageInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "TOrderAppealVO对象", description = "订单申诉VO对象")
+public class TActivityVO  {
+    @ApiModelProperty(value = "分页列表")
+    private PageInfo<TActivityStatisticslVO> list;
+    @ApiModelProperty(value = "优惠总额")
+    private BigDecimal total;
+    @ApiModelProperty(value = "优惠券总额")
+    private BigDecimal coupon;
+    @ApiModelProperty(value = "会员抵扣总额")
+    private BigDecimal discount;
+    @ApiModelProperty(value = "会员活动")
+    private BigDecimal vipActivity;
+    @ApiModelProperty(value = "赠送会员")
+    private BigDecimal grantVip;
+
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderEvaluateVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderEvaluateVO.java
new file mode 100644
index 0000000..f69bb8b
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderEvaluateVO.java
@@ -0,0 +1,18 @@
+package com.ruoyi.order.api.vo;
+
+import com.ruoyi.order.api.model.TOrderEvaluate;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "TOrderEvaluateVO对象",description = "订单评价")
+public class TOrderEvaluateVO extends TOrderEvaluate {
+
+    @ApiModelProperty(value = "用户")
+    private String name;
+
+    @ApiModelProperty(value = "头像")
+    private String avatar;
+
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/TEvaluationTagFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/TEvaluationTagFallbackFactory.java
new file mode 100644
index 0000000..c6527d9
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/TEvaluationTagFallbackFactory.java
@@ -0,0 +1,34 @@
+package com.ruoyi.other.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.feignClient.RoleSiteClient;
+import com.ruoyi.other.api.feignClient.TEvaluationTagClient;
+import com.ruoyi.other.api.vo.TEvaluationTagVO;
+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 TEvaluationTagFallbackFactory implements FallbackFactory<TEvaluationTagClient> {
+    private static final Logger log = LoggerFactory.getLogger(TEvaluationTagFallbackFactory.class);
+
+    @Override
+    public TEvaluationTagClient create(Throwable throwable) {
+        log.error("调用失败:{}", throwable.getMessage());
+        return new TEvaluationTagClient() {
+
+            @Override
+            public R<List<TEvaluationTagVO>> getTagList() {
+                return R.fail("获取标签列表:" + throwable.getMessage());
+            }
+        };
+    }
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
index 833e422..c300997 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
@@ -20,7 +20,7 @@
  * 商品服务
  * @author ruoyi
  */
-@FeignClient(contextId = "UnitClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = OtherFallbackFactory.class)
+@FeignClient(contextId = "UnitClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = OtherFallbackFactory.class)
 public interface OtherClient {
     //单位分页
     @PostMapping(value = "/t-company/unit/page")
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 82af5f7..e4dc369 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
@@ -17,7 +17,7 @@
  * @author zhibing.pu
  * @Date 2024/8/9 18:14
  */
-@FeignClient(contextId = "RoleSiteClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = RoleSiteFallbackFactory.class)
+@FeignClient(contextId = "RoleSiteClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = RoleSiteFallbackFactory.class)
 public interface RoleSiteClient {
 	
 	
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
new file mode 100644
index 0000000..92c209d
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/TEvaluationTagClient.java
@@ -0,0 +1,28 @@
+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.factory.RoleSiteFallbackFactory;
+import com.ruoyi.other.api.vo.TEvaluationTagVO;
+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;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/9 18:14
+ */
+@FeignClient(contextId = "TEvaluationTagClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = RoleSiteFallbackFactory.class)
+public interface TEvaluationTagClient {
+	
+	
+	/**
+	 * 获取标签列表
+	 * @return
+	 */
+	@PostMapping("/t-evaluation-tag/getTagList")
+	R<List<TEvaluationTagVO>> getTagList();
+}
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 790f7fa..4cd3910 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
@@ -17,7 +17,7 @@
  * @author zhibing.pu
  * @Date 2024/8/9 18:14
  */
-@FeignClient(contextId = "UserSiteClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = UserSiteFallbackFactory.class)
+@FeignClient(contextId = "UserSiteClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = UserSiteFallbackFactory.class)
 public interface UserSiteClient {
 	
 	
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/TEvaluationTagVO.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/TEvaluationTagVO.java
new file mode 100644
index 0000000..49e0e4a
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/vo/TEvaluationTagVO.java
@@ -0,0 +1,15 @@
+package com.ruoyi.other.api.vo;
+
+import com.ruoyi.other.api.domain.TEvaluationTag;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "TEvaluationTagVO对象", description = "评价标签")
+public class TEvaluationTagVO extends TEvaluationTag{
+
+    @ApiModelProperty(value = "评价标签数量")
+    private Integer tagCount;
+
+}
diff --git a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/ChargingOrderClient.java
index 628318d..d9f4240 100644
--- a/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/ChargingOrderClient.java
+++ b/ruoyi-api/ruoyi-api-payment/src/main/java/com/ruoyi/payment/api/feignClient/ChargingOrderClient.java
@@ -8,7 +8,7 @@
  * 充电订单服务
  * @author ruoyi
  */
-@FeignClient(contextId = "ChargingOrderClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = ChargingOrderFallbackFactory.class)
+@FeignClient(contextId = "ChargingOrderClient", value = ServiceNameConstants.PAYMENT_SERVICE, fallbackFactory = ChargingOrderFallbackFactory.class)
 public interface ChargingOrderClient {
 
 
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java
index b4a5e88..9cb4b54 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java
@@ -21,20 +21,10 @@
      * 文件服务的serviceid
      */
     public static final String FILE_SERVICE = "ruoyi-file";
-    /**
-     * 后台服务的serviceid
-     */
-    public static final String MANAGEMENT_SERVICE = "ruoyi-management";
-
-    /**
-     * 车辆服务的serviceid
-     */
-    public static final String VEHICLE_SERVICE = "ruoyi-vehicle";
-
-    /**
-     * 车辆合同的serviceid
-     */
-    public static final String CONTRACT_SERVICE = "ruoyi-contract";
-    public static final String CONTRACT_ORDER = "ruoyi-order";
-    public static final String CONTRACT_ACCOUNT = "ruoyi-account";
+    public static final String ACCOUNT_SERVICE = "ruoyi-account";
+    public static final String CHARGINGPILE_SERVICE = "ruoyi-chargingPile";
+    public static final String OTHER_SERVICE = "ruoyi-other";
+    public static final String ORDER_SERVICE = "ruoyi-order";
+    public static final String INTEGRATION_SERVICE = "ruoyi-integration";
+    public static final String PAYMENT_SERVICE = "ruoyi-payment";
 }
diff --git a/ruoyi-service/ruoyi-account/pom.xml b/ruoyi-service/ruoyi-account/pom.xml
index 957885b..a247e97 100644
--- a/ruoyi-service/ruoyi-account/pom.xml
+++ b/ruoyi-service/ruoyi-account/pom.xml
@@ -15,6 +15,12 @@
     </description>
 
     <dependencies>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-api-order</artifactId>
+            <version>3.6.2</version>
+            <scope>compile</scope>
+        </dependency>
         <!-- SpringCloud Alibaba Nacos -->
         <dependency>
             <groupId>com.alibaba.cloud</groupId>
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 ffc595e..b7e95ae 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
@@ -2,6 +2,7 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.account.api.dto.GrantCouponDto;
 import com.ruoyi.account.api.model.TAppCoupon;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
@@ -71,8 +72,27 @@
      * @return
      */
     @PostMapping("/getExchangeRecordByCouponId")
-    public R<PageInfo<ExchangeRecordVO>> getUseCountByCouponId(ExchangeRecordGoodsQuery couponId){
+    public R<PageInfo<ExchangeRecordVO>> getExchangeRecordByCouponId(@RequestBody ExchangeRecordGoodsQuery couponId){
         return R.ok(tAppCouponService.pagelist(couponId));
     }
+
+    /**
+     * 后台远程调用 给用户发放优惠券
+     */
+    @PostMapping("/grantCoupon")
+    public R  getExchangeRecordByCouponId(@RequestBody GrantCouponDto dto){
+        List<TAppCoupon> res = new ArrayList<>();
+        for (String s : dto.getUserIds().split(",")) {
+            TAppCoupon tAppCoupon = new TAppCoupon();
+            tAppCoupon.setAppUserId(Long.valueOf(s));
+            tAppCoupon.setCouponId(dto.getCouponId());
+            tAppCoupon.setEndTime(dto.getEndTime());
+            tAppCoupon.setWaysToObtain(dto.getWaysToObtain());
+            tAppCoupon.setStatus(1);
+            res.add(tAppCoupon);
+        }
+        tAppCouponService.saveBatch(res);
+        return R.ok();
+    }
 }
 
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 3eaf8db..fed89c4 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
@@ -1,6 +1,7 @@
 package com.ruoyi.account.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.account.api.dto.*;
@@ -63,6 +64,13 @@
 
     @Resource
     private ExchangeOrderClient exchangeOrderClient;
+
+    @ApiOperation(value = "管理后台-根据手机号查询用户ids", tags = {"管理后台-活动费用统计"})
+    @PostMapping(value = "/user/getUserIdsByPhone")
+    public R<List<Long>> getUserIdsByPhone(@RequestParam("phone") String phone) {
+
+        return R.ok(appUserService.list(new QueryWrapper<TAppUser>().like("phone",phone)).stream().map(TAppUser::getId).collect(Collectors.toList()));
+    }
     @ApiOperation(value = "单位管理列表", tags = {"用户管理-单位管理"})
     @PostMapping(value = "/unit/page")
     public R<Page<TCompany>> unitPage(@RequestBody UnitListQueryDto unitListQueryDto) {
@@ -135,6 +143,48 @@
         return R.ok(page);
     }
 
+    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券发放-选择人员")
+    @PostMapping("/choiceUser")
+    public R<Page<TAppUser>> choiceUser(@RequestBody ChoiceUserListQueryDto userListQueryDto) {
+        List<Long> userIds = new ArrayList<>();
+        //如果要筛选标签。用标签获取useids
+        if (userListQueryDto.getUserTagId() != null){
+            String[] split = userListQueryDto.getUserTagId().split(",");
+            userIds = appUserTagService.lambdaQuery().in(TAppUserTag::getUserTagId, Arrays.asList(split)).list().stream().map(TAppUserTag::getAppUserId).collect(Collectors.toList());
+        }
+        //列表查询
+        Page<TAppUser> page = appUserService.lambdaQuery()
+                .like(userListQueryDto.getUserPhone() != null && !"".equals(userListQueryDto.getUserPhone()), TAppUser::getPhone, userListQueryDto.getUserPhone())
+                .eq(userListQueryDto.getCityCode() != null && !"".equals(userListQueryDto.getCityCode()), TAppUser::getCityCode, userListQueryDto.getCityCode())
+                .eq(userListQueryDto.getProvinceCode() != null && !"".equals(userListQueryDto.getProvinceCode()), TAppUser::getProvinceCode, userListQueryDto.getProvinceCode())
+                .in(!userIds.isEmpty(),TAppUser::getId,userIds)
+                .eq(TAppUser::getStatus,1)
+                .page(Page.of(userListQueryDto.getPageCurr(), userListQueryDto.getPageSize()));
+        if (page.getRecords().isEmpty()){
+            return R.ok(page);
+        }
+        List<Integer> vipIds = new ArrayList<>();
+        vipIds = page.getRecords().stream().map(TAppUser::getVipId).collect(Collectors.toList());
+        //获取会员map
+        R<Map<Integer, String>> vipMap = otherClient.getVipMap(vipIds);
+        //循环处理
+        for (TAppUser appUser : page.getRecords()) {
+            //拿到最新的tagId
+            TAppUserTag one = appUserTagService.lambdaQuery().eq(TAppUserTag::getAppUserId, appUser.getId()).orderByDesc(TAppUserTag::getCreateTime).last("limit 1").one();
+            //设置最新的tagName
+            R<TUserTag> byIdTag = otherClient.getByIdTag(one.getUserTagId());
+            if (byIdTag.getData()!=null) {
+                appUser.setTagName(byIdTag.getData().getName());
+            }
+            //匹配vipMap的值
+            appUser.setVipName(vipMap.getData().get(appUser.getVipId()));
+            //累计充电次数
+            R<Long> useOrderCount = chargingOrderClient.useOrderCount(appUser.getId());
+            appUser.setOrderCount(useOrderCount.getData());
+
+        }
+        return R.ok(page);
+    }
 
 
     @ApiOperation(value = "用户添加编辑", tags = {"用户管理-用户列表"})
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java
index 6bc6d16..98dc39f 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java
@@ -8,7 +8,10 @@
 import com.ruoyi.account.service.TAppCouponService;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.order.api.feignClient.OrderClient;
 import com.ruoyi.other.api.domain.TCoupon;
+import org.apache.poi.ss.formula.functions.T;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
@@ -27,36 +30,36 @@
 @Service
 public class TAppCouponServiceImpl extends ServiceImpl<TAppCouponMapper, TAppCoupon> implements TAppCouponService {
 
+    @Autowired
+    private OrderClient orderClient;
     @Override
     public PageInfo<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery dto) {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         PageInfo<ExchangeRecordVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
         List<ExchangeRecordVO> list = this.baseMapper.pageList(pageInfo,dto);
-        // 现金优惠券
+        // 订单ids
         StringBuilder stringBuilder = new StringBuilder();
-        // 积分优惠券
-        StringBuilder stringBuilder1 = new StringBuilder();
-
         for (ExchangeRecordVO exchangeRecordVO : list) {
             switch (exchangeRecordVO.getWaysToObtain()){
                 case 1:
-                    if (exchangeRecordVO.getSerialNumber()!=null){
-                        stringBuilder.append(exchangeRecordVO.getSerialNumber()).append(",");
+                    if (exchangeRecordVO.getOrderId()!=null){
+                        stringBuilder.append(exchangeRecordVO.getOrderId()).append(",");
                     }else{
                         stringBuilder.append("0").append(",");
                     }
                     break;
                 case 2:
-                    if (exchangeRecordVO.getSerialNumber()!=null){
-                        stringBuilder1.append(exchangeRecordVO.getSerialNumber()).append(",");
+                    if (exchangeRecordVO.getOrderId()!=null){
+                        stringBuilder.append("-").append(exchangeRecordVO.getOrderId()).append(",");
                     }else{
-                        stringBuilder1.append("0").append(",");
+                        stringBuilder.append("-").append("0").append(",");
                     }
                     break;
             }
-
             Date date = DateUtils.toDate(exchangeRecordVO.getEndTime());
+            Date date1 = DateUtils.toDate(exchangeRecordVO.getCreateTime());
             exchangeRecordVO.setEndTime1(format.format(date));
+            exchangeRecordVO.setCreateTime1(format.format(date1));
             if (exchangeRecordVO.getStatus()==1){
                 if (exchangeRecordVO.getDelFlag() == 1){
                     // 删除了 就是已取消状态
@@ -80,18 +83,18 @@
                     exchangeRecordVO.setStatus(2);
                 }
             }
-            // 根据购买方式 查询对应订单号
         }
 
         // 去除最后一个字符
         if (StringUtils.hasText(stringBuilder.toString())){
             String string = stringBuilder.deleteCharAt(stringBuilder.length() - 1).toString();
-            // 远程调用 查询关联的现金优惠券订单编号
+            // 远程调用 查询关联的订单编号
+            List<String> data = orderClient.getCodeByOrderId(string).getData();
+            for (int i = 0; i < list.size(); i++) {
+                list.get(i).setOrderId(data.get(i));
+            }
         }
-        if (StringUtils.hasText(stringBuilder.toString())){
-            String string = stringBuilder.deleteCharAt(stringBuilder.length() - 1).toString();
-            // 远程调用 查询关联的积分兑换优惠券订单编号
-        }
+
         pageInfo.setRecords(list);
         return pageInfo;
     }
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 88c1b86..3750bc9 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
@@ -1,6 +1,7 @@
 package com.ruoyi.chargingPile.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
 import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.chargingPile.api.model.TChargingGun;
@@ -29,6 +30,7 @@
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -77,7 +79,12 @@
 		PageInfo<GetSiteListDTO> list = siteService.getSiteList(siteList);
 		return AjaxResult.success(list);
 	}
-
+	@ResponseBody
+	@GetMapping("/getSiteList1")
+	@ApiOperation(value = "获取站点列表 不分页", tags = {"管理后台-活动费用统计"})
+	public AjaxResult<List<Site>> getSiteList1(){
+		return AjaxResult.success(siteService.list(new QueryWrapper<>()));
+	}
 	@ApiOperation(value = "获取站点分页列表", tags = {"小程序-站点管理"})
 	@PostMapping("/pageList")
 	public AjaxResult<PageInfo<SiteVO>> pageList(@Validated @RequestBody SiteQuery query){
@@ -97,13 +104,14 @@
 
 	@ApiOperation(value = "获取站点下充电桩及充电枪列表", tags = {"小程序-站点管理-站点详情"})
 	@GetMapping("/getChargingGunList")
-	public AjaxResult<List<TChargingPileVO>> getChargingGunList(@RequestParam(name = "siteId",value = "站点id")Integer siteId){
-		return AjaxResult.success(chargingPileService.getChargingGunList(siteId));
+	public AjaxResult<List<TChargingPileVO>> getChargingGunList(@RequestParam(value = "siteId")@ApiParam(value = "站点id", required = true)Integer siteId,
+																@RequestParam(value = "siteId",required = false)@ApiParam(value = "类型 1=超充,2=快充,3=慢充")Integer type){
+		return AjaxResult.success(chargingPileService.getChargingGunList(siteId,type));
 	}
 
 	@ApiOperation(value = "获取站点下充电枪数量统计", tags = {"小程序-站点管理-站点详情"})
 	@GetMapping("/getChargingGunCount")
-	public AjaxResult<Map<String,ChargingGunCountVO>> getChargingGunCount(@RequestParam(name = "siteId",value = "站点id")Integer siteId){
+	public AjaxResult<Map<String,ChargingGunCountVO>> getChargingGunCount(@RequestParam(value = "siteId")@ApiParam(value = "站点id", required = true)Integer siteId){
 		return AjaxResult.success(chargingGunService.getChargingGunCount(siteId));
 	}
 
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 9698cc6..0b68161 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
@@ -7,6 +7,7 @@
 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.chargingPile.api.dto.PageChargingPileListDTO;
@@ -64,6 +65,15 @@
         return AjaxResult.ok(chargingPileService.list(Wrappers.lambdaQuery(TChargingPile.class)
                 .eq(TChargingPile::getSiteId,siteId)));
     }
+	/**
+     * 管理后台-通过站点id获取充电桩列表 不分页
+     */
+    @ApiOperation(value = "管理后台-通过站点id获取充电桩列表 不分页")
+    @PostMapping(value = "/getChargingPileBySiteId")
+    public R<List<TChargingPile>> getChargingPileBySiteId(@RequestParam("siteId") Integer siteId) {
+        return R.ok(chargingPileService.list(Wrappers.lambdaQuery(TChargingPile.class)
+                .eq(TChargingPile::getSiteId,siteId)));
+    }
 	
 	
 	
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java
index b348dd8..beb89c2 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java
@@ -73,8 +73,9 @@
 	/**
 	 * 获取站点下充电桩及充电枪列表
 	 * @param siteId
+	 * @param type
 	 * @return
 	 */
-	List<TChargingPileVO> getChargingGunList(Integer siteId);
+	List<TChargingPileVO> getChargingGunList(Integer siteId,Integer type);
 
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
index babc84f..6d771f5 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -218,14 +218,14 @@
 	}
 
 	@Override
-	public List<TChargingPileVO> getChargingGunList(Integer siteId) {
+	public List<TChargingPileVO> getChargingGunList(Integer siteId,Integer type) {
 		List<TChargingPileVO> chargingPileVOS = this.baseMapper.getChargingGunList(siteId);
 		List<TChargingGun> chargingGuns = chargingGunService.list(Wrappers.lambdaQuery(TChargingGun.class)
-				.eq(TChargingGun::getSiteId, siteId));
+				.eq(TChargingGun::getSiteId, siteId)
+				.eq(TChargingGun::getChargeMode, type));
 		// 查询充电枪信息
 		chargingPileVOS.forEach(item -> {
-			List<TChargingGun> gunList = chargingGuns.stream().filter(gun -> gun.getChargingPileId().equals(item.getId())).collect(Collectors.toList());
-			item.setChargingGunList(gunList);
+			item.setChargingGunList(chargingGuns.stream().filter(gun -> gun.getChargingPileId().equals(item.getId())).collect(Collectors.toList()));
 		});
 		return chargingPileVOS;
 	}
diff --git a/ruoyi-service/ruoyi-order/pom.xml b/ruoyi-service/ruoyi-order/pom.xml
index ea57ec9..3488348 100644
--- a/ruoyi-service/ruoyi-order/pom.xml
+++ b/ruoyi-service/ruoyi-order/pom.xml
@@ -15,7 +15,19 @@
     </description>
 
     <dependencies>
-
+        <!-- ruoyi-modules-other-api -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-api-other</artifactId>
+            <version>3.6.2</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-api-account</artifactId>
+            <version>3.6.2</version>
+            <scope>compile</scope>
+        </dependency>
         <!-- ruoyi-modules-chargingPile-api -->
         <dependency>
             <groupId>com.ruoyi</groupId>
@@ -23,6 +35,13 @@
             <version>3.6.2</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-api-chargingPile</artifactId>
+            <version>3.6.2</version>
+            <scope>compile</scope>
+        </dependency>
+
 
         <!-- SpringCloud Alibaba Nacos -->
         <dependency>
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 873af59..17afde1 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
@@ -2,23 +2,32 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+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.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.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 org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -36,6 +45,33 @@
     private TShoppingOrderService tShoppingOrderService;
     @Autowired
     private TExchangeOrderService exchangeOrderService;
+    @Autowired
+    private TChargingOrderService chargingOrderService;
+    @Autowired
+    private TVipOrderService vipOrderService;
+    @Autowired
+    private AppUserClient appUserClient;
+    @Autowired
+    private ChargingPileClient chargingPileClient;
+    /**
+     * 管理后台 活动费用统计
+     * @param
+     * @return
+     */
+    @PostMapping(value = "/activityStatistics")
+    public R<TActivityVO> activityStatistics(@RequestBody TActivityStatisticsQuery dto) {
+        if (StringUtils.hasLength(dto.getPhone())){
+            // 远程调用查询出符合条件的用户ids
+            List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData();
+            dto.setUserIds(data);
+        }
+        if (dto.getSiteId()!=null){
+            // 远程调用查询出符合条件的充电桩ids
+            List<TChargingPile> data = chargingPileClient.getChargingPileBySiteId(dto.getSiteId()).getData();
+            dto.setChargingPileIds(data.stream().map(TChargingPile::getId).collect(Collectors.toList()));
+        }
+        return R.ok(tShoppingOrderService.activityStatistics(dto));
+    }
 
     //订单详情
     @PostMapping(value = "/detail")
@@ -78,49 +114,45 @@
         return R.ok(res);
     }
     /**
-     * 管理后台 根据t_app_coupon流水号查询现金优惠券的订单编号
+     * 管理后台 根据t_app_coupon订单ids查询优惠券的订单编号
      * @param goodsIds  订单号-商品类型
      * @return
      */
-    @PostMapping("/getCodeBySerialNumber")
-    public R<List<String>> getCodeBySerialNumber(String goodsIds){
+    @PostMapping("/getCodeByOrderId")
+    public R<List<String>> getCodeByOrderId(String goodsIds){
         String[] split = goodsIds.split("-");
         List<String> strings = new ArrayList<>();
         for (String s : split) {
-            TShoppingOrder one = tShoppingOrderService.getOne(new QueryWrapper<TShoppingOrder>()
-                    .eq("order_type", 2)
-                    .eq("serial_number", s));
-            if (one != null){
-                strings.add(one.getCode());
+            if (s.contains("-")){
+                // 带有负号的是积分兑换的订单
+                TExchangeOrder one = exchangeOrderService.getOne(new QueryWrapper<TExchangeOrder>()
+                        .eq("order_type", 2)
+                        .eq("id", s.replace("-","")));
+                if (one != null){
+                    strings.add(one.getCode());
+                }else{
+                    strings.add("");
+                }
             }else{
-                strings.add("");
+                TShoppingOrder one = tShoppingOrderService.getOne(new QueryWrapper<TShoppingOrder>()
+                        .eq("order_type", 2)
+                        .eq("id", s));
+                if (one != null){
+                    strings.add(one.getCode());
+                }else{
+                    strings.add("");
+                }
             }
+
         }
 
         return R.ok(strings);
     }
     /**
-     * 管理后台 根据t_app_coupon流水号查询积分兑换优惠券的订单编号
+     * 管理后台 根据t_app_coupon订单ids查询积分兑换优惠券的订单编号
      * @param goodsIds  订单号-商品类型
      * @return
      */
-    @PostMapping("/getCodeBySerialNumberIntegral")
-    public R<List<String>> getCodeBySerialNumberIntegral(String goodsIds){
-        String[] split = goodsIds.split("-");
-        List<String> strings = new ArrayList<>();
-        for (String s : split) {
-            TExchangeOrder one = exchangeOrderService.getOne(new QueryWrapper<TExchangeOrder
-                    >()
-                    .eq("order_type", 2)
-                    .eq("serial_number", s));
-            if (one != null){
-                strings.add(one.getCode());
-            }else{
-                strings.add("");
-            }
-        }
 
-        return R.ok(strings);
-    }
 }
 
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 9b8a2d1..ec89086 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
@@ -1,9 +1,23 @@
 package com.ruoyi.order.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.order.api.query.TOrderEvaluateQuery;
+import com.ruoyi.order.api.vo.TOrderEvaluateVO;
+import com.ruoyi.order.service.TOrderEvaluateService;
+import com.ruoyi.other.api.feignClient.TEvaluationTagClient;
+import com.ruoyi.other.api.vo.TEvaluationTagVO;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
 
 /**
  * <p>
@@ -18,5 +32,21 @@
 @RequestMapping("/t-order-evaluate")
 public class TOrderEvaluateController {
 
+    @Autowired
+    private TOrderEvaluateService orderEvaluateService;
+
+
+    @ApiOperation(tags = {"小程序-订单评价"},value = "充电订单评价标签及数量查询")
+    @PostMapping(value = "/getTagCount")
+    public AjaxResult<List<TEvaluationTagVO>> getTagCount() {
+        return AjaxResult.ok(orderEvaluateService.getTagCount());
+    }
+
+    @ApiOperation(tags = {"小程序-订单评价"},value = "充电订单评价分页列表查询")
+    @PostMapping(value = "/pageList")
+    public AjaxResult<PageInfo<TOrderEvaluateVO>> pageList(@RequestBody TOrderEvaluateQuery query) {
+        return AjaxResult.ok(orderEvaluateService.getTagList(query));
+    }
+
 }
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TGrantVipMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TGrantVipMapper.java
new file mode 100644
index 0000000..0a0dc22
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TGrantVipMapper.java
@@ -0,0 +1,19 @@
+package com.ruoyi.order.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.order.api.model.TGrantVip;
+import com.ruoyi.order.api.model.TVipOrder;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2024-08-07
+ */
+@Mapper
+public interface TGrantVipMapper extends BaseMapper<TGrantVip> {
+
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java
index 8cb9c1b..b2566d5 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java
@@ -1,8 +1,16 @@
 package com.ruoyi.order.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.api.model.TOrderEvaluate;
+import com.ruoyi.order.api.query.TOrderEvaluateQuery;
+import com.ruoyi.order.api.vo.TOrderEvaluateVO;
+import com.ruoyi.other.api.vo.TEvaluationTagVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -15,4 +23,11 @@
 @Mapper
 public interface TOrderEvaluateMapper extends BaseMapper<TOrderEvaluate> {
 
+    /**
+     * 订单评价分页列表查询
+     * @param query
+     * @param pageInfo
+     * @return
+     */
+    List<TOrderEvaluateVO> pageList(@Param("query") TOrderEvaluateQuery query,@Param("pageInfo")PageInfo<TOrderEvaluateVO> pageInfo);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateTagMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateTagMapper.java
index 2d365fc..80d3c73 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateTagMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateTagMapper.java
@@ -2,7 +2,11 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.order.api.model.TOrderEvaluateTag;
+import com.ruoyi.other.api.vo.TEvaluationTagVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -15,4 +19,10 @@
 @Mapper
 public interface TOrderEvaluateTagMapper extends BaseMapper<TOrderEvaluateTag> {
 
+    /**
+     * 获取标签评价数量
+     * @param tagIds
+     * @return
+     */
+    List<TEvaluationTagVO> getCountByTagIds(@Param("tagIds") List<Integer> tagIds);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java
index db3f417..da4a11c 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java
@@ -1,8 +1,14 @@
 package com.ruoyi.order.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.api.model.TShoppingOrder;
+import com.ruoyi.order.api.query.TActivityStatisticsQuery;
+import com.ruoyi.order.api.vo.TActivityStatisticslVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -15,4 +21,5 @@
 @Mapper
 public interface TShoppingOrderMapper extends BaseMapper<TShoppingOrder> {
 
+    List<TActivityStatisticslVO> activityStatistics(@Param("pageInfo") PageInfo<TActivityStatisticslVO> pageInfo, @Param("req")TActivityStatisticsQuery dto);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TGrantVipService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TGrantVipService.java
new file mode 100644
index 0000000..6b0be52
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TGrantVipService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.order.api.model.TGrantVip;
+import com.ruoyi.order.api.model.TVipOrder;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2024-08-07
+ */
+public interface TGrantVipService extends IService<TGrantVip> {
+
+}
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 0acd943..cd76d7d 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,7 +1,13 @@
 package com.ruoyi.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.api.model.TOrderEvaluate;
+import com.ruoyi.order.api.query.TOrderEvaluateQuery;
+import com.ruoyi.order.api.vo.TOrderEvaluateVO;
+import com.ruoyi.other.api.vo.TEvaluationTagVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +19,16 @@
  */
 public interface TOrderEvaluateService extends IService<TOrderEvaluate> {
 
+    /**
+     * 获取评价标签
+     * @return
+     */
+    List<TEvaluationTagVO> getTagCount();
+
+    /**
+     * 充电订单评价分页列表查询
+     * @param query
+     * @return
+     */
+    PageInfo<TOrderEvaluateVO> getTagList(TOrderEvaluateQuery query);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java
index 2487ffd..da59889 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java
@@ -1,7 +1,11 @@
 package com.ruoyi.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.web.page.PageInfo;
 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;
 
 /**
  * <p>
@@ -13,4 +17,5 @@
  */
 public interface TShoppingOrderService extends IService<TShoppingOrder> {
 
+    TActivityVO activityStatistics(TActivityStatisticsQuery dto);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TGrantVipServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TGrantVipServiceImpl.java
new file mode 100644
index 0000000..a86c6ee
--- /dev/null
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TGrantVipServiceImpl.java
@@ -0,0 +1,23 @@
+package com.ruoyi.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.order.api.model.TGrantVip;
+import com.ruoyi.order.api.model.TVipOrder;
+import com.ruoyi.order.mapper.TGrantVipMapper;
+import com.ruoyi.order.mapper.TVipOrderMapper;
+import com.ruoyi.order.service.TGrantVipService;
+import com.ruoyi.order.service.TVipOrderService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2024-08-07
+ */
+@Service
+public class TGrantVipServiceImpl extends ServiceImpl<TGrantVipMapper, TGrantVip> implements TGrantVipService {
+
+}
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 c636186..b1b5ca5 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,10 +1,28 @@
 package com.ruoyi.order.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO;
+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.order.api.model.TOrderEvaluate;
+import com.ruoyi.order.api.query.TOrderEvaluateQuery;
+import com.ruoyi.order.api.vo.TOrderEvaluateVO;
+import com.ruoyi.order.mapper.TChargingOrderMapper;
 import com.ruoyi.order.mapper.TOrderEvaluateMapper;
+import com.ruoyi.order.mapper.TOrderEvaluateTagMapper;
 import com.ruoyi.order.service.TOrderEvaluateService;
+import com.ruoyi.other.api.feignClient.TEvaluationTagClient;
+import com.ruoyi.other.api.vo.TEvaluationTagVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -17,4 +35,70 @@
 @Service
 public class TOrderEvaluateServiceImpl extends ServiceImpl<TOrderEvaluateMapper, TOrderEvaluate> implements TOrderEvaluateService {
 
+    @Autowired
+    private TEvaluationTagClient evaluationTagClient;
+    @Autowired
+    private TOrderEvaluateTagMapper orderEvaluateTagMapper;
+    @Autowired
+    private TChargingOrderMapper chargingOrderMapper;
+    @Override
+    public List<TEvaluationTagVO> getTagCount() {
+        // 查询标签列表
+        R<List<TEvaluationTagVO>> r = evaluationTagClient.getTagList();
+        List<TEvaluationTagVO> tagList = r.getData();
+        List<Integer> tagIds = tagList.stream().map(TEvaluationTagVO::getId).collect(Collectors.toList());
+        // 统计标签使用数量
+        List<TEvaluationTagVO> counts = orderEvaluateTagMapper.getCountByTagIds(tagIds);
+        tagList.forEach(tag -> {
+            counts.forEach(count -> {
+                if (tag.getId().equals(count.getId())) {
+                    tag.setTagCount(count.getTagCount());
+                }
+            });
+        });
+        tagList = tagList.stream().sorted(Comparator.comparing(TEvaluationTagVO::getTagCount).reversed()).collect(Collectors.toList());
+        // 统计有图,好评,中差评数量
+        long imgUrlCount = this.count(Wrappers.lambdaQuery(TOrderEvaluate.class)
+                .isNotNull(TOrderEvaluate::getImgUrl));
+        packageTagCount(imgUrlCount,"有图",tagList);
+        long goodCount = this.count(Wrappers.lambdaQuery(TOrderEvaluate.class)
+                .ge(TOrderEvaluate::getMark,4));
+        packageTagCount(goodCount,"好评",tagList);
+        long badCount = this.count(Wrappers.lambdaQuery(TOrderEvaluate.class)
+                .le(TOrderEvaluate::getMark,3));
+        packageTagCount(badCount,"中差评",tagList);
+        return tagList;
+    }
+
+    @Override
+    public PageInfo<TOrderEvaluateVO> getTagList(TOrderEvaluateQuery query) {
+        PageInfo<TOrderEvaluateVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
+        // 查询站点下的所有订单
+        List<TChargingOrder> tChargingOrders = chargingOrderMapper.selectList(Wrappers.lambdaQuery(TChargingOrder.class)
+                .eq(TChargingOrder::getSiteId, query.getSiteId()));
+        if(CollectionUtils.isEmpty(tChargingOrders)){
+            return new PageInfo<>();
+        }
+        List<Long> orderIds = tChargingOrders.stream().map(TChargingOrder::getId).collect(Collectors.toList());
+        query.setOrderIds(orderIds);
+        List<TOrderEvaluateVO> list = this.baseMapper.pageList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+
+    /**
+     * 统计有图,好评,中差评数量
+     * @param count
+     * @param name
+     * @param tagList
+     */
+    private void packageTagCount(Long count,String name,List<TEvaluationTagVO> tagList){
+        if(count>0){
+            TEvaluationTagVO evaluationTagVO = new TEvaluationTagVO();
+            evaluationTagVO.setName(name);
+            evaluationTagVO.setTagCount(Integer.parseInt(String.valueOf(count)));
+            tagList.add(evaluationTagVO);
+        }
+    }
+
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
index b30e82f..ab1b1d6 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -1,10 +1,18 @@
 package com.ruoyi.order.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.web.page.PageInfo;
 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.mapper.TShoppingOrderMapper;
 import com.ruoyi.order.service.TShoppingOrderService;
 import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +25,100 @@
 @Service
 public class TShoppingOrderServiceImpl extends ServiceImpl<TShoppingOrderMapper, TShoppingOrder> implements TShoppingOrderService {
 
+    @Override
+    public TActivityVO activityStatistics(TActivityStatisticsQuery dto) {
+        TActivityVO res = new TActivityVO();
+
+
+
+        PageInfo<TActivityStatisticslVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
+        List<TActivityStatisticslVO> list = this.baseMapper.activityStatistics(pageInfo,dto);
+        list.sort((o1, o2) -> o2.getCreateTime().compareTo(o1.getCreateTime()));
+        // 优惠券金额
+        BigDecimal coupon = new BigDecimal("0");
+        // 会员抵扣金额
+        BigDecimal discount = new BigDecimal("0");
+        // 会员活动金额
+        BigDecimal vipActivity = new BigDecimal("0");
+        // 赠送会员
+        BigDecimal grantVip = new BigDecimal("0");
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        for (TActivityStatisticslVO tActivityStatisticslVO : list) {
+            // 判断享有了哪些类型
+            switch (tActivityStatisticslVO.getOrderType()){
+                case 1:
+                    StringBuilder stringBuilder = new StringBuilder();
+
+                    // 充电订单 优惠券金额大于0
+                    if (tActivityStatisticslVO.getCouponDiscountAmount()!=null
+                            &&
+                        (tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
+                        coupon = coupon.add(tActivityStatisticslVO.getCouponDiscountAmount());
+                        stringBuilder.append("优惠券抵扣").append("+");
+                }
+                    if (tActivityStatisticslVO.getVipDiscountAmount()!=null
+                            &&
+                            (tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
+                        discount = discount.add(tActivityStatisticslVO.getVipDiscountAmount());
+                        stringBuilder.append("会员抵扣").append("+");
+                    }
+                    stringBuilder.deleteCharAt(stringBuilder.length()-1);
+                    tActivityStatisticslVO.setType(stringBuilder.toString());
+                    tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
+                    break;
+                case 2:
+                    StringBuilder stringBuilder1 = new StringBuilder();
+
+                    // 购物订单 优惠券金额大于0
+                    if (tActivityStatisticslVO.getCouponDiscountAmount()!=null
+                            &&
+                            (tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
+                        coupon = coupon.add(tActivityStatisticslVO.getCouponDiscountAmount());
+                        stringBuilder1.append("优惠券抵扣").append("+");
+                    }
+                    if (tActivityStatisticslVO.getVipDiscountAmount()!=null
+                            &&
+                            (tActivityStatisticslVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
+                        discount = discount.add(tActivityStatisticslVO.getVipDiscountAmount());
+                        stringBuilder1.append("会员抵扣").append("+");
+                    }
+                    stringBuilder1.deleteCharAt(stringBuilder1.length()-1);
+                    tActivityStatisticslVO.setType(stringBuilder1.toString());
+                    tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
+                    break;
+                case 3:
+                    // 会员订单 优惠金额大于0
+                    if (tActivityStatisticslVO.getVipDiscountAmount()!=null
+                            &&
+                            (tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
+                        vipActivity = vipActivity.add(tActivityStatisticslVO.getVipDiscountAmount());
+                    }
+                    tActivityStatisticslVO.setType("会员活动");
+                    tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
+                    break;
+                case 4:
+                    // 赠送会员订单 如果支付金额为0 那么就是后台赠送的会员
+                    if (tActivityStatisticslVO.getPaymentAmount().compareTo(BigDecimal.ZERO)==0){
+                        grantVip = grantVip.add(tActivityStatisticslVO.getOrderAmount());
+                        tActivityStatisticslVO.setType("赠送会员");
+                        tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
+                    }else{
+                        // 赠送
+                        grantVip = grantVip.add(tActivityStatisticslVO.getVipDiscountAmount());
+                        tActivityStatisticslVO.setType("赠送会员");
+                        tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
+                    }
+                    break;
+            }
+        }
+        pageInfo.setRecords(list);
+        res.setList(pageInfo);
+        res.setTotal(coupon.add(discount).add(vipActivity).add(grantVip));
+        res.setCoupon(coupon);
+        res.setDiscount(discount);
+        res.setVipActivity(vipActivity);
+        res.setGrantVip(grantVip);
+        return res;
+    }
 }
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 5d95538..210207a 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
@@ -10,6 +10,7 @@
         <result column="order_classification" property="orderClassification" />
         <result column="app_user_id" property="appUserId" />
         <result column="app_user_car_id" property="appUserCarId" />
+        <result column="site_id" property="siteId" />
         <result column="parking_lot_id" property="parkingLotId" />
         <result column="charging_pile_id" property="chargingPileId" />
         <result column="charging_gun_id" property="chargingGunId" />
@@ -37,7 +38,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, code, order_type, order_classification, app_user_id, app_user_car_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
+        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>
 
 </mapper>
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml
index 8b88832..66e30e6 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml
@@ -21,5 +21,62 @@
     <sql id="Base_Column_List">
         id, order_type, order_id, app_user_id, mark, content, img_url, evaluation_response, create_time, response_time, del_flag
     </sql>
+    <select id="pageList" resultType="com.ruoyi.order.api.vo.TOrderEvaluateVO">
+        select id, order_type, order_id, app_user_id, mark, content, img_url, evaluation_response,
+               create_time, response_time, del_flag
+        from t_order_evaluate where id in
+        (select toe.id
+        from t_order_evaluate toe
+        left join t_order_evaluate_tag toet on toe.id = toet.order_evaluate_id
+        <where>
+            <if test="query.orderIds != null and query.orderIds.size()>0">
+                and toe.order_id in
+                <foreach collection="query.orderIds" item="orderId" open="(" separator="," close=")">
+                    #{orderId}
+                </foreach>
+            </if>
+            <if test="query.tagType != null">
+                <choose>
+                    <when test="query.tagType == 2">
+                        AND toe.img_url IS NOT NULL
+                    </when>
+                    <when test="query.tagType == 3">
+                        AND toe.mark &gt;= 4
+                    </when>
+                    <when test="query.tagType == 4">
+                        AND toe.mark &lt;= 3
+                    </when>
+                    <when test="query.tagType == 5">
+                        AND toet.evaluation_tag_id = #{query.tagId}
+                    </when>
+                </choose>
+            </if>
+            AND toe.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
+        </where>
+        GROUP BY toe.id)
+        <if test="query.tagType != null">
+            <choose>
+                <when test="query.tagType == 1">
+                    ORDER BY create_time DESC
+                </when>
+                <otherwise>
+                    ORDER BY
+                    CASE
+                    WHEN img_url IS NOT NULL THEN 0
+                    ELSE 1
+                    END ASC,
+                    create_time DESC;
+                </otherwise>
+            </choose>
+        </if>
+        <if test="query.tagType == null">
+            ORDER BY
+            CASE
+            WHEN img_url IS NOT NULL THEN 0
+            ELSE 1
+            END ASC,
+            create_time DESC;
+        </if>
+    </select>
 
 </mapper>
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateTagMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateTagMapper.xml
index d48e938..d1ee724 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateTagMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateTagMapper.xml
@@ -13,5 +13,17 @@
     <sql id="Base_Column_List">
         id, order_evaluate_id, evaluation_tag_id
     </sql>
+    <select id="getCountByTagIds" resultType="com.ruoyi.other.api.vo.TEvaluationTagVO">
+        SELECT  evaluation_tag_id,count(id) AS tagCount FROM t_order_evaluate_tag
+        <where> 
+             <if test="tagIds != null and tagIds.size() > 0">
+                AND evaluation_tag_id IN
+                 <foreach collection="tagIds" item="tagId" open="(" separator="," close=")">
+                     #{tagId}
+                 </foreach>
+             </if>
+        </where>
+        GROUP BY evaluation_tag_id
+    </select>
 
 </mapper>
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
index 9a6103f..f5636c2 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
@@ -43,5 +43,166 @@
     <sql id="Base_Column_List">
         id, code, app_user_id, order_type, goods_id, coupon_id, purchase_quantity, app_user_address_id, order_amount, app_coupon_id, coupon_discount_amount, vip_discount, vip_discount_amount, payment_amount, payment_status, payment_type, serial_number, remark, status, express_company, express_number, consigner_id, consigner_time, receiving_time, cancellation_time, cancellation_id, refund_code, refund_amount, refund_status, refund_serial_number, refund_time, create_time, del_flag
     </sql>
+    <select id="activityStatistics" resultType="com.ruoyi.order.api.vo.TActivityStatisticslVO">
+        <if test="req.orderType == null or req.orderType == 1">
+        <if test="req.type == null or req.type == 1 or req.type == 2">
+        select t1.code ,t1.order_amount as orderAmount,
+               t1.coupon_discount_amount as couponDiscountAmount,
+               t1.vip_discount_amount as vipDiscountAmount,
+               t1.payment_amount as paymentAmount,
+               t1.create_time as createTime,
+               1 as orderType
+            from t_charging_order t1
+            where 1 = 1
+            <if test="null != req.code and req.code!=''">
+                and t1.code  LIKE CONCAT('%',#{req.code},'%')
+            </if>
+            <if test="req.type != null and req.type != '' and req.type == 1">
+                and t1.coupon_discount_amount  != null and t1.coupon_discount_amount  != 0
+            </if>
+            <if test="req.type != null and req.type != '' and req.type == 2">
+                and t1.vip_discount_amount  != null and t1.vip_discount_amount  != 0
+            </if>
+            <if test="null != req.userIds and req.userIds.size()>0" >
+                and t1.app_user_id in
+                <foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="null != req.chargingPileIds and req.chargingPileIds.size()>0" >
+                and t1.charging_pile_id in
+                <foreach collection="req.chargingPileIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="req.endTime != null and req.endTime != '' and req.startTime != null and req.startTime != ''">
+                AND (t1.create_time between CONCAT(#{req.startTime},':00') and CONCAT(#{req.endTime},':59'))
+            </if>
+        and t1.recharge_payment_status =2
+        and t1.refund_status !=2
+        </if>
+        </if>
+        <if test="req.orderType == null or req.orderType == 2">
+        <if test="req.type == null or req.type == 1 or req.type == 2">
+            union all
+            select t2.code ,t2.order_amount as orderAmount,
+            t2.coupon_discount_amount as couponDiscountAmount,
+            t2.vip_discount_amount as vipDiscountAmount,
+            t2.payment_amount as paymentAmount,
+            t2.create_time as createTime,
+            2 as orderType
+            from t_shopping_order t2
+            where 1 = 1
+            <if test="null != req.code and req.code!=''">
+                and t2.code  LIKE CONCAT('%',#{req.code},'%')
+            </if>
+            <if test="req.type != null and req.type != '' and req.type == 1">
+                and t2.coupon_discount_amount  != null and t1.coupon_discount_amount  != 0
+            </if>
+            <if test="req.type != null and req.type != '' and req.type == 2">
+                and t2.vip_discount_amount  != null and t1.vip_discount_amount  != 0
+            </if>
+            <if test="req.type == null ">
+                and t2.vip_discount_amount  != null and t1.vip_discount_amount  != 0 and t2.coupon_discount_amount  != null and t1.coupon_discount_amount  != 0
+            </if>
+            <if test="null != req.userIds and req.userIds.size()>0" >
+                and t2.app_user_id in
+                <foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="req.endTime != null and req.endTime != '' and req.startTime != null and req.startTime != ''">
+                AND (t2.create_time between CONCAT(#{req.startTime},':00') and CONCAT(#{req.endTime},':59'))
+            </if>
+            and t2.refund_status !=2
+            and t2.payment_status =2
+        </if>
+        </if>
+        <if test="req.orderType == null or req.orderType == 3">
+            <if test="req.type == null or req.type == 3">
+                union all
+                select t3.code ,t3.order_amount as orderAmount,
+                0 as couponDiscountAmount,
+                t3.discount_amount as vipDiscountAmount,
+                t3.payment_amount as paymentAmount,
+                t3.create_time as createTime,
+                3 as orderType
+                from t_vip_order t3
+                where 1 = 1
+                and t3.type ==1
+                <if test="null != req.code and req.code!=''">
+                    and t3.code  LIKE CONCAT('%',#{req.code},'%')
+                </if>
+                <if test="req.type == null ">
+                    and t3.discount_amount  != null and t3.discount_amount  != 0
+                </if>
+                <if test="null != req.userIds and req.userIds.size()>0" >
+                    and t3.app_user_id in
+                    <foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")">
+                        #{item}
+                    </foreach>
+                </if>
+                <if test="req.endTime != null and req.endTime != '' and req.startTime != null and req.startTime != ''">
+                    AND (t3.create_time between CONCAT(#{req.startTime},':00') and CONCAT(#{req.endTime},':59'))
+                </if>
+                and t3.payment_status =2
+            </if>
+        </if>
+        <if test="req.orderType == null or req.orderType == 4">
+            <if test="req.type == null or req.type == 4">
+                union all
+                select t4.code ,t4.order_amount as orderAmount,
+                0 as couponDiscountAmount,
+                t4.discount_amount as vipDiscountAmount,
+                t4.payment_amount as paymentAmount,
+                t4.create_time as createTime,
+                4 as orderType
+                from t_vip_order t4
+                where 1 = 1
+                and t4.type =2
+                <if test="null != req.code and req.code!=''">
+                    and t4.code  LIKE CONCAT('%',#{req.code},'%')
+                </if>
+                <if test="req.type == null ">
+                    and t4.discount_amount  != null and t4.discount_amount  != 0
+                </if>
+                <if test="null != req.userIds and req.userIds.size()>0" >
+                    and t4.app_user_id in
+                    <foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")">
+                        #{item}
+                    </foreach>
+                </if>
+                <if test="req.endTime != null and req.endTime != '' and req.startTime != null and req.startTime != ''">
+                    AND (t4.create_time between CONCAT(#{req.startTime},':00') and CONCAT(#{req.endTime},':59'))
+                </if>
+                and t4.payment_status =2
+            </if>
+        </if>
+        <if test="req.orderType == null or req.orderType == 4">
+            <if test="req.type == null or req.type == 4">
+                union all
+                select t5.code ,t5.order_amount as orderAmount,
+                0 as couponDiscountAmount,
+                0 as vipDiscountAmount,
+                0 as paymentAmount,
+                t5.create_time as createTime,
+                4 as orderType
+                from t_grant_vip t5
+                where 1 = 1
+                <if test="null != req.code and req.code!=''">
+                    and t5.code  LIKE CONCAT('%',#{req.code},'%')
+                </if>
+                <if test="null != req.userIds and req.userIds.size()>0" >
+                    and t5.app_user_id in
+                    <foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")">
+                        #{item}
+                    </foreach>
+                </if>
+                <if test="req.endTime != null and req.endTime != '' and req.startTime != null and req.startTime != ''">
+                    AND (t5.create_time between CONCAT(#{req.startTime},':00') and CONCAT(#{req.endTime},':59'))
+                </if>
+            </if>
+        </if>
+    </select>
 
 </mapper>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TActivityStatisticsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TActivityStatisticsController.java
new file mode 100644
index 0000000..ee8b0b7
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TActivityStatisticsController.java
@@ -0,0 +1,41 @@
+package com.ruoyi.other.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.api.model.TAppUser;
+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.order.api.feignClient.OrderClient;
+import com.ruoyi.order.api.query.TActivityStatisticsQuery;
+import com.ruoyi.order.api.vo.TActivityStatisticslVO;
+import com.ruoyi.order.api.vo.TActivityVO;
+import com.ruoyi.other.api.domain.TActivity;
+import com.ruoyi.other.api.domain.TCoupon;
+import com.ruoyi.other.api.dto.AdvertisingDTO;
+import com.ruoyi.other.query.CouponQuery;
+import com.ruoyi.other.service.TActivityService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ *  管理后台活动费用统计
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-08-06
+ */
+@RestController
+@RequestMapping("/activity")
+public class TActivityStatisticsController {
+    @Autowired
+    private OrderClient orderClient;
+    @ApiOperation(tags = {"管理后台-活动费用统计"},value = "管理后台活动费用统计")
+    @PostMapping(value = "/pageList")
+    public AjaxResult<TActivityVO> pageList(@RequestBody TActivityStatisticsQuery query) {
+        return AjaxResult.ok(orderClient.activityStatistics(query).getData());
+    }
+}
+
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 7462917..61ac718 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
@@ -1,6 +1,7 @@
 package com.ruoyi.other.controller;
 
 
+import com.ruoyi.account.api.dto.GrantCouponDto;
 import com.ruoyi.account.api.feignClient.AppCouponClient;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
@@ -13,9 +14,17 @@
 import com.ruoyi.other.service.TActivityService;
 import com.ruoyi.other.service.TCouponService;
 import com.ruoyi.other.service.TGoodsService;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Objects;
 
 /**
  * <p>
@@ -64,8 +73,37 @@
     @PostMapping("/exchangeRecord")
     @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券查看详情-兑换记录")
     public AjaxResult<PageInfo<ExchangeRecordVO>> exchangeRecord(@RequestBody ExchangeRecordGoodsQuery dto) {
-
-        return AjaxResult.ok(null);
+        PageInfo<ExchangeRecordVO> data = appCouponClient.getExchangeRecordByCouponId(dto).getData();
+        List<ExchangeRecordVO> records = data.getRecords();
+        for (ExchangeRecordVO record : records) {
+            TCoupon byId = tCouponService.getById(record.getCouponId());
+            if (byId!=null){
+                    record.setDiscountAmount("¥"+byId.getDiscountAmount());
+                if (Objects.equals(byId.getMeetTheConditions(), BigDecimal.ZERO)){
+                    record.setMeetTheConditions("无门槛");
+                }else{
+                    record.setMeetTheConditions("满"+byId.getMeetTheConditions()+"元可用");
+                }
+            }
+        }
+        return AjaxResult.ok(data);
+    }
+    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "发放优惠券")
+    @GetMapping(value = "/pageList")
+    public AjaxResult pageList(@RequestBody GrantCouponDto dto) {
+        TCoupon byId = tCouponService.getById(dto.getCouponId());
+        Integer waysToObtain = byId.getWaysToObtain();
+        dto.setWaysToObtain(waysToObtain);
+        switch (byId.getValidityPeriodMode()){
+            case 1:
+                dto.setEndTime(byId.getEndTime());
+                break;
+            case 2:
+                dto.setEndTime(LocalDateTime.now().plusDays(byId.getDays()));
+                break;
+        }
+        // 远程送优惠券
+        return AjaxResult.success();
     }
     @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券列表分页查询")
     @PostMapping(value = "/pageList")
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 1193555..261869b 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,9 +1,18 @@
 package com.ruoyi.other.controller;
 
 
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.other.api.domain.TEvaluationTag;
+import com.ruoyi.other.api.vo.TEvaluationTagVO;
+import com.ruoyi.other.service.TEvaluationTagService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
 
 /**
  * <p>
@@ -17,5 +26,17 @@
 @RequestMapping("/t-evaluation-tag")
 public class TEvaluationTagController {
 
+    private final TEvaluationTagService evaluationTagService;
+
+    @Autowired
+    public TEvaluationTagController(TEvaluationTagService evaluationTagService) {
+        this.evaluationTagService = evaluationTagService;
+    }
+
+    @PostMapping("/getTagList")
+    public R<List<TEvaluationTagVO>> getTagList() {
+        return R.ok(evaluationTagService.getTagList());
+    }
+
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java
index cc3de1a..a78e805 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java
@@ -6,6 +6,7 @@
 import com.ruoyi.other.api.domain.TSystemConfiguration;
 import com.ruoyi.other.service.TSystemConfigurationService;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -37,7 +38,7 @@
      */
     @ApiOperation(tags = {"小程序-系统设置"},value = "联系客服")
     @GetMapping(value = "/getDetailById")
-    public AjaxResult<TSystemConfiguration> getDetailById(@RequestParam(name = "type",value = "1=客服信息,2=系统设置") Integer type) {
+    public AjaxResult<TSystemConfiguration> getDetailById(@RequestParam(name = "type")@ApiParam(value = "1=客服信息,2=系统设置") Integer type) {
         return AjaxResult.ok(systemConfigurationService.getOne(Wrappers.lambdaQuery(TSystemConfiguration.class)
                 .eq(TSystemConfiguration::getType, type)));
     }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TEvaluationTagMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TEvaluationTagMapper.java
index 986b666..64e26b7 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TEvaluationTagMapper.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TEvaluationTagMapper.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.other.api.domain.TEvaluationTag;
+import com.ruoyi.other.api.vo.TEvaluationTagVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,10 @@
  */
 public interface TEvaluationTagMapper extends BaseMapper<TEvaluationTag> {
 
+    /**
+     * 获取评价标签列表
+     * @return
+     */
+    List<TEvaluationTagVO> getTagList();
+
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TEvaluationTagService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TEvaluationTagService.java
index 074149f..5a58a01 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TEvaluationTagService.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TEvaluationTagService.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.other.api.domain.TEvaluationTag;
+import com.ruoyi.other.api.vo.TEvaluationTagVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,9 @@
  */
 public interface TEvaluationTagService extends IService<TEvaluationTag> {
 
+    /**
+     * 查询标签列表
+     * @return
+     */
+    List<TEvaluationTagVO> getTagList();
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TEvaluationTagServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TEvaluationTagServiceImpl.java
index 459f90b..6b03b9b 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TEvaluationTagServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TEvaluationTagServiceImpl.java
@@ -1,10 +1,13 @@
 package com.ruoyi.other.service.impl;
 
 import com.ruoyi.other.api.domain.TEvaluationTag;
+import com.ruoyi.other.api.vo.TEvaluationTagVO;
 import com.ruoyi.other.mapper.TEvaluationTagMapper;
 import com.ruoyi.other.service.TEvaluationTagService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +20,8 @@
 @Service
 public class TEvaluationTagServiceImpl extends ServiceImpl<TEvaluationTagMapper, TEvaluationTag> implements TEvaluationTagService {
 
+    @Override
+    public List<TEvaluationTagVO> getTagCount() {
+        return this.baseMapper.getTagList();
+    }
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/TEvaluationTagMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/TEvaluationTagMapper.xml
index c39aee9..96c8e5f 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/TEvaluationTagMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/TEvaluationTagMapper.xml
@@ -5,15 +5,19 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.ruoyi.other.api.domain.TEvaluationTag">
         <id column="id" property="id" />
-        <result column="name" property="name" />
-        <result column="type" property="type" />
+        <result column="`name`" property="name" />
+        <result column="`type`" property="type" />
         <result column="create_time" property="createTime" />
         <result column="del_flag" property="delFlag" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, name, type, create_time, del_flag
+        id, `name`, `type`, create_time, del_flag
     </sql>
+    <select id="getTagList" resultType="com.ruoyi.other.api.vo.TEvaluationTagVO">
+        select <include refid="Base_Column_List"></include>
+        from t_evaluation_tag where del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} ORDER BY `type`
+    </select>
 
 </mapper>

--
Gitblit v1.7.1