From 9ec0a61f90ac2464eebc643bfe2d93ac9ba6e569 Mon Sep 17 00:00:00 2001
From: cgf <2156125618@qq.com>
Date: 星期六, 23 八月 2025 10:59:18 +0800
Subject: [PATCH] 折扣已完成现有需求2025/08/09

---
 service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java b/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
index 5405d58..b46b989 100755
--- a/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
@@ -23,6 +23,8 @@
 import com.java110.utils.exception.ListenerExecuteException;
 import com.java110.utils.util.*;
 import com.java110.vo.ResultVo;
+import com.java110.vo.api.fee.ApiFeeDataVo;
+import com.java110.vo.api.fee.ApiFeeVo;
 import com.java110.vo.api.feeConfig.ApiFeeConfigDataVo;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +33,9 @@
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.*;
 
 @Service
@@ -222,7 +227,6 @@
                         Integer.parseInt(feeDto.getDecimalPlace())
                 )
         );
-
         if (!StringUtil.isEmpty(custEndTime)) {
             Date date = DateUtil.getDateFromStringB(custEndTime);
             computeFeeSMOImpl.dealRentRateCustEndTime(feeDto, date);
@@ -258,7 +262,59 @@
         //鍘绘帀澶氫綑0
         feeDto.setSquarePrice(Double.parseDouble(feeDto.getSquarePrice()) + "");
         feeDto.setAdditionalAmount(Double.parseDouble(feeDto.getAdditionalAmount()) + "");
-        return ResultVo.createResponseEntity(feeDto);
+        ApiFeeDataVo apiFeeDataVo = BeanConvertUtil.covertBeanList(feeDtos, ApiFeeDataVo.class).get(0);
+        apiFeeDataVo.setStartTime(apiFeeDataVo.getStartTime() == null ? null : apiFeeDataVo.getStartTime().split(" ")[0]);
+        apiFeeDataVo.setEndTime(apiFeeDataVo.getEndTime() == null ? null : apiFeeDataVo.getEndTime().split(" ")[0]);
+        apiFeeDataVo.setMaxEndTime(apiFeeDataVo.getMaxEndTime() == null ? null : apiFeeDataVo.getMaxEndTime().split(" ")[0]);
+        apiFeeDataVo.setDeadlineTime(apiFeeDataVo.getDeadlineTime() == null ? null : apiFeeDataVo.getDeadlineTime().split(" ")[0]);
+        if (cycel != null && !"105".equals(cycel)) { // 淇瀛楃涓叉瘮杈冩柟寮�
+            Date date = feeDto.getEndTime();
+            if (date != null) { // 澧炲姞绌哄�兼鏌�
+                LocalDateTime localDateTime;
+
+                // 澶勭悊 java.sql.Date 涓嶆敮鎸� toInstant() 鐨勯棶棰�
+                if (date instanceof java.sql.Date) {
+                    // 瀵逛簬 sql.Date锛屽厛杞崲涓� LocalDate 鍐嶈浆涓� LocalDateTime
+                    LocalDate localDate = ((java.sql.Date) date).toLocalDate();
+                    localDateTime = localDate.atStartOfDay();
+                } else {
+                    // 瀵逛簬 util.Date锛屾甯歌浆鎹�
+                    localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
+                }
+
+                try {
+                    // 澧炲姞x涓湀
+                    int monthsToAdd = Integer.parseInt(cycel);
+                    LocalDateTime newLocalDateTime = localDateTime.plusMonths(monthsToAdd).minusDays(1);
+
+                    // 杞崲鍥濪ate
+                    Date newDate = Date.from(newLocalDateTime.atZone(ZoneId.systemDefault()).toInstant());
+                    apiFeeDataVo.setPayStartDate(feeDto.getEndTime());
+                    apiFeeDataVo.setPayEndDate(newDate);
+                } catch (NumberFormatException e) {
+                    // 澶勭悊cycel鏃犳硶杞崲涓烘暣鏁扮殑寮傚父
+                    // 鍙互鏍规嵁瀹為檯闇�姹傝褰曟棩蹇楁垨鎶涘嚭鑷畾涔夊紓甯�
+                    e.printStackTrace();
+                }
+            }
+        }else{
+            apiFeeDataVo.setPayStartDate(DateUtil.getDateFromStringB(feeDto.getCustomStartTime()));
+            // 鑾峰彇鍘熷鏃ユ湡
+            Date originalDate = DateUtil.getDateFromStringB(feeDto.getCustomEndTime());
+            if (originalDate != null) {
+                // 鍒涘缓Calendar瀹炰緥骞惰缃棩鏈�
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(originalDate);
+
+                // 鍑忎竴澶�
+                calendar.add(Calendar.DAY_OF_MONTH, -1);
+
+                // 鑾峰彇澶勭悊鍚庣殑鏃ユ湡
+                Date dateMinusOneDay = calendar.getTime();
+                apiFeeDataVo.setPayEndDate(dateMinusOneDay);
+            }
+        }
+        return ResultVo.createResponseEntity(apiFeeDataVo);
     }
 
     @Override

--
Gitblit v1.8.0