Selaa lähdekoodia

优化空置房

java110 5 vuotta sitten
vanhempi
commit
4b6f3a3ae7

+ 22 - 10
service-fee/src/main/java/com/java110/fee/smo/impl/FeeDiscountInnerServiceSMOImpl.java

@@ -163,6 +163,14 @@ public class FeeDiscountInnerServiceSMOImpl extends BaseServiceSMO implements IF
         List<PayFeeConfigDiscountDto> payFeeConfigDiscountDtos =
         List<PayFeeConfigDiscountDto> payFeeConfigDiscountDtos =
                 payFeeConfigDiscountInnerServiceSMOImpl.queryPayFeeConfigDiscounts(payFeeConfigDiscountDto);
                 payFeeConfigDiscountInnerServiceSMOImpl.queryPayFeeConfigDiscounts(payFeeConfigDiscountDto);
         if (payFeeConfigDiscountDtos == null || payFeeConfigDiscountDtos.size() < 1) {
         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);
+                computeDiscountDtoList.add(computeDiscountDto);
+            }
             return computeDiscountDtos;
             return computeDiscountDtos;
         }
         }
         c.setTime(feeDetailDto.getStartTime());
         c.setTime(feeDetailDto.getStartTime());
@@ -181,7 +189,19 @@ public class FeeDiscountInnerServiceSMOImpl extends BaseServiceSMO implements IF
                 continue;
                 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);
+            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,去折扣申请表查询是否有折扣
             //根据房屋ID,去折扣申请表查询是否有折扣
             ApplyRoomDiscountDto applyRoomDiscountDto = new ApplyRoomDiscountDto();
             ApplyRoomDiscountDto applyRoomDiscountDto = new ApplyRoomDiscountDto();
             //审核已通过
             //审核已通过
@@ -201,7 +221,7 @@ public class FeeDiscountInnerServiceSMOImpl extends BaseServiceSMO implements IF
             //查询折扣申请表
             //查询折扣申请表
             List<ApplyRoomDiscountDto> applyRoomDiscountDtos = applyRoomDiscountInnerServiceSMOImpl.queryApplyRoomDiscounts(applyRoomDiscountDto);
             List<ApplyRoomDiscountDto> applyRoomDiscountDtos = applyRoomDiscountInnerServiceSMOImpl.queryApplyRoomDiscounts(applyRoomDiscountDto);
             //判断查询的折扣申请表是否有数据
             //判断查询的折扣申请表是否有数据
-            if (applyRoomDiscountDtos.size() > 0) {
+            if (applyRoomDiscountDtos != null && applyRoomDiscountDtos.size() > 0) {
                 //获取优惠id
                 //获取优惠id
                 String discountId = applyRoomDiscountDtos.get(0).getDiscountId();
                 String discountId = applyRoomDiscountDtos.get(0).getDiscountId();
                 PayFeeConfigDiscountDto payFeeConfigDiscount = new PayFeeConfigDiscountDto();
                 PayFeeConfigDiscountDto payFeeConfigDiscount = new PayFeeConfigDiscountDto();
@@ -210,14 +230,6 @@ public class FeeDiscountInnerServiceSMOImpl extends BaseServiceSMO implements IF
                 doCompute(payFeeConfigDiscount, Double.parseDouble(feeDetailDto.getCycles()), computeDiscountDtos, feeDetailDto.getFeeId());
                 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) {
     private void doCompute(PayFeeConfigDiscountDto tmpPayFeeConfigDiscountDto, double cycles, List<ComputeDiscountDto> computeDiscountDtos, String feeId) {