Переглянути джерело

费用到期日问题修复

wangdongguang 6 роки тому
батько
коміт
cc951d7984

+ 3 - 5
Api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java

@@ -3,7 +3,6 @@ package com.java110.api.bmo.fee.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.ApiBaseBMO;
-import com.java110.api.bmo.IApiBaseBMO;
 import com.java110.api.bmo.fee.IFeeBMO;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
@@ -16,10 +15,7 @@ import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.hardwareAdapation.CarInoutDto;
 import com.java110.dto.parking.ParkingSpaceDto;
-import com.java110.entity.order.Orders;
-import com.java110.utils.constant.BusinessTypeConstant;
-import com.java110.utils.constant.CommonConstant;
-import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.constant.*;
 import com.java110.utils.exception.ListenerExecuteException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
@@ -231,6 +227,8 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         feeMap.put("startTime", DateUtil.getFormatTimeString(feeInfo.getStartTime(), DateUtil.DATE_FORMATE_STRING_A));
         feeMap.put("endTime", DateUtil.getFormatTimeString(feeInfo.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
         feeMap.put("cycles", paramInJson.getString("cycles"));
+        feeMap.put("configEndTime",feeInfo.getConfigEndTime());
+
         businessFee.putAll(feeMap);
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFee", businessFee);
 

+ 16 - 3
FeeService/src/main/java/com/java110/fee/listener/fee/UpdateFeeInfoListener.java

@@ -5,9 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.core.smo.order.IOrderInnerServiceSMO;
 import com.java110.dto.order.BusinessDto;
 import com.java110.fee.dao.IFeeDetailServiceDao;
-import com.java110.utils.constant.BusinessTypeConstant;
-import com.java110.utils.constant.ResponseConstant;
-import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.constant.*;
 import com.java110.utils.exception.ListenerExecuteException;
 import com.java110.utils.lock.DistributedLock;
 import com.java110.utils.util.Assert;
@@ -161,6 +159,21 @@ public class UpdateFeeInfoListener extends AbstractFeeBusinessServiceDataFlowLis
                         }
                         businessFeeInfo.put("end_time", endCalender.getTime());
                     }
+
+                    // 一次性收费类型,缴费后,则设置费用状态为收费结束、设置结束日期为费用项终止日期
+                    if(FeeFlagTypeConstant.ONETIME.equals(feeInfo.get(0).get("feeFlag"))){
+                        businessFeeInfo.put("state", FeeStateConstant.END);
+                        businessFeeInfo.put("end_time", feeInfo.get(0).get("configEndTime"));
+                    }
+
+                    // 周期性收费、缴费后,到期日期在费用项终止日期后,则设置缴费状态结束,设置结束日期为费用项终止日期
+                    if(FeeFlagTypeConstant.CYCLE.equals(feeInfo.get(0).get("feeFlag"))){
+                        if(((Date)businessFeeInfo.get("endTime")).after((Date)feeInfo.get(0).get("configEndTime"))) {
+                            businessFeeInfo.put("state", FeeStateConstant.END);
+                            businessFeeInfo.put("end_time", feeInfo.get(0).get("configEndTime"));
+                        }
+                    }
+
                     flushBusinessFeeInfo(businessFeeInfo, StatusConstant.STATUS_CD_VALID);
                     feeServiceDaoImpl.updateFeeInfoInstance(businessFeeInfo);
                     if (businessFeeInfo.size() == 1) {

+ 26 - 0
java110-bean/src/main/java/com/java110/dto/fee/FeeDto.java

@@ -50,6 +50,16 @@ public class FeeDto extends PageDto implements Serializable {
 
     private String statusCd = "0";
 
+    /**
+     * 费用项开始时间
+     */
+    private  Date configStartTime;
+    /**
+     * 费用项结束时间
+     */
+    private Date  configEndTime;
+
+
 
     public String getAmount() {
         return amount;
@@ -276,4 +286,20 @@ public class FeeDto extends PageDto implements Serializable {
     public void setIsDefault(String isDefault) {
         this.isDefault = isDefault;
     }
+
+    public Date getConfigStartTime() {
+        return configStartTime;
+    }
+
+    public void setConfigStartTime(Date configStartTime) {
+        this.configStartTime = configStartTime;
+    }
+
+    public Date getConfigEndTime() {
+        return configEndTime;
+    }
+
+    public void setConfigEndTime(Date configEndTime) {
+        this.configEndTime = configEndTime;
+    }
 }

+ 1 - 1
java110-db/src/main/resources/mapper/fee/FeeServiceDaoImplMapper.xml

@@ -136,7 +136,7 @@
         userId,t.payer_obj_id,t.payer_obj_id payerObjId,pfc.square_price squarePrice,pfc.additional_amount
         additionalAmount,t.fee_flag,t.fee_flag feeFlag,t.state,t.config_id,t.config_id configId,
         pfc.fee_name feeName,td1.name feeTypeCdName,td2.name stateName,td3.name feeFlagName,pfc.computing_formula computingFormula,
-        t.payer_obj_type,t.payer_obj_type payerObjType,pfc.is_default isDefault
+        t.payer_obj_type,t.payer_obj_type payerObjType,pfc.is_default isDefault,pfc.start_time configStartTime,pfc.end_time configEndTime
         from pay_fee t,pay_fee_config pfc,t_dict td1,t_dict td2,t_dict td3
         where 1 =1
         and t.fee_type_cd = pfc.fee_type_cd

+ 25 - 0
java110-utils/src/main/java/com/java110/utils/constant/FeeFlagTypeConstant.java

@@ -0,0 +1,25 @@
+package com.java110.utils.constant;
+
+
+/**
+ * @author wangdongguang
+ * @create 2020-04-20 下午17:28
+ * @desc 业务类型
+ */
+public class FeeFlagTypeConstant {
+
+
+
+    /**
+     * 一次性收费
+     */
+    public static final String ONETIME = "2006012";
+
+    /**
+     * 周期性收费
+     */
+    public static final String CYCLE = "1003006";
+
+
+
+}

+ 23 - 0
java110-utils/src/main/java/com/java110/utils/constant/FeeStateConstant.java

@@ -0,0 +1,23 @@
+package com.java110.utils.constant;
+
+/**
+ * @Author wangdongguang
+ * @create 2020/4/25 5:08 下午
+ */
+public class FeeStateConstant {
+    /**
+     * 收费未开始
+     */
+    public static final String NOT_STARTED = "2007001";
+
+    /**
+     * 收费中
+     */
+    public static final String CHARGING = "2008001";
+
+    /**
+     * 收费结束
+     */
+    public static final String END = "2009001";
+
+}