Просмотр исходного кода

优化退费时没有考虑折扣 优惠问题

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

+ 9 - 0
service-api/src/main/java/com/java110/api/bmo/payFeeDetailDiscount/IPayFeeDetailDiscountBMO.java

@@ -15,6 +15,15 @@ public interface IPayFeeDetailDiscountBMO extends IApiBaseBMO {
      */
     JSONObject addPayFeeDetailDiscount(JSONObject paramInJson,JSONObject discountJson, DataFlowContext dataFlowContext);
 
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+     void addPayFeeDetailDiscountTwo(JSONObject paramInJson, JSONObject discountJson, DataFlowContext dataFlowContext);
+
     /**
      * 添加缴费优惠信息
      *

+ 19 - 1
service-api/src/main/java/com/java110/api/bmo/payFeeDetailDiscount/impl/PayFeeDetailDiscountBMOImpl.java

@@ -5,7 +5,6 @@ import com.java110.api.bmo.ApiBaseBMO;
 import com.java110.api.bmo.payFeeDetailDiscount.IPayFeeDetailDiscountBMO;
 import com.java110.core.context.DataFlowContext;
 import com.java110.intf.fee.IPayFeeDetailDiscountInnerServiceSMO;
-import com.java110.po.fee.PayFeePo;
 import com.java110.po.payFeeDetailDiscount.PayFeeDetailDiscountPo;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.CommonConstant;
@@ -44,6 +43,25 @@ public class PayFeeDetailDiscountBMOImpl extends ApiBaseBMO implements IPayFeeDe
 
     }
 
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    public void addPayFeeDetailDiscountTwo(JSONObject paramInJson, JSONObject discountJson, DataFlowContext dataFlowContext) {
+        JSONObject businessFee = new JSONObject();
+        businessFee.put("detailDiscountId", "-1");
+        businessFee.put("discountPrice", discountJson.getString("discountPrice"));
+        businessFee.put("discountId", discountJson.getString("discountId"));
+        businessFee.put("detailId", paramInJson.containsKey("newDetailId") ? paramInJson.getString("newDetailId") : paramInJson.getString("detailId"));
+        businessFee.put("communityId", paramInJson.getString("communityId"));
+        businessFee.put("feeId", paramInJson.getString("feeId"));
+        PayFeeDetailDiscountPo payFeeDetailDiscountPo = BeanConvertUtil.covertBean(businessFee, PayFeeDetailDiscountPo.class);
+        super.insert(dataFlowContext, payFeeDetailDiscountPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_DETAIL_DISCOUNT_INFO);
+    }
+
 
     /**
      * 添加活动信息

+ 5 - 3
service-api/src/main/java/com/java110/api/bmo/returnPayFee/impl/ReturnPayFeeBMOImpl.java

@@ -4,10 +4,11 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.ApiBaseBMO;
 import com.java110.api.bmo.returnPayFee.IReturnPayFeeBMO;
 import com.java110.core.context.DataFlowContext;
-import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
-import com.java110.intf.fee.IReturnPayFeeInnerServiceSMO;
+import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.fee.FeeDetailDto;
 import com.java110.dto.returnPayFee.ReturnPayFeeDto;
+import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
+import com.java110.intf.fee.IReturnPayFeeInnerServiceSMO;
 import com.java110.po.fee.PayFeeDetailPo;
 import com.java110.po.fee.ReturnPayFeePo;
 import com.java110.utils.constant.BusinessTypeConstant;
@@ -82,9 +83,10 @@ public class ReturnPayFeeBMOImpl extends ApiBaseBMO implements IReturnPayFeeBMO
 
         JSONObject businessReturnPayFee = new JSONObject();
         businessReturnPayFee.putAll(paramInJson);
-        businessReturnPayFee.put("detailId", "-1");
+        businessReturnPayFee.put("detailId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
         PayFeeDetailPo returnPayFeePo = BeanConvertUtil.covertBean(businessReturnPayFee, PayFeeDetailPo.class);
         super.insert(dataFlowContext, returnPayFeePo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_DETAIL);
+        paramInJson.put("newDetailId", businessReturnPayFee.getString("detailId"));
     }
 
 

+ 23 - 1
service-api/src/main/java/com/java110/api/listener/returnPayFee/UpdateReturnPayFeeListener.java

@@ -2,6 +2,7 @@ package com.java110.api.listener.returnPayFee;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.fee.IFeeBMO;
+import com.java110.api.bmo.payFeeDetailDiscount.IPayFeeDetailDiscountBMO;
 import com.java110.api.bmo.returnPayFee.IReturnPayFeeBMO;
 import com.java110.api.listener.AbstractServiceApiPlusListener;
 import com.java110.core.annotation.Java110Listener;
@@ -9,8 +10,10 @@ import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.dto.fee.FeeDetailDto;
 import com.java110.dto.fee.FeeDto;
+import com.java110.dto.payFeeDetailDiscount.PayFeeDetailDiscountDto;
 import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeDetailDiscountInnerServiceSMO;
 import com.java110.utils.constant.ServiceCodeReturnPayFeeConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.DateUtil;
@@ -18,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
 import java.util.List;
 
 
@@ -36,9 +38,16 @@ public class UpdateReturnPayFeeListener extends AbstractServiceApiPlusListener {
 
     @Autowired
     private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeDetailDiscountInnerServiceSMO payFeeDetailDiscountInnerServiceSMOImpl;
+
     @Autowired
     private IFeeBMO feeBMOImpl;
 
+    @Autowired
+    private IPayFeeDetailDiscountBMO payFeeDetailDiscountBMOImpl;
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "returnFeeId", "returnFeeId不能为空");
@@ -105,6 +114,19 @@ public class UpdateReturnPayFeeListener extends AbstractServiceApiPlusListener {
             }
             feeBMOImpl.updateFee(reqJson, context);
 
+            //检查是否有优惠
+            PayFeeDetailDiscountDto payFeeDetailDiscountDto = new PayFeeDetailDiscountDto();
+            payFeeDetailDiscountDto.setCommunityId(feeDto1.getCommunityId());
+            payFeeDetailDiscountDto.setDetailId(reqJson.getString("detailId"));
+            List<PayFeeDetailDiscountDto> payFeeDetailDiscountDtos = payFeeDetailDiscountInnerServiceSMOImpl.queryPayFeeDetailDiscounts(payFeeDetailDiscountDto);
+            if (payFeeDetailDiscountDtos != null && payFeeDetailDiscountDtos.size() > 0) {
+                JSONObject discountJson = new JSONObject();
+                discountJson.put("discountId", payFeeDetailDiscountDtos.get(0).getDiscountId());
+                discountJson.put("discountPrice", unum(payFeeDetailDiscountDtos.get(0).getDiscountPrice()));
+                payFeeDetailDiscountBMOImpl.addPayFeeDetailDiscountTwo(reqJson,
+                        discountJson, context);
+            }
+
         }
         //不通过
         if ("1200".equals(reqJson.getString("state"))) {