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

+ 2 - 2
service-fee/src/main/java/com/java110/fee/bmo/fee/IFeeBMO.java

@@ -144,10 +144,10 @@ public interface IFeeBMO extends IApiBaseBMO {
      * 添加物业费用
      *
      * @param paramInJson     接口调用放传入入参
-     * @param dataFlowContext 数据上下文
+     * @param context 数据上下文
      * @return 订单服务能够接受的报文
      */
-    public JSONObject addFee(OwnerCarDto ownerCarDto, JSONObject paramInJson, DataFlowContext dataFlowContext);
+    public JSONObject addFee(OwnerCarDto ownerCarDto, JSONObject paramInJson, ICmdDataFlowContext context);
 
 
     /**

+ 5 - 10
service-fee/src/main/java/com/java110/fee/bmo/fee/impl/FeeBMOImpl.java

@@ -593,18 +593,14 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * 添加物业费用
      *
      * @param paramInJson     接口调用放传入入参
-     * @param dataFlowContext 数据上下文
+     * @param context 数据上下文
      * @return 订单服务能够接受的报文
      */
-    public JSONObject addFee(OwnerCarDto ownerCarDto, JSONObject paramInJson, DataFlowContext dataFlowContext) {
+    public JSONObject addFee(OwnerCarDto ownerCarDto, JSONObject paramInJson, ICmdDataFlowContext context) {
         String time = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A);
         if (paramInJson.containsKey("startTime")) {
             time = paramInJson.getString("startTime");
         }
-        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
-        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
-        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
-        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
         JSONObject businessUnit = new JSONObject();
         businessUnit.put("feeId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
         businessUnit.put("configId", paramInJson.getString("configId"));
@@ -619,10 +615,9 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         businessUnit.put("feeFlag", paramInJson.getString("feeFlag"));
         businessUnit.put("state", "2008001");
         businessUnit.put("batchId", paramInJson.getString("batchId"));
-        businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
-        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeePo.class.getSimpleName(), businessUnit);
+        businessUnit.put("userId", context.getReqHeaders().get(CommonConstant.HTTP_USER_ID));
         paramInJson.put("feeId", businessUnit.getString("feeId"));
-        return business;
+        return businessUnit;
     }
 
     @Override
@@ -663,7 +658,7 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
      * @param dataFlowContext 数据上下文
      * @return 订单服务能够接受的报文
      */
-    public JSONObject addRoomFee(RoomDto roomDto, JSONObject paramInJson, ICmdDataFlowContext dataFlowContext)  {
+    public JSONObject addRoomFee(RoomDto roomDto, JSONObject paramInJson, ICmdDataFlowContext dataFlowContext) {
         String time = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A);
         if (paramInJson.containsKey("feeEndDate")) {
             time = paramInJson.getString("feeEndDate");

+ 56 - 71
service-api/src/main/java/com/java110/api/listener/fee/SaveParkingSpaceCreateFeeListener.java

@@ -1,12 +1,11 @@
-package com.java110.api.listener.fee;
+package com.java110.fee.cmd.fee;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.fee.IFeeBMO;
-import com.java110.api.listener.AbstractServiceApiListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.AbstractServiceCmdListener;
+import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
@@ -15,23 +14,23 @@ import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.parking.ParkingSpaceDto;
 import com.java110.dto.payFeeBatch.PayFeeBatchDto;
 import com.java110.dto.user.UserDto;
-import com.java110.entity.center.AppService;
+import com.java110.fee.bmo.fee.IFeeBMO;
 import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
 import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
 import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
 import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.po.fee.FeeAttrPo;
+import com.java110.po.fee.PayFeePo;
 import com.java110.po.payFeeBatch.PayFeeBatchPo;
-import com.java110.utils.constant.CommonConstant;
-import com.java110.utils.constant.ServiceCodeConstant;
+import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
-import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 
@@ -40,18 +39,8 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
-/**
- * @ClassName SaveParkingSpaceCreateFeeListener
- * @Description TODO
- * @Author wuxw
- * @Date 2020/1/31 15:57
- * @Version 1.0
- * add by wuxw 2020/1/31
- **/
-@Java110Listener("saveParkingSpaceCreateFeeListener")
-public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListener {
-    private static Logger logger = LoggerFactory.getLogger(SaveParkingSpaceCreateFeeListener.class);
-
+@Java110Cmd(serviceCode = "fee.saveParkingSpaceCreateFee")
+public class SaveParkingSpaceCreateFeeCmd extends AbstractServiceCmdListener {
 
     @Autowired
     private IFeeBMO feeBMOImpl;
@@ -73,18 +62,14 @@ public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListene
     @Autowired
     private IUserInnerServiceSMO userInnerServiceSMOImpl;
 
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_SAVE_PARKING_SPEC_CREATE_FEE;
-    }
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
 
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
+    @Autowired
+    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
 
     @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         // super.validatePageInfo(pd);
         Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
         Assert.hasKeyAndValue(reqJson, "locationTypeCd", "未包含收费类型");
@@ -95,8 +80,7 @@ public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListene
     }
 
     @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-        logger.debug("ServiceDataFlowEvent : {}", event);
+    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
         List<OwnerCarDto> ownerCarDtos = null;
         FeeConfigDto feeConfigDto = new FeeConfigDto();
         feeConfigDto.setCommunityId(reqJson.getString("communityId"));
@@ -148,9 +132,10 @@ public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListene
             throw new IllegalArgumentException("未查到需要付费的车位");
         }
 
-        dealParkingSpaceFee(ownerCarDtos, context, reqJson, event);
+        dealParkingSpaceFee(ownerCarDtos, cmdDataFlowContext, reqJson, event);
     }
 
+
     private List<OwnerCarDto> getOwnerCarByParkingArea(JSONObject reqJson) {
         List<OwnerCarDto> ownerCarDtos = new ArrayList<>();
         ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
@@ -225,47 +210,48 @@ public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListene
         ownerCarDtos.addAll(townerCarDtos);
     }
 
-    private void dealParkingSpaceFee(List<OwnerCarDto> ownerCarDtos, DataFlowContext context, JSONObject reqJson, ServiceDataFlowEvent event) {
-
-        AppService service = event.getAppService();
+    private void dealParkingSpaceFee(List<OwnerCarDto> ownerCarDtos, ICmdDataFlowContext context, JSONObject reqJson, CmdEvent event) {
 
-
-        HttpHeaders header = new HttpHeaders();
-        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
-        JSONArray businesses = new JSONArray();
+        List<PayFeePo> feePos = new ArrayList<>();
+        List<FeeAttrPo> feeAttrsPos = new ArrayList<>();
         JSONObject paramInObj = null;
         ResponseEntity<String> responseEntity = null;
         int failParkingSpaces = 0;
+        int curFailRoomCount = 0;
         //添加单元信息
+        int saveFlag = 0;
         for (int ownerCarIndex = 0; ownerCarIndex < ownerCarDtos.size(); ownerCarIndex++) {
-
-            businesses.add(feeBMOImpl.addFee(ownerCarDtos.get(ownerCarIndex), reqJson, context));
+            curFailRoomCount++;
+            feePos.add(BeanConvertUtil.covertBean(feeBMOImpl.addFee(ownerCarDtos.get(ownerCarIndex), reqJson, context), PayFeePo.class));
             if (!StringUtil.isEmpty(ownerCarDtos.get(ownerCarIndex).getOwnerId())) {
                 if (FeeDto.FEE_FLAG_ONCE.equals(reqJson.getString("feeFlag"))) {
-                    businesses.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME,
+                    feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME,
                             reqJson.containsKey("endTime") ? reqJson.getString("endTime") : reqJson.getString("configEndTime")));
                 }
-                businesses.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_ID, ownerCarDtos.get(ownerCarIndex).getOwnerId()));
-                businesses.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_LINK, ownerCarDtos.get(ownerCarIndex).getLink()));
-                businesses.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_NAME, ownerCarDtos.get(ownerCarIndex).getOwnerName()));
+                feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_ID, ownerCarDtos.get(ownerCarIndex).getOwnerId()));
+                feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_LINK, ownerCarDtos.get(ownerCarIndex).getLink()));
+                feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_NAME, ownerCarDtos.get(ownerCarIndex).getOwnerName()));
             }
 
-            if (ownerCarIndex % DEFAULT_ADD_FEE_COUNT == 0 && ownerCarIndex != 0) {
-
-                responseEntity = feeBMOImpl.callService(context, service.getServiceCode(), businesses);
+            //付费对象名称
+            feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_PAY_OBJECT_NAME,
+                    ownerCarDtos.get(ownerCarIndex).getAreaNum() + ownerCarDtos.get(ownerCarIndex).getNum() + "(" + ownerCarDtos.get(ownerCarIndex).getCarNum() + ")"));
 
-                if (responseEntity.getStatusCode() != HttpStatus.OK) {
-                    failParkingSpaces += businesses.size();
+            if (ownerCarIndex % DEFAULT_ADD_FEE_COUNT == 0 && ownerCarIndex != 0) {
+                saveFlag = saveFeeAndAttrs(feePos, feeAttrsPos);
+                feePos = new ArrayList<>();
+                feeAttrsPos = new ArrayList<>();
+                if (saveFlag < 1) {
+                    failParkingSpaces += curFailRoomCount;
+                } else {
+                    curFailRoomCount = 0;
                 }
-
-                businesses = new JSONArray();
             }
         }
-        if (businesses != null && businesses.size() > 0) {
-
-            responseEntity = feeBMOImpl.callService(context, service.getServiceCode(), businesses);
-            if (responseEntity.getStatusCode() != HttpStatus.OK) {
-                failParkingSpaces += businesses.size();
+        if (feePos != null && feePos.size() > 0) {
+            saveFlag = saveFeeAndAttrs(feePos, feeAttrsPos);
+            if (saveFlag < 1) {
+                failParkingSpaces += curFailRoomCount;
             }
         }
 
@@ -279,16 +265,15 @@ public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListene
         context.setResponseEntity(responseEntity);
     }
 
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
+    private int saveFeeAndAttrs(List<PayFeePo> feePos, List<FeeAttrPo> feeAttrsPos) {
+        int flag = feeInnerServiceSMOImpl.saveFee(feePos);
+        if (flag < 1) {
+            return flag;
+        }
 
-    public IParkingSpaceInnerServiceSMO getParkingSpaceInnerServiceSMOImpl() {
-        return parkingSpaceInnerServiceSMOImpl;
-    }
+        flag = feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrsPos);
 
-    public void setParkingSpaceInnerServiceSMOImpl(IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl) {
-        this.parkingSpaceInnerServiceSMOImpl = parkingSpaceInnerServiceSMOImpl;
+        return flag;
     }
+
 }

+ 4 - 6
service-fee/src/main/java/com/java110/fee/cmd/fee/SaveRoomCreateFeeCmd.java

@@ -212,8 +212,6 @@ public class SaveRoomCreateFeeCmd extends AbstractServiceCmdListener {
         int saveFlag = 0;
         for (int roomIndex = 0; roomIndex < roomDtos.size(); roomIndex++) {
             curFailRoomCount++;
-            //businesses.add();
-
             //加入 房屋费用
             feePos.add(BeanConvertUtil.covertBean(feeBMOImpl.addRoomFee(roomDtos.get(roomIndex), reqJson, context), PayFeePo.class));
             if (!StringUtil.isEmpty(roomDtos.get(roomIndex).getOwnerId())) {
@@ -224,11 +222,11 @@ public class SaveRoomCreateFeeCmd extends AbstractServiceCmdListener {
                 feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_ID, roomDtos.get(roomIndex).getOwnerId()));
                 feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_LINK, roomDtos.get(roomIndex).getLink()));
                 feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_NAME, roomDtos.get(roomIndex).getOwnerName()));
-                //付费对象名称
-                feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_PAY_OBJECT_NAME,
-                        roomDtos.get(roomIndex).getFloorNum() + "-" + roomDtos.get(0).getUnitNum() + "-" + roomDtos.get(0).getRoomNum()));
-
             }
+            //付费对象名称
+            feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_PAY_OBJECT_NAME,
+                    roomDtos.get(roomIndex).getFloorNum() + "-" + roomDtos.get(roomIndex).getUnitNum() + "-" + roomDtos.get(roomIndex).getRoomNum()));
+
             if (roomIndex % DEFAULT_ADD_FEE_COUNT == 0 && roomIndex != 0) {
                 saveFlag = saveFeeAndAttrs(feePos, feeAttrsPos);
                 feePos = new ArrayList<>();