From a29e1cbe32ac19ba73eba68783e8cbafc8ace891 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期日, 05 九月 2021 18:06:46 +0800
Subject: [PATCH] 优化 加入 小区位置同步

---
 service-fee/src/main/java/com/java110/fee/smo/impl/FeeDiscountInnerServiceSMOImpl.java |   45 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 34 insertions(+), 11 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
old mode 100644
new mode 100755
index 3f07b2a..7aac8e9
--- 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
@@ -7,7 +7,7 @@
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.feeDiscount.ComputeDiscountDto;
 import com.java110.dto.feeDiscount.FeeDiscountDto;
-import com.java110.dto.feeDiscountSpec.FeeDiscountSpecDto;
+import com.java110.dto.feeDiscount.FeeDiscountSpecDto;
 import com.java110.dto.payFeeConfigDiscount.PayFeeConfigDiscountDto;
 import com.java110.fee.dao.IFeeDiscountServiceDao;
 import com.java110.fee.discount.IComputeDiscount;
@@ -163,6 +163,17 @@
         List<PayFeeConfigDiscountDto> payFeeConfigDiscountDtos =
                 payFeeConfigDiscountInnerServiceSMOImpl.queryPayFeeConfigDiscounts(payFeeConfigDiscountDto);
         if (payFeeConfigDiscountDtos == null || payFeeConfigDiscountDtos.size() < 1) {
+            computeApplyRoomDiscount(feeDetailDto, simpleDateFormat, c, computeDiscountDtos);
+            //鍙栧嚭寮�鍏虫槧灏勭殑鍊�
+            String value = MappingCache.getValue(DOMAIN_COMMON, DISCOUNT_MODE);
+            List<ComputeDiscountDto> computeDiscountDtoList = new ArrayList<>();
+            for (ComputeDiscountDto computeDiscountDto : computeDiscountDtos) {
+                computeDiscountDto.setValue(value);
+                if (!StringUtil.isEmpty(computeDiscountDto.getDiscountType()) && "3003".equals(computeDiscountDto.getDiscountType())) {
+                    computeDiscountDto.setArdId(feeDetailDto.getArdId());
+                }
+                computeDiscountDtoList.add(computeDiscountDto);
+            }
             return computeDiscountDtos;
         }
         c.setTime(feeDetailDto.getStartTime());
@@ -181,11 +192,28 @@
                 continue;
             }
         }
-        if (!StringUtil.isEmpty(feeDetailDto.getPayerObjType()) && feeDetailDto.getPayerObjType().equals("3333")) {
+        computeApplyRoomDiscount(feeDetailDto, simpleDateFormat, c, computeDiscountDtos);
+        //鍙栧嚭寮�鍏虫槧灏勭殑鍊�
+        String value = MappingCache.getValue(DOMAIN_COMMON, DISCOUNT_MODE);
+        List<ComputeDiscountDto> computeDiscountDtoList = new ArrayList<>();
+        for (ComputeDiscountDto computeDiscountDto : computeDiscountDtos) {
+            computeDiscountDto.setValue(value);
+            if (!StringUtil.isEmpty(computeDiscountDto.getDiscountType()) && "3003".equals(computeDiscountDto.getDiscountType())) {
+                computeDiscountDto.setArdId(feeDetailDto.getArdId());
+            }
+            computeDiscountDtoList.add(computeDiscountDto);
+        }
+        return computeDiscountDtoList;
+    }
+
+    private void computeApplyRoomDiscount(@RequestBody FeeDetailDto feeDetailDto, SimpleDateFormat simpleDateFormat, Calendar c, List<ComputeDiscountDto> computeDiscountDtos) {
+        if (!StringUtil.isEmpty(feeDetailDto.getPayerObjType()) && FeeDto.PAYER_OBJ_TYPE_ROOM.equals(feeDetailDto.getPayerObjType())) {
             //鏍规嵁鎴垮眿ID,鍘绘姌鎵g敵璇疯〃鏌ヨ鏄惁鏈夋姌鎵�
             ApplyRoomDiscountDto applyRoomDiscountDto = new ApplyRoomDiscountDto();
             //瀹℃牳宸查�氳繃
             applyRoomDiscountDto.setState("4");
+            //鏄惁鍙敤鐘舵�佹爣璇�(0琛ㄧず鍦ㄧ敤锛�1琛ㄧず涓嶅彲鐢�)
+            applyRoomDiscountDto.setInUse("0");
             //灏忓尯ID
             applyRoomDiscountDto.setCommunityId(feeDetailDto.getCommunityId());
             //鎴垮眿id
@@ -196,28 +224,23 @@
             c.setTime(feeDetailDto.getStartTime());
             double month = Double.parseDouble(feeDetailDto.getCycles());
             c.add(Calendar.MONTH, (int) month);
+            c.add(Calendar.DAY_OF_MONTH, -5);//杩欓噷鏍规嵁璁剧疆鏃堕棿鑽h獕5澶�
             Date endTime = c.getTime();
             applyRoomDiscountDto.setEndTime(simpleDateFormat.format(endTime));
             //鏌ヨ鎶樻墸鐢宠琛�
             List<ApplyRoomDiscountDto> applyRoomDiscountDtos = applyRoomDiscountInnerServiceSMOImpl.queryApplyRoomDiscounts(applyRoomDiscountDto);
             //鍒ゆ柇鏌ヨ鐨勬姌鎵g敵璇疯〃鏄惁鏈夋暟鎹�
-            if (applyRoomDiscountDtos.size() > 0) {
+            if (applyRoomDiscountDtos != null && applyRoomDiscountDtos.size() > 0) {
                 //鑾峰彇浼樻儬id
                 String discountId = applyRoomDiscountDtos.get(0).getDiscountId();
+                String ardId = applyRoomDiscountDtos.get(0).getArdId();
+                feeDetailDto.setArdId(ardId);
                 PayFeeConfigDiscountDto payFeeConfigDiscount = new PayFeeConfigDiscountDto();
                 payFeeConfigDiscount.setCommunityId(applyRoomDiscountDtos.get(0).getCommunityId());
                 payFeeConfigDiscount.setDiscountId(discountId);
                 doCompute(payFeeConfigDiscount, Double.parseDouble(feeDetailDto.getCycles()), computeDiscountDtos, feeDetailDto.getFeeId());
             }
         }
-        //鍙栧嚭寮�鍏虫槧灏勭殑鍊�
-        String value = MappingCache.getValue(DOMAIN_COMMON, DISCOUNT_MODE);
-        List<ComputeDiscountDto> computeDiscountDtoList = new ArrayList<>();
-        for (ComputeDiscountDto computeDiscountDto : computeDiscountDtos) {
-            computeDiscountDto.setValue(value);
-            computeDiscountDtoList.add(computeDiscountDto);
-        }
-        return computeDiscountDtoList;
     }
 
     private void doCompute(PayFeeConfigDiscountDto tmpPayFeeConfigDiscountDto, double cycles, List<ComputeDiscountDto> computeDiscountDtos, String feeId) {

--
Gitblit v1.8.0