From 20001a775126c1be95a2b84cebb8813a54608712 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 15 八月 2023 14:42:27 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java |   27 ++++++++++++++++++++++-----
 1 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java b/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
index 5d5a91e..5e72802 100755
--- a/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
+++ b/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
@@ -951,7 +951,7 @@
         return getFeePrice(feeDto, null);
     }
 
-     /*
+    /*
      *
      * @param feeDto
      * @param roomDto
@@ -1701,7 +1701,7 @@
         //todo 鑰冭檻璐圭敤椤� 璐圭敤鎻愬墠鐢熸垚
         Calendar preEndTimeCal = Calendar.getInstance();
         preEndTimeCal.setTime(feeDto.getEndTime());
-        if(StringUtil.isNumber(feeDto.getPrepaymentPeriod())) {
+        if (StringUtil.isNumber(feeDto.getPrepaymentPeriod())) {
             preEndTimeCal.add(Calendar.DAY_OF_MONTH, Integer.parseInt(feeDto.getPrepaymentPeriod()) * -1);
         }
         Date preEndTime = preEndTimeCal.getTime();
@@ -1745,12 +1745,21 @@
             }
             // 杞暟 * 鍛ㄦ湡 * 30 + 寮�濮嬫椂闂� = 鐩爣 鍒版湡鏃堕棿
             targetEndDate = getTargetEndTime(round * paymentCycle, startDate);//鐩爣缁撴潫鏃堕棿
-            //璐圭敤椤圭殑缁撴潫鏃堕棿<缂磋垂鐨勭粨鏉熸椂闂�  璐圭敤蹇粨鏉熶簡   鍙栬垂鐢ㄩ」鐨勭粨鏉熸椂闂�
+
+            //todo 濡傛灉 鍒颁簡 棰勪粯鏈� 浜х敓涓嬩釜鍛ㄦ湡鐨勮垂鐢�
+            if (DateUtil.getFormatTimeStringB(targetEndDate).equals(DateUtil.getFormatTimeStringB(endDate))
+                    && DateUtil.getCurrentDate().getTime() > preEndTime.getTime()
+            ) {
+                targetEndDate = getTargetEndTime((round + 1) * paymentCycle, startDate);//鐩爣缁撴潫鏃堕棿
+            }
+
+
+            //todo 璐圭敤椤圭殑缁撴潫鏃堕棿<缂磋垂鐨勭粨鏉熸椂闂�  璐圭敤蹇粨鏉熶簡   鍙栬垂鐢ㄩ」鐨勭粨鏉熸椂闂�
             if (maxEndTime.getTime() < targetEndDate.getTime()) {
                 targetEndDate = maxEndTime;
             }
             //璇存槑娆犺垂
-            if (preEndTime.getTime() < targetEndDate.getTime()) {
+            if (endDate.getTime() < targetEndDate.getTime()) {
                 // 鐩爣鍒版湡鏃堕棿 - 鍒版湡鏃堕棿 = 娆犺垂鏈堜唤
                 oweMonth = dayCompare(endDate, targetEndDate);
             }
@@ -1780,12 +1789,20 @@
             }
             // 杞暟 * 鍛ㄦ湡 * 30 + 寮�濮嬫椂闂� = 鐩爣 鍒版湡鏃堕棿
             targetEndDate = getTargetEndTime(round * paymentCycle, endDate);//鐩爣缁撴潫鏃堕棿
+
+            //todo 濡傛灉 鍒颁簡 棰勪粯鏈� 浜х敓涓嬩釜鍛ㄦ湡鐨勮垂鐢�
+            if (DateUtil.getFormatTimeStringB(targetEndDate).equals(DateUtil.getFormatTimeStringB(endDate))
+                    && DateUtil.getCurrentDate().getTime() > preEndTime.getTime()
+            ) {
+                targetEndDate = getTargetEndTime((round + 1) * paymentCycle, startDate);//鐩爣缁撴潫鏃堕棿
+            }
+
             //璐圭敤椤圭殑缁撴潫鏃堕棿<缂磋垂鐨勭粨鏉熸椂闂�  璐圭敤蹇粨鏉熶簡   鍙栬垂鐢ㄩ」鐨勭粨鏉熸椂闂�
             if (maxEndTime.getTime() < targetEndDate.getTime()) {
                 targetEndDate = maxEndTime;
             }
             //璇存槑娆犺垂
-            if (preEndTime.getTime() < targetEndDate.getTime()) {
+            if (endDate.getTime() < targetEndDate.getTime()) {
                 // 鐩爣鍒版湡鏃堕棿 - 鍒版湡鏃堕棿 = 娆犺垂鏈堜唤
                 oweMonth = dayCompare(endDate, targetEndDate);
             }

--
Gitblit v1.8.0