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