From a17f15e196a89ab8a35fc8344384a6996c0864aa Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 12 八月 2024 17:02:37 +0800
Subject: [PATCH] 电站详情完成

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java                                     |    7 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java                       |   36 +++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java |   69 ++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TEvaluationTagServiceImpl.java                          |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/VipClient.java                                       |   27 ++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java                                   |    8 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java                                       |   27 ++
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java                                        |    4 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java                          |   45 ++++
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderEvaluateVO.java                                         |    9 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java                         |   15 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java                  |   11 +
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java                               |   12 +
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/VipFallbackFactory.java                                  |   33 +++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java    |   30 ++
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java                               |    9 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java             |   36 +++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java                             |   13 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java          |   16 +
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/SiteDetailEvaluateVO.java                                     |   24 ++
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java                            |   31 +++
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StrategyPriceVO.java                            |   26 ++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java                            |   22 ++
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml                                           |   15 +
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TVip.java                                                 |   15 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java                          |    6 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java                  |   29 ++
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java                        |    2 
 28 files changed, 551 insertions(+), 28 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java
new file mode 100644
index 0000000..7a5d7e1
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java
@@ -0,0 +1,36 @@
+package com.ruoyi.account.api.factory;
+
+import com.ruoyi.account.api.feignClient.AppUserCarClient;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserCar;
+import com.ruoyi.common.core.domain.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 门店服务降级处理
+ * 
+ * @author ruoyi
+ */
+@Component
+public class AppUserCarFallbackFactory implements FallbackFactory<AppUserCarClient>
+{
+    private static final Logger log = LoggerFactory.getLogger(AppUserCarFallbackFactory.class);
+
+    @Override
+    public AppUserCarClient create(Throwable throwable) {
+        log.error("用户车辆服务调用失败:{}", throwable.getMessage());
+        return new AppUserCarClient() {
+
+            @Override
+            public R<List<TAppUserCar>> getCarByIds(List<Integer> carIds) {
+                return R.fail("根据用户车辆id查询车辆信息失败:"+throwable.getMessage());
+            }
+        };
+    }
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
index 22549a5..39cc03a 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,6 +1,7 @@
 package com.ruoyi.account.api.factory;
 
 import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
 import com.ruoyi.common.core.domain.R;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -28,6 +29,11 @@
             public R<List<Long>> getUserIdsByPhone(String phone) {
                 return R.fail("根据手机号查询用户ids失败:"+throwable.getMessage());
             }
+
+            @Override
+            public R<List<TAppUser>> getUserByIds(List<Long> appUserIds) {
+                return R.fail("根据用户id查询用户信息失败:"+throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java
new file mode 100644
index 0000000..82bb2c5
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java
@@ -0,0 +1,31 @@
+package com.ruoyi.account.api.feignClient;
+
+import com.ruoyi.account.api.factory.AppUserCarFallbackFactory;
+import com.ruoyi.account.api.factory.AppUserFallbackFactory;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserCar;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * 用户车辆服务
+ * @author ruoyi
+ */
+@FeignClient(contextId = "AppUserCarClient", value = ServiceNameConstants.ACCOUNT_SERVICE, fallbackFactory = AppUserCarFallbackFactory.class)
+public interface AppUserCarClient {
+
+    /**
+     * 根据用户车辆id查询车辆信息
+     * @param carIds 车辆id集合
+     * @return
+     */
+    @PostMapping(value = "/t-app-user-car/getCarByIds")
+    public R<List<TAppUserCar>> getCarByIds(@RequestBody List<Integer> carIds);
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
index 8d4d1c7..2fe0e07 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
@@ -1,11 +1,13 @@
 package com.ruoyi.account.api.feignClient;
 
+import com.ruoyi.account.api.model.TAppUser;
 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.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
@@ -20,4 +22,11 @@
     @PostMapping(value = "/t-app-user/user/getUserIdsByPhone")
     public R<List<Long>> getUserIdsByPhone(@RequestParam("phone") String phone);
 
+    /**
+     * 根据用户id查询用户信息
+     * @param appUserIds 用户id集合
+     * @return
+     */
+    @PostMapping(value = "/t-app-user/user/getUserByIds")
+    public R<List<TAppUser>> getUserByIds(@RequestBody List<Long> appUserIds);
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java
new file mode 100644
index 0000000..20090c6
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java
@@ -0,0 +1,36 @@
+package com.ruoyi.chargingPile.api.factory;
+
+import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
+import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient;
+import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.chargingPile.api.model.TParkingLot;
+import com.ruoyi.common.core.domain.R;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 停车场服务降级处理
+ * 
+ * @author ruoyi
+ */
+@Component
+public class ParkingLotFallbackFactory implements FallbackFactory<ParkingLotClient>
+{
+    private static final Logger log = LoggerFactory.getLogger(ParkingLotFallbackFactory.class);
+
+    @Override
+    public ParkingLotClient create(Throwable throwable) {
+        log.error("停车场调用失败:{}", throwable.getMessage());
+        return new ParkingLotClient() {
+
+            @Override
+            public R<TParkingLot> getLotBySiteId(Integer siteId) {
+                return R.fail("通过站点id查询停车场信息调用失败:" + throwable.getMessage());
+            }
+        };
+    }
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java
new file mode 100644
index 0000000..0312dd8
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java
@@ -0,0 +1,29 @@
+package com.ruoyi.chargingPile.api.feignClient;
+
+import com.ruoyi.chargingPile.api.factory.ParkingLotFallbackFactory;
+import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.chargingPile.api.model.TParkingLot;
+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.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * 停车场服务
+ * @author ruoyi
+ */
+@FeignClient(contextId = "ParkingLotClient", value = ServiceNameConstants.CHARGINGPILE_SERVICE, fallbackFactory = ParkingLotFallbackFactory.class)
+public interface ParkingLotClient {
+
+    /**
+     * 通过站点id查询停车场信息
+     */
+    @GetMapping(value = "/t-parking-lot/getLotBySiteId")
+    public R<TParkingLot> getLotBySiteId(@RequestParam("siteId") Integer siteId);
+
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java
index 92fb25a..ecedc5b 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java
@@ -14,7 +14,7 @@
  * @author zhibing.pu
  * @Date 2024/8/10 14:38
  */
-@FeignClient(contextId = "SiteClient", value = ServiceNameConstants.CONTRACT_SERVICE, fallbackFactory = SiteFallbackFactory.class)
+@FeignClient(contextId = "SiteClient", value = ServiceNameConstants.CHARGINGPILE_SERVICE, fallbackFactory = SiteFallbackFactory.class)
 public interface SiteClient {
 	
 	/**
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StrategyPriceVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StrategyPriceVO.java
new file mode 100644
index 0000000..2c026bc
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/StrategyPriceVO.java
@@ -0,0 +1,26 @@
+package com.ruoyi.chargingPile.api.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "StrategyPriceVO对象",description = "价格说明金额返回,会员开通金额说明")
+public class StrategyPriceVO implements Serializable {
+
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discountAmount;
+
+    @ApiModelProperty(value = "最高优惠金额")
+    private BigDecimal maxDiscountAmount;
+
+    @ApiModelProperty(value = "会员起步价")
+    private BigDecimal vipStartPrice;
+
+    @ApiModelProperty(value = "服务费折扣")
+    private BigDecimal serviceFeeDiscount;
+
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java
index 8222276..c44dd0e 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TOrderEvaluate.java
@@ -43,6 +43,10 @@
     @TableField("app_user_id")
     private Long appUserId;
 
+    @ApiModelProperty(value = "充电车辆 id")
+    @TableField("app_user_car_id")
+    private Integer appUserCarId;
+
     @ApiModelProperty(value = "评分")
     @TableField("mark")
     private Integer mark;
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/SiteDetailEvaluateVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/SiteDetailEvaluateVO.java
new file mode 100644
index 0000000..75770da
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/SiteDetailEvaluateVO.java
@@ -0,0 +1,24 @@
+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;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@ApiModel(value = "SiteDetailEvaluateVO对象",description = "站点详情订单评价")
+public class SiteDetailEvaluateVO extends TOrderEvaluate {
+
+    @ApiModelProperty(value = "好评率")
+    private BigDecimal reviewRate;
+
+    @ApiModelProperty(value = "评价数")
+    private Integer evaluateCount;
+
+    @ApiModelProperty(value = "评价列表取三条")
+    private List<TOrderEvaluateVO> orderEvaluateVOS;
+
+}
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
index f69bb8b..769dd96 100644
--- 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
@@ -1,9 +1,12 @@
 package com.ruoyi.order.api.vo;
 
 import com.ruoyi.order.api.model.TOrderEvaluate;
+import com.ruoyi.order.api.model.TOrderEvaluateTag;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.util.List;
 
 @Data
 @ApiModel(value = "TOrderEvaluateVO对象",description = "订单评价")
@@ -15,4 +18,10 @@
     @ApiModelProperty(value = "头像")
     private String avatar;
 
+    @ApiModelProperty(value = "车辆品牌名称")
+    private String carName;
+
+    @ApiModelProperty(value = "评价标签列表")
+    private List<TOrderEvaluateTag> orderEvaluateTags;
+
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TVip.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TVip.java
index f25f364..bad9133 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TVip.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TVip.java
@@ -8,6 +8,7 @@
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -40,7 +41,7 @@
 
     @ApiModelProperty(value = "月卡价格")
     @TableField("monthly_card")
-    private Double monthlyCard;
+    private BigDecimal monthlyCard;
 
     @ApiModelProperty(value = "月卡显示(0=否,1=是)")
     @TableField("monthly_card_reveal")
@@ -48,7 +49,7 @@
 
     @ApiModelProperty(value = "月卡折扣")
     @TableField("monthly_card_discount")
-    private Double monthlyCardDiscount;
+    private BigDecimal monthlyCardDiscount;
 
     @ApiModelProperty(value = "月卡折扣开始时间")
     @TableField("monthly_card_discount_start")
@@ -64,7 +65,7 @@
 
     @ApiModelProperty(value = "季卡价格")
     @TableField("season_card")
-    private Double seasonCard;
+    private BigDecimal seasonCard;
 
     @ApiModelProperty(value = "季卡显示(0=否,1=是)")
     @TableField("season_card_reveal")
@@ -72,7 +73,7 @@
 
     @ApiModelProperty(value = "季卡折扣")
     @TableField("season_card_discount")
-    private Double seasonCardDiscount;
+    private BigDecimal seasonCardDiscount;
 
     @ApiModelProperty(value = "季卡折扣开始时间")
     @TableField("season_card_discount_start")
@@ -88,7 +89,7 @@
 
     @ApiModelProperty(value = "年卡价格")
     @TableField("annual_card")
-    private Double annualCard;
+    private BigDecimal annualCard;
 
     @ApiModelProperty(value = "年卡显示(0=否,1=是)")
     @TableField("annual_card_reveal")
@@ -96,7 +97,7 @@
 
     @ApiModelProperty(value = "年卡折扣")
     @TableField("annual_card_discount")
-    private Double annualCardDiscount;
+    private BigDecimal annualCardDiscount;
 
     @ApiModelProperty(value = "年卡折扣开始时间")
     @TableField("annual_card_discount_start")
@@ -116,7 +117,7 @@
 
     @ApiModelProperty(value = "最高抵扣金额")
     @TableField("maximum_deduction")
-    private Double maximumDeduction;
+    private BigDecimal maximumDeduction;
 
     @ApiModelProperty(value = "抵扣类型(1=服务费)")
     @TableField("deduction_type")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/VipFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/VipFallbackFactory.java
new file mode 100644
index 0000000..0965d9a
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/VipFallbackFactory.java
@@ -0,0 +1,33 @@
+package com.ruoyi.other.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TVip;
+import com.ruoyi.other.api.feignClient.VipClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * 会员服务降级处理
+ * 
+ * @author ruoyi
+ */
+@Component
+public class VipFallbackFactory implements FallbackFactory<VipClient>
+{
+    private static final Logger log = LoggerFactory.getLogger(VipFallbackFactory.class);
+
+    @Override
+    public VipClient create(Throwable throwable) {
+        log.error("会员调用失败:{}", throwable.getMessage());
+        return new VipClient() {
+
+            @Override
+            public R<TVip> getVipInfoByType(Integer type) {
+                return R.fail("获取最高抵扣、最低起步价,最高折扣的会员失败:" + throwable.getMessage());
+
+            }
+        };
+    }
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/VipClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/VipClient.java
new file mode 100644
index 0000000..b1a8126
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/VipClient.java
@@ -0,0 +1,27 @@
+package com.ruoyi.other.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TVip;
+import com.ruoyi.other.api.factory.VipFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * 会员服务
+ * @author ruoyi
+ */
+@FeignClient(contextId = "VipClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = VipFallbackFactory.class)
+public interface VipClient {
+
+    /**
+     * 获取最高抵扣、最低起步价,最高折扣的会员
+     * @param type 1=最高抵扣、2=最低起步价,3=最高折扣
+     * @return
+     */
+    @PostMapping(value = "/vip/getVipInfoByType")
+    R<TVip> getVipInfoByType(@RequestParam Integer type);
+
+
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
index 063741b..7a4479f 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
@@ -1,8 +1,17 @@
 package com.ruoyi.account.controller;
 
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.account.api.model.TAppUserCar;
+import com.ruoyi.account.service.TAppUserCarService;
+import com.ruoyi.common.core.domain.R;
+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>
@@ -16,5 +25,18 @@
 @RequestMapping("/t-app-user-car")
 public class TAppUserCarController {
 
+    @Autowired
+    private TAppUserCarService appUserCarService;
+
+    /**
+     * 根据用户车辆id查询车辆信息
+     * @param carIds
+     * @return
+     */
+    @PostMapping(value = "/t-app-user-car/getCarByIds")
+    public R<List<TAppUserCar>> getCarByIds(@RequestBody List<Integer> carIds){
+        return R.ok(appUserCarService.list(Wrappers.lambdaQuery(TAppUserCar.class).in(TAppUserCar::getId,carIds)));
+    }
+
 }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index fed89c4..092c981 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
@@ -3,6 +3,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.account.api.dto.*;
 import com.ruoyi.account.api.model.*;
@@ -333,5 +334,16 @@
 
         return R.ok();
     }
+
+    /**
+     * 根据用户id查询用户信息
+     * @param appUserIds 用户id
+     * @return
+     */
+    @PostMapping(value = "/user/getUserByIds")
+    public R<List<TAppUser>> getUserByIds(@RequestBody List<Long> appUserIds){
+        return R.ok(appUserService.list(Wrappers.<TAppUser>lambdaQuery().in(TAppUser::getId,appUserIds)));
+    }
+
 }
 
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 3750bc9..6fd4618 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
@@ -3,9 +3,11 @@
 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.feignClient.ParkingLotClient;
 import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.chargingPile.api.model.TChargingGun;
 import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.chargingPile.api.model.TParkingLot;
 import com.ruoyi.chargingPile.api.query.GetSiteList;
 import com.ruoyi.chargingPile.api.query.SiteDetailQuery;
 import com.ruoyi.chargingPile.api.query.SiteQuery;
@@ -36,10 +38,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @author zhibing.pu
@@ -63,6 +62,8 @@
 	
 	@Resource
 	private RoleSiteClient roleSiteClient;
+	@Resource
+	private ParkingLotClient parkingLotClient;
 	@Resource
 	private TChargingPileService chargingPileService;
 	@Resource
@@ -98,7 +99,11 @@
 		// 计算距离
 		Map<String, Double> distance = GeodesyUtil.getDistance(query.getLat() + "," + query.getLon(), siteDetailVO.getLat() + "," + siteDetailVO.getLon());
 		siteDetailVO.setDistance(distance.get("WGS84"));
-		// TODO 查询绑定车牌提示文案
+		// 查询绑定车牌提示文案
+		TParkingLot parkingLot = parkingLotClient.getLotBySiteId(query.getSiteId()).getData();
+		if(Objects.nonNull(parkingLot)){
+			siteDetailVO.setRemark(parkingLot.getRemark());
+		}
 		return AjaxResult.success(siteDetailVO);
 	}
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
index c58f62a..b917562 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
@@ -3,6 +3,7 @@
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategy;
+import com.ruoyi.chargingPile.api.vo.StrategyPriceVO;
 import com.ruoyi.chargingPile.api.vo.TAccountingStrategyDetailVO;
 import com.ruoyi.chargingPile.service.TAccountingStrategyDetailService;
 import com.ruoyi.chargingPile.service.TAccountingStrategyService;
@@ -16,6 +17,8 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.time.LocalTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
@@ -44,7 +47,7 @@
     /**
      * 通过电站id查询计费策略明细列表
      */
-    @ApiOperation(tags = {"小程序-计费策略"},value = "通过站点id查询计费策略明细列表")
+    @ApiOperation(tags = {"小程序-站点管理-站点详情"},value = "通过站点id查询计费策略明细列表")
     @GetMapping(value = "/queryAccountingStrategyDetailBySiteId")
     public AjaxResult<List<TAccountingStrategyDetailVO>> queryAccountingStrategyDetailBySiteId(@RequestParam Integer siteId) {
         TAccountingStrategy accountingStrategy = accountingStrategyService.getOne(Wrappers.lambdaQuery(TAccountingStrategy.class)
@@ -53,12 +56,25 @@
         if(Objects.isNull(accountingStrategy)){
             throw new ServiceException("未查询到计费策略");
         }
-        // TODO 修改
-        List<TAccountingStrategyDetailVO> list = accountingStrategyDetailService.queryAccountingStrategyDetailByStrategyId(accountingStrategy.getId());
-        list.forEach(detail -> {
-            detail.setTotalPrice(detail.getElectrovalence().add(detail.getElectrovalence()));
-        });
-        return AjaxResult.ok(list);
+        return AjaxResult.ok(accountingStrategyDetailService.queryAccountingStrategyDetailByStrategyId(accountingStrategy.getId()));
+    }
+
+    /**
+     * 通过站点id查询当前时间段计费策略展示
+     */
+    @ApiOperation(tags = {"小程序-站点管理-站点详情"},value = "通过站点id查询当前时间段计费策略展示")
+    @GetMapping(value = "/queryStrategyBySiteIdAndTime")
+    public AjaxResult<List<TAccountingStrategyDetailVO>> queryStrategyBySiteIdAndTime(@RequestParam Integer siteId) {
+        return AjaxResult.ok(accountingStrategyDetailService.queryStrategyBySiteIdAndTime(siteId));
+    }
+
+    /**
+     * 价格说明金额返回,会员开通金额说明
+     */
+    @ApiOperation(tags = {"小程序-站点管理-站点详情"},value = "价格说明金额返回,会员开通金额说明")
+    @GetMapping(value = "/queryPrice")
+    public AjaxResult<StrategyPriceVO> queryPrice(@RequestParam Integer siteId) {
+        return AjaxResult.ok(accountingStrategyDetailService.queryPrice(siteId));
     }
 
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
index 3945b5c..be3a1ba 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
@@ -11,6 +11,7 @@
 import com.ruoyi.chargingPile.service.TCarportService;
 import com.ruoyi.chargingPile.service.TParkingLotService;
 import com.ruoyi.chargingPile.service.TVehicleRampService;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.log.annotation.Log;
@@ -126,6 +127,14 @@
                 .in(TCarport::getParkingLotId, ids));
         return AjaxResult.ok(parkingLotService.removeByIds(ids));
     }
-    
+
+    /**
+     * 通过站点id查询停车场信息
+     */
+    @GetMapping(value = "/getLotBySiteId")
+    public R<TParkingLot> getLotBySiteId(@RequestParam("siteId") Integer siteId){
+        return R.ok(parkingLotService.getOne(Wrappers.lambdaQuery(TParkingLot.class)
+                .eq(TParkingLot::getSiteId, siteId)));
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java
index 292134b..178d0cf 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail;
+import com.ruoyi.chargingPile.api.vo.StrategyPriceVO;
 import com.ruoyi.chargingPile.api.vo.TAccountingStrategyDetailVO;
 
 import java.util.List;
@@ -22,4 +23,19 @@
      * @return
      */
     List<TAccountingStrategyDetailVO> queryAccountingStrategyDetailByStrategyId(Integer strategyId);
+
+
+    /**
+     * 通过站点id查询当前时间段计费策略展示
+     * @param siteId
+     * @return
+     */
+    List<TAccountingStrategyDetailVO> queryStrategyBySiteIdAndTime(Integer siteId);
+
+    /**
+     * 价格说明金额返回,会员开通金额说明
+     * @param siteId
+     * @return
+     */
+    StrategyPriceVO queryPrice(Integer siteId);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
index 741455f..8011eb8 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
@@ -1,13 +1,25 @@
 package com.ruoyi.chargingPile.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.chargingPile.api.model.TAccountingStrategy;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail;
+import com.ruoyi.chargingPile.api.vo.StrategyPriceVO;
 import com.ruoyi.chargingPile.api.vo.TAccountingStrategyDetailVO;
 import com.ruoyi.chargingPile.mapper.TAccountingStrategyDetailMapper;
+import com.ruoyi.chargingPile.mapper.TAccountingStrategyMapper;
 import com.ruoyi.chargingPile.service.TAccountingStrategyDetailService;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.other.api.domain.TVip;
+import com.ruoyi.other.api.feignClient.VipClient;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.time.LocalTime;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * <p>
@@ -20,8 +32,65 @@
 @Service
 public class TAccountingStrategyDetailServiceImpl extends ServiceImpl<TAccountingStrategyDetailMapper, TAccountingStrategyDetail> implements TAccountingStrategyDetailService {
 
+    @Autowired
+    private TAccountingStrategyMapper accountingStrategyMapper;
+    @Autowired
+    private VipClient vipClient;
+
     @Override
     public List<TAccountingStrategyDetailVO> queryAccountingStrategyDetailByStrategyId(Integer strategyId) {
         return this.baseMapper.queryAccountingStrategyDetailByStrategyId(strategyId);
     }
+
+    @Override
+    public List<TAccountingStrategyDetailVO> queryStrategyBySiteIdAndTime(Integer siteId) {
+        TAccountingStrategy accountingStrategy = accountingStrategyMapper.selectOne(Wrappers.lambdaQuery(TAccountingStrategy.class)
+                .eq(TAccountingStrategy::getSiteId, siteId)
+                .last("limit 1"));
+        if(Objects.isNull(accountingStrategy)){
+            throw new ServiceException("未查询到计费策略");
+        }
+        List<TAccountingStrategyDetailVO> list = this.queryAccountingStrategyDetailByStrategyId(accountingStrategy.getId());
+        // 获取当前时间段的计费策略明细
+        TAccountingStrategyDetailVO accountingStrategyDetailVO = list.stream().filter(detail -> detail.getStartTime().compareTo(LocalTime.now().toString()) <= 0 && detail.getEndTime().compareTo(LocalTime.now().toString()) >= 0)
+                .findFirst().orElseThrow(() -> new ServiceException("当前时间段未查询到计费策略明细"));
+        accountingStrategyDetailVO.setDiscount(accountingStrategy.getDiscount());
+        // 获取后一次的计费策略明细
+        TAccountingStrategyDetailVO accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0)
+                .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细"));
+        accountingStrategyDetailNext.setDiscount(accountingStrategy.getDiscount());
+        list = new ArrayList<>();
+        list.add(accountingStrategyDetailVO);
+        list.add(accountingStrategyDetailNext);
+        return list;
+    }
+
+    @Override
+    public StrategyPriceVO queryPrice(Integer siteId) {
+        TAccountingStrategy accountingStrategy = accountingStrategyMapper.selectOne(Wrappers.lambdaQuery(TAccountingStrategy.class)
+                .eq(TAccountingStrategy::getSiteId, siteId)
+                .last("limit 1"));
+        if(Objects.isNull(accountingStrategy)){
+            throw new ServiceException("未查询到计费策略");
+        }
+
+        StrategyPriceVO strategyPriceVO = new StrategyPriceVO();
+
+        List<TAccountingStrategyDetailVO> list = this.queryAccountingStrategyDetailByStrategyId(accountingStrategy.getId());
+        // 获取当前时间段的计费策略明细
+        TAccountingStrategyDetailVO accountingStrategyDetailVO = list.stream().filter(detail -> detail.getStartTime().compareTo(LocalTime.now().toString()) <= 0 && detail.getEndTime().compareTo(LocalTime.now().toString()) >= 0)
+                .findFirst().orElseThrow(() -> new ServiceException("当前时间段未查询到计费策略明细"));
+        strategyPriceVO.setDiscountAmount(accountingStrategyDetailVO.getElectrovalence().add(accountingStrategyDetailVO.getServiceCharge())
+                .subtract(accountingStrategyDetailVO.getServiceCharge().multiply(accountingStrategy.getDiscount())).setScale(2, BigDecimal.ROUND_HALF_UP));
+        // 查询最高抵扣的会员
+        TVip maximumDeduction = vipClient.getVipInfoByType(1).getData();
+        strategyPriceVO.setMaxDiscountAmount(maximumDeduction.getMaximumDeduction());
+        // 查询最低起步价会员
+        TVip monthlyCard = vipClient.getVipInfoByType(2).getData();
+        strategyPriceVO.setVipStartPrice(monthlyCard.getMonthlyCard());
+        // 查询最高折扣的会员
+        TVip monthlyCardDiscount = vipClient.getVipInfoByType(3).getData();
+        strategyPriceVO.setServiceFeeDiscount(monthlyCardDiscount.getMonthlyCardDiscount());
+        return strategyPriceVO;
+    }
 }
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 ec89086..0602455 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
@@ -5,17 +5,16 @@
 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.SiteDetailEvaluateVO;
 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 io.swagger.annotations.ApiParam;
 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 org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -48,5 +47,11 @@
         return AjaxResult.ok(orderEvaluateService.getTagList(query));
     }
 
+    @ApiOperation(tags = {"小程序-订单评价"},value = "电站详情中评价列表查询")
+    @GetMapping(value = "/getSiteDetailEveList")
+    public AjaxResult<SiteDetailEvaluateVO> getSiteDetailEveList(@RequestParam(value = "siteId")@ApiParam(value = "站点id")Integer siteId) {
+        return AjaxResult.ok(orderEvaluateService.getSiteDetailEveList(siteId));
+    }
+
 }
 
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 b2566d5..1f2080b 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
@@ -30,4 +30,11 @@
      * @return
      */
     List<TOrderEvaluateVO> pageList(@Param("query") TOrderEvaluateQuery query,@Param("pageInfo")PageInfo<TOrderEvaluateVO> pageInfo);
+
+    /**
+     * 查询站点下的所有订单评价
+     * @param siteId
+     * @return
+     */
+    List<TOrderEvaluateVO> getOrderEvaluateBySiteId(@Param("siteId")Integer siteId);
 }
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 cd76d7d..d0d55d5 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
@@ -4,6 +4,7 @@
 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.SiteDetailEvaluateVO;
 import com.ruoyi.order.api.vo.TOrderEvaluateVO;
 import com.ruoyi.other.api.vo.TEvaluationTagVO;
 
@@ -31,4 +32,11 @@
      * @return
      */
     PageInfo<TOrderEvaluateVO> getTagList(TOrderEvaluateQuery query);
+
+    /**
+     * 电站详情中评价列表查询
+     * @param siteId
+     * @return
+     */
+    SiteDetailEvaluateVO getSiteDetailEveList(Integer siteId);
 }
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 b1b5ca5..aebdacf 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
@@ -2,12 +2,17 @@
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.feignClient.AppUserCarClient;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserCar;
 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.SiteDetailEvaluateVO;
 import com.ruoyi.order.api.vo.TOrderEvaluateVO;
 import com.ruoyi.order.mapper.TChargingOrderMapper;
 import com.ruoyi.order.mapper.TOrderEvaluateMapper;
@@ -19,9 +24,11 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -38,9 +45,15 @@
     @Autowired
     private TEvaluationTagClient evaluationTagClient;
     @Autowired
+    private AppUserClient appUserClient;
+    @Autowired
+    private AppUserCarClient appUserCarClient;
+    @Autowired
     private TOrderEvaluateTagMapper orderEvaluateTagMapper;
     @Autowired
     private TChargingOrderMapper chargingOrderMapper;
+    @Autowired
+    private TOrderEvaluateMapper orderEvaluateMapper;
     @Override
     public List<TEvaluationTagVO> getTagCount() {
         // 查询标签列表
@@ -82,10 +95,42 @@
         List<Long> orderIds = tChargingOrders.stream().map(TChargingOrder::getId).collect(Collectors.toList());
         query.setOrderIds(orderIds);
         List<TOrderEvaluateVO> list = this.baseMapper.pageList(query,pageInfo);
+        // 查询用户信息
+        List<TAppUser> appUsers = appUserClient.getUserByIds(list.stream().map(TOrderEvaluateVO::getAppUserId).collect(Collectors.toList())).getData();
+        // 查询用户绑定车辆品牌
+        List<TAppUserCar> appUserCars = appUserCarClient.getCarByIds(list.stream().map(TOrderEvaluateVO::getAppUserCarId).collect(Collectors.toList())).getData();
+        list.forEach(orderEvaluateVO -> {
+            TAppUser appUser = appUsers.stream().filter(user -> user.getId().equals(orderEvaluateVO.getAppUserId())).findFirst().orElse(null);
+            if(Objects.nonNull(appUser)){
+                orderEvaluateVO.setName(appUser.getName());
+                orderEvaluateVO.setAvatar(appUser.getAvatar());
+            }
+            TAppUserCar appUserCar = appUserCars.stream().filter(car -> car.getId().equals(Long.parseLong(String.valueOf(orderEvaluateVO.getAppUserCarId())))).findFirst().orElse(null);
+            if(Objects.nonNull(appUserCar)){
+                orderEvaluateVO.setCarName(appUserCar.getVehicleBrand());
+            }
+        });
         pageInfo.setRecords(list);
         return pageInfo;
     }
 
+    @Override
+    public SiteDetailEvaluateVO getSiteDetailEveList(Integer siteId) {
+        SiteDetailEvaluateVO siteDetailEvaluateVO = new SiteDetailEvaluateVO();
+        // 查询站点下的所有订单评价
+        List<TOrderEvaluateVO> tChargingOrders = orderEvaluateMapper.getOrderEvaluateBySiteId(siteId);
+        if(!CollectionUtils.isEmpty(tChargingOrders)){
+            siteDetailEvaluateVO.setOrderEvaluateVOS(tChargingOrders);
+            // 统计好评率
+            long goodCount = tChargingOrders.stream().filter(orderEvaluateVO -> orderEvaluateVO.getMark()>=4).count();
+            BigDecimal reviewRate = new BigDecimal(goodCount).divide(new BigDecimal(tChargingOrders.size())).setScale(2, BigDecimal.ROUND_HALF_UP);
+            siteDetailEvaluateVO.setReviewRate(reviewRate);
+            siteDetailEvaluateVO.setEvaluateCount(tChargingOrders.size());
+            siteDetailEvaluateVO.setOrderEvaluateVOS(tChargingOrders.stream().limit(3).collect(Collectors.toList()));
+        }
+        return siteDetailEvaluateVO;
+    }
+
     /**
      * 统计有图,好评,中差评数量
      * @param count
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 66e30e6..156f3fe 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
@@ -8,6 +8,7 @@
         <result column="order_type" property="orderType" />
         <result column="order_id" property="orderId" />
         <result column="app_user_id" property="appUserId" />
+        <result column="app_user_car_id" property="appUserCarId" />
         <result column="mark" property="mark" />
         <result column="content" property="content" />
         <result column="img_url" property="imgUrl" />
@@ -19,10 +20,10 @@
 
     <!-- 通用查询结果列 -->
     <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
+        id, order_type, order_id, app_user_id,app_user_car_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,
+        select id, order_type, order_id, app_user_id,app_user_car_id, mark, content, img_url, evaluation_response,
                create_time, response_time, del_flag
         from t_order_evaluate where id in
         (select toe.id
@@ -78,5 +79,15 @@
             create_time DESC;
         </if>
     </select>
+    <select id="getOrderEvaluateBySiteId" resultType="com.ruoyi.order.api.vo.TOrderEvaluateVO">
+        select id, order_type, order_id, app_user_id,app_user_car_id, mark, content, img_url, evaluation_response,
+               create_time, response_time, del_flag
+        from t_order_evaluate toe
+        where toe.order_id in
+        (select toc.order_id
+        from t_charging_order toc
+        where toc.site_id = #{siteId}
+        and toc.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()})
+    </select>
 
 </mapper>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
index b2f94b8..6942f7e 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.other.controller;
 
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
@@ -78,5 +79,31 @@
         return R.ok(idNameMap);
     }
 
+    /**
+     * 获取最高抵扣、最低起步价,最高折扣的会员
+     * @param type 1=最高抵扣、2=最低起步价,3=最高折扣
+     * @return
+     */
+    @PostMapping(value = "/getVipInfoByType")
+    public R<TVip> getVipInfoByType(@RequestParam Integer type){
+        switch (type){
+            case 1:
+                return R.ok(vipService.getOne(Wrappers.lambdaQuery(TVip.class)
+                        .eq(TVip::getReveal,1)
+                        .orderByDesc(TVip::getMaximumDeduction)
+                        .last("LIMIT 1")));
+            case 2:
+                return R.ok(vipService.getOne(Wrappers.lambdaQuery(TVip.class)
+                        .eq(TVip::getReveal,1)
+                        .orderByAsc(TVip::getMonthlyCard)
+                        .last("LIMIT 1")));
+            default:
+                return R.ok(vipService.getOne(Wrappers.lambdaQuery(TVip.class)
+                        .eq(TVip::getReveal,1)
+                        .orderByDesc(TVip::getMonthlyCardDiscount)
+                        .last("LIMIT 1")));
+        }
+    }
+
 }
 
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 6b03b9b..05209c1 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
@@ -21,7 +21,7 @@
 public class TEvaluationTagServiceImpl extends ServiceImpl<TEvaluationTagMapper, TEvaluationTag> implements TEvaluationTagService {
 
     @Override
-    public List<TEvaluationTagVO> getTagCount() {
+    public List<TEvaluationTagVO> getTagList() {
         return this.baseMapper.getTagList();
     }
 }

--
Gitblit v1.7.1