From 7a095e5d59a428225caca81738a69603578964a3 Mon Sep 17 00:00:00 2001
From: chengf <2156125618@qq.com>
Date: 星期五, 08 八月 2025 18:33:58 +0800
Subject: [PATCH] 折扣逻辑修改2025/08/08
---
service-fee/src/main/java/com/java110/fee/smo/impl/FeeDiscountInnerServiceSMOImpl.java | 62 ++++++++++++++++++++++++++----
1 files changed, 53 insertions(+), 9 deletions(-)
diff --git a/service-fee/src/main/java/com/java110/fee/smo/impl/FeeDiscountInnerServiceSMOImpl.java b/service-fee/src/main/java/com/java110/fee/smo/impl/FeeDiscountInnerServiceSMOImpl.java
index 38f1c5f..a81aeba 100755
--- a/service-fee/src/main/java/com/java110/fee/smo/impl/FeeDiscountInnerServiceSMOImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/smo/impl/FeeDiscountInnerServiceSMOImpl.java
@@ -10,6 +10,7 @@
import com.java110.dto.fee.FeeDiscountRuleDto;
import com.java110.dto.fee.FeeDiscountSpecDto;
import com.java110.dto.payFee.PayFeeConfigDiscountDto;
+import com.java110.dto.work.WorkCopyDto;
import com.java110.fee.dao.IFeeDiscountServiceDao;
import com.java110.fee.discount.IComputeDiscount;
import com.java110.intf.fee.*;
@@ -268,22 +269,25 @@
//鎴垮眿id
applyRoomDiscountDto.setRoomId(feeDetailDto.getPayerObjId());
//寮�濮嬫椂闂�
- applyRoomDiscountDto.setStartTime(simpleDateFormat.format(feeDetailDto.getStartTime()));
+// applyRoomDiscountDto.setStartTime(simpleDateFormat.format(feeDetailDto.getStartTime()));
//缁撴潫鏃堕棿
c.setTime(feeDetailDto.getStartTime());
- c.add(Calendar.DAY_OF_MONTH, 2);//寮�濮嬫椂闂达紝娣诲姞1锛�2澶╃殑鍐椾綑锛屽彧瑕佹瘮5灏忓嵆鍙�
- applyRoomDiscountDto.setStartTime(simpleDateFormat.format(c.getTime()));//閲嶆柊璁剧疆寮�濮嬫椂闂�
+// c.add(Calendar.DAY_OF_MONTH, 2);//寮�濮嬫椂闂达紝娣诲姞1锛�2澶╃殑鍐椾綑锛屽彧瑕佹瘮5灏忓嵆鍙�
+// applyRoomDiscountDto.setStartTime(simpleDateFormat.format(c.getTime()));//閲嶆柊璁剧疆寮�濮嬫椂闂�
double month = Double.parseDouble(feeDetailDto.getCycles());
- if(month == 105){
- month = 2;
- }
+// if(month == 105){
+// return;
+// }
c.add(Calendar.MONTH, (int) month);
- c.add(Calendar.DAY_OF_MONTH, -5);//杩欓噷鏍规嵁璁剧疆鏃堕棿鑽h獕5澶�
+// c.add(Calendar.DAY_OF_MONTH, -5);//杩欓噷鏍规嵁璁剧疆鏃堕棿鑽h獕5澶�
Date endTime = c.getTime();
- applyRoomDiscountDto.setEndTime(simpleDateFormat.format(endTime));
+// applyRoomDiscountDto.setEndTime(simpleDateFormat.format(endTime));
applyRoomDiscountDto.setFeeId(feeDetailDto.getFeeId());
//鏌ヨ鎶樻墸鐢宠琛�
List<ApplyRoomDiscountDto> applyRoomDiscountDtos = applyRoomDiscountInnerServiceSMOImpl.queryApplyRoomDiscounts(applyRoomDiscountDto);
+
+
+
//鍒ゆ柇鏌ヨ鐨勬姌鎵g敵璇疯〃鏄惁鏈夋暟鎹�
if (applyRoomDiscountDtos != null && applyRoomDiscountDtos.size() > 0) {
//鑾峰彇浼樻儬id
@@ -293,11 +297,51 @@
PayFeeConfigDiscountDto payFeeConfigDiscount = new PayFeeConfigDiscountDto();
payFeeConfigDiscount.setCommunityId(applyRoomDiscountDtos.get(0).getCommunityId());
payFeeConfigDiscount.setDiscountId(discountId);
- doCompute(payFeeConfigDiscount, Double.parseDouble(feeDetailDto.getCycles()), computeDiscountDtos, feeDetailDto.getFeeId());
+ if(applyRoomDiscountDtos.get(0).getStartTime() == null){
+ payFeeConfigDiscount.setStartTime(feeDetailDto.getStartTime());
+ }else if(DateUtil.getDateFromStringB(applyRoomDiscountDtos.get(0).getStartTime()).before(feeDetailDto.getStartTime())){
+ payFeeConfigDiscount.setStartTime(feeDetailDto.getStartTime());
+ }else{
+ payFeeConfigDiscount.setStartTime(DateUtil.getDateFromStringB(applyRoomDiscountDtos.get(0).getStartTime()));
+ }
+ if(applyRoomDiscountDtos.get(0).getEndTime() == null){
+ payFeeConfigDiscount.setEndTime(endTime);
+ }else if(DateUtil.getDateFromStringB(applyRoomDiscountDtos.get(0).getEndTime()).after(endTime)){
+ payFeeConfigDiscount.setEndTime(endTime);
+ }else{
+ payFeeConfigDiscount.setEndTime(DateUtil.getDateFromStringB(applyRoomDiscountDtos.get(0).getEndTime()));
+ }
+ double cycle =
+ DateUtil.dayCompare(
+ payFeeConfigDiscount.getStartTime(),
+ payFeeConfigDiscount.getEndTime()
+ );
+ doComputeB(payFeeConfigDiscount, cycle, computeDiscountDtos, feeDetailDto.getFeeId());
}
}
}
+ private void doComputeB(PayFeeConfigDiscountDto tmpPayFeeConfigDiscountDto, double cycles, List<ComputeDiscountDto> computeDiscountDtos, String feeId) {
+ FeeDiscountDto feeDiscountDto = new FeeDiscountDto();
+ feeDiscountDto.setCommunityId(tmpPayFeeConfigDiscountDto.getCommunityId());
+ feeDiscountDto.setDiscountId(tmpPayFeeConfigDiscountDto.getDiscountId());
+ List<FeeDiscountDto> feeDiscountDtos = queryFeeDiscounts(feeDiscountDto);
+ if (feeDiscountDtos == null || feeDiscountDtos.size() < 1) {
+ return;
+ }
+
+ for (FeeDiscountDto tmpFeeDiscountDto : feeDiscountDtos) {
+ tmpFeeDiscountDto.setFeeId(feeId);
+ tmpFeeDiscountDto.setCycles(cycles);
+ }
+ IComputeDiscount computeDiscount = (IComputeDiscount) ApplicationContextFactory.getBean(feeDiscountDtos.get(0).getBeanImpl());
+ ComputeDiscountDto computeDiscountDto = computeDiscount.compute(feeDiscountDtos.get(0));
+ if (computeDiscountDto == null) {
+ return;
+ }
+ computeDiscountDtos.add(computeDiscountDto);
+ }
+
private void doCompute(PayFeeConfigDiscountDto tmpPayFeeConfigDiscountDto, double cycles, List<ComputeDiscountDto> computeDiscountDtos, String feeId) {
FeeDiscountDto feeDiscountDto = new FeeDiscountDto();
feeDiscountDto.setCommunityId(tmpPayFeeConfigDiscountDto.getCommunityId());
--
Gitblit v1.8.0