From 596329a323a73b3f5eead2360ef1c7d5c53805ed Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 24 八月 2024 16:14:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java                                      |   10 ++++++++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java |   20 ++++++++------------
 2 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java
index f6d0364..9c314ca 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java
@@ -7,6 +7,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.*;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -361,6 +362,15 @@
     public static LocalDateTime getDayEnd(LocalDateTime time) {
         return time.with(LocalTime.MAX);
     }
+    /**
+     * string转LocalTime
+     *
+     * @return
+     */
+    public static LocalTime string2LocalTime(String time) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
+        return LocalTime.parse(time, formatter);
+    }
 
 
 }
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 bd99111..64310d5 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
@@ -12,6 +12,7 @@
 import com.ruoyi.chargingPile.mapper.TAccountingStrategyMapper;
 import com.ruoyi.chargingPile.service.TAccountingStrategyDetailService;
 import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.other.api.domain.TVip;
 import com.ruoyi.other.api.feignClient.VipClient;
@@ -69,23 +70,18 @@
             TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
             TAccountingStrategyDetailVO accountingStrategyDetailVO;
             TAccountingStrategyDetailVO accountingStrategyDetailNext;
+            // 获取当前时间段的计费策略明细
+            accountingStrategyDetailVO = list.stream().filter(detail -> DateUtils.string2LocalTime(detail.getStartTime() + " :00").compareTo(LocalTime.now()) <= 0
+                            && DateUtils.string2LocalTime(detail.getEndTime() + " :00").compareTo(LocalTime.now()) > 0)
+                    .findFirst().orElseThrow(() -> new ServiceException("当前时间段未查询到计费策略明细"));
+            // 获取后一次的计费策略明细
+            accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0)
+                    .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细"));
             if(Objects.nonNull(vip) && vip.getType() == 2){
-                // 获取当前时间段的计费策略明细
-                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(accountingStrategyDetailVO.getElectrovalence().add(accountingStrategyDetailVO.getServiceCharge()).multiply(vip.getDiscount()));
-                // 获取后一次的计费策略明细
-                accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0)
-                        .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细"));
                 accountingStrategyDetailNext.setDiscount(accountingStrategyDetailNext.getElectrovalence().add(accountingStrategyDetailNext.getServiceCharge()).multiply(vip.getDiscount()));
             }else {
-                // 获取当前时间段的计费策略明细
-                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(accountingStrategyDetailVO.getElectrovalence().add(accountingStrategyDetailVO.getServiceCharge()).multiply(accountingStrategy.getDiscount()));
-                // 获取后一次的计费策略明细
-                accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0)
-                        .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细"));
                 accountingStrategyDetailNext.setDiscount(accountingStrategyDetailNext.getElectrovalence().add(accountingStrategyDetailNext.getServiceCharge()).multiply(accountingStrategy.getDiscount()));
             }
             list = new ArrayList<>();

--
Gitblit v1.7.1