java110 лет назад: 4
Родитель
Сommit
e00ebf8be8

+ 14 - 0
service-fee/src/main/java/com/java110/fee/bmo/fee/impl/FeeBMOImpl.java

@@ -438,7 +438,21 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         Calendar endCalender = Calendar.getInstance();
         endCalender.setTime(endTime);
         endCalender.add(Calendar.MONTH, Integer.parseInt(paramInJson.getString("cycles")));
+        if (FeeDto.FEE_FLAG_ONCE.equals(feeInfo.getFeeFlag())) {
+            if (feeInfo.getDeadlineTime() != null) {
+                endCalender.setTime(feeInfo.getDeadlineTime());
+            } else if (!StringUtil.isEmpty(feeInfo.getCurDegrees())) {
+                endCalender.setTime(feeInfo.getCurReadingTime());
+            } else if (feeInfo.getImportFeeEndTime() == null) {
+                endCalender.setTime(feeInfo.getConfigEndTime());
+            } else {
+                endCalender.setTime(feeInfo.getImportFeeEndTime());
+            }
+            businessFee.put("state",FeeDto.STATE_FINISH);
+        }
         feeInfo.setEndTime(endCalender.getTime());
+
+
         //判断 结束时间 是否大于 费用项 结束时间,这里 容错一下,如果 费用结束时间大于 费用项结束时间 30天 走报错 属于多缴费
         if (feeInfo.getEndTime().getTime() - feeInfo.getConfigEndTime().getTime() > 30 * 24 * 60 * 60 * 1000L) {
             throw new IllegalArgumentException("缴费超过了 费用项结束时间" + JSONObject.toJSONString(feeInfo) + "|||" + paramInJson.getString("cycles"));