From eaec3e8bcaf227ef3e3d1f2bffd59dd24600b01f Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 28 六月 2022 10:22:07 +0800
Subject: [PATCH] 兼容性优化处理

---
 /dev/null                                                                        |  129 ---------
 service-fee/src/main/java/com/java110/fee/cmd/fee/SaveTempCarFeeConfigCmd.java   |  125 +++++++++
 service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeByCarInoutCmd.java     |   59 ++++
 service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeDetailCmd.java         |   80 +-----
 service-fee/src/main/java/com/java110/fee/cmd/fee/QueryArrearsFeeCmd.java        |  148 ++---------
 service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeByParkingSpaceCmd.java |   85 ++++++
 service-fee/src/main/java/com/java110/fee/cmd/fee/ListTempCarFeeConfigsCmd.java  |   52 ++++
 service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java    |   47 +++
 8 files changed, 408 insertions(+), 317 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/listener/fee/ListTempCarFeeConfigAttrsListener.java b/service-api/src/main/java/com/java110/api/listener/fee/ListTempCarFeeConfigAttrsListener.java
deleted file mode 100755
index c158594..0000000
--- a/service-api/src/main/java/com/java110/api/listener/fee/ListTempCarFeeConfigAttrsListener.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.java110.api.listener.fee;
-
-import com.alibaba.fastjson.JSONObject;
-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.dto.tempCarFeeConfig.TempCarFeeConfigAttrDto;
-import com.java110.intf.fee.ITempCarFeeConfigAttrInnerServiceSMO;
-import com.java110.utils.constant.ServiceCodeTempCarFeeConfigAttrConstant;
-import com.java110.utils.util.BeanConvertUtil;
-import com.java110.vo.ResultVo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 鏌ヨ灏忓尯渚﹀惉绫�
- */
-@Java110Listener("listTempCarFeeConfigAttrsListener")
-public class ListTempCarFeeConfigAttrsListener extends AbstractServiceApiListener {
-
-    @Autowired
-    private ITempCarFeeConfigAttrInnerServiceSMO tempCarFeeConfigAttrInnerServiceSMOImpl;
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeTempCarFeeConfigAttrConstant.LIST_TEMPCARFEECONFIGATTRS;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
-    }
-
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-
-    public ITempCarFeeConfigAttrInnerServiceSMO getTempCarFeeConfigAttrInnerServiceSMOImpl() {
-        return tempCarFeeConfigAttrInnerServiceSMOImpl;
-    }
-
-    public void setTempCarFeeConfigAttrInnerServiceSMOImpl(ITempCarFeeConfigAttrInnerServiceSMO tempCarFeeConfigAttrInnerServiceSMOImpl) {
-        this.tempCarFeeConfigAttrInnerServiceSMOImpl = tempCarFeeConfigAttrInnerServiceSMOImpl;
-    }
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        super.validatePageInfo(reqJson);
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        TempCarFeeConfigAttrDto tempCarFeeConfigAttrDto = BeanConvertUtil.covertBean(reqJson, TempCarFeeConfigAttrDto.class);
-
-        int count = tempCarFeeConfigAttrInnerServiceSMOImpl.queryTempCarFeeConfigAttrsCount(tempCarFeeConfigAttrDto);
-
-        List<TempCarFeeConfigAttrDto> tempCarFeeConfigAttrDtos = null;
-
-        if (count > 0) {
-            tempCarFeeConfigAttrDtos = tempCarFeeConfigAttrInnerServiceSMOImpl.queryTempCarFeeConfigAttrs(tempCarFeeConfigAttrDto);
-        } else {
-            tempCarFeeConfigAttrDtos = new ArrayList<>();
-        }
-
-        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, tempCarFeeConfigAttrDtos);
-
-        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
-
-        context.setResponseEntity(responseEntity);
-
-    }
-}
diff --git a/service-api/src/main/java/com/java110/api/listener/fee/ListTempCarFeeConfigsListener.java b/service-api/src/main/java/com/java110/api/listener/fee/ListTempCarFeeConfigsListener.java
deleted file mode 100755
index b3344a9..0000000
--- a/service-api/src/main/java/com/java110/api/listener/fee/ListTempCarFeeConfigsListener.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.java110.api.listener.fee;
-
-import com.alibaba.fastjson.JSONObject;
-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.intf.fee.ITempCarFeeConfigInnerServiceSMO;
-import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
-import com.java110.utils.constant.ServiceCodeTempCarFeeConfigConstant;
-import com.java110.utils.util.BeanConvertUtil;
-import com.java110.vo.ResultVo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 鏌ヨ灏忓尯渚﹀惉绫�
- */
-@Java110Listener("listTempCarFeeConfigsListener")
-public class ListTempCarFeeConfigsListener extends AbstractServiceApiListener {
-
-    @Autowired
-    private ITempCarFeeConfigInnerServiceSMO tempCarFeeConfigInnerServiceSMOImpl;
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeTempCarFeeConfigConstant.LIST_TEMPCARFEECONFIGS;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
-    }
-
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-
-    public ITempCarFeeConfigInnerServiceSMO getTempCarFeeConfigInnerServiceSMOImpl() {
-        return tempCarFeeConfigInnerServiceSMOImpl;
-    }
-
-    public void setTempCarFeeConfigInnerServiceSMOImpl(ITempCarFeeConfigInnerServiceSMO tempCarFeeConfigInnerServiceSMOImpl) {
-        this.tempCarFeeConfigInnerServiceSMOImpl = tempCarFeeConfigInnerServiceSMOImpl;
-    }
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        super.validatePageInfo(reqJson);
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        TempCarFeeConfigDto tempCarFeeConfigDto = BeanConvertUtil.covertBean(reqJson, TempCarFeeConfigDto.class);
-
-        int count = tempCarFeeConfigInnerServiceSMOImpl.queryTempCarFeeConfigsCount(tempCarFeeConfigDto);
-
-        List<TempCarFeeConfigDto> tempCarFeeConfigDtos = null;
-
-        if (count > 0) {
-            tempCarFeeConfigDtos = tempCarFeeConfigInnerServiceSMOImpl.queryTempCarFeeConfigs(tempCarFeeConfigDto);
-        } else {
-            tempCarFeeConfigDtos = new ArrayList<>();
-        }
-
-        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, tempCarFeeConfigDtos);
-
-        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
-
-        context.setResponseEntity(responseEntity);
-
-    }
-}
diff --git a/service-api/src/main/java/com/java110/api/listener/fee/QueryFeeByCarInoutListener.java b/service-api/src/main/java/com/java110/api/listener/fee/QueryFeeByCarInoutListener.java
deleted file mode 100755
index 727d523..0000000
--- a/service-api/src/main/java/com/java110/api/listener/fee/QueryFeeByCarInoutListener.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package com.java110.api.listener.fee;
-
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.listener.AbstractServiceApiDataFlowListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.dto.fee.FeeDto;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.FeeTypeConstant;
-import com.java110.utils.constant.ServiceCodeConstant;
-import com.java110.utils.util.Assert;
-import com.java110.utils.util.BeanConvertUtil;
-import com.java110.vo.api.ApiMainFeeVo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-
-import java.util.List;
-
-/**
- * @ClassName FloorDto
- * @Description 灏忓尯妤兼暟鎹眰渚﹀惉绫�
- * @Author wuxw
- * @Date 2019/4/24 8:52
- * @Version 1.0
- * add by wuxw 2019/4/24
- **/
-@Java110Listener("queryFeeByCarInout")
-public class QueryFeeByCarInoutListener extends AbstractServiceApiDataFlowListener {
-
-    @Autowired
-    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_QUERY_FEE_BY_CAR_INOUT;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
-    }
-
-    /**
-     * 涓氬姟灞傛暟鎹鐞�
-     *
-     * @param event 鏃堕棿瀵硅薄
-     */
-    @Override
-    public void soService(ServiceDataFlowEvent event) {
-        DataFlowContext dataFlowContext = event.getDataFlowContext();
-        //鑾峰彇璇锋眰鏁版嵁
-        JSONObject reqJson = dataFlowContext.getReqJson();
-        validateFeeData(reqJson);
-        FeeDto feeDtoParamIn = BeanConvertUtil.covertBean(reqJson, FeeDto.class);
-        feeDtoParamIn.setPayerObjId(reqJson.getString("inoutId"));
-        feeDtoParamIn.setState(reqJson.getString("state"));
-        feeDtoParamIn.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_TEMP_DOWN_PARKING_SPACE);
-        feeDtoParamIn.setFeeFlag("2006012");
-
-        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDtoParamIn);
-        ResponseEntity<String> responseEntity = null;
-        if (feeDtos == null || feeDtos.size() == 0) {
-            responseEntity = new ResponseEntity<String>("{}", HttpStatus.OK);
-            dataFlowContext.setResponseEntity(responseEntity);
-            return ;
-        }
-
-        FeeDto feeDto = feeDtos.get(0);
-
-        ApiMainFeeVo apiFeeVo = BeanConvertUtil.covertBean(feeDto, ApiMainFeeVo.class);
-
-        responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiFeeVo), HttpStatus.OK);
-
-
-        dataFlowContext.setResponseEntity(responseEntity);
-    }
-
-    /**
-     * 鏍¢獙鏌ヨ鏉′欢鏄惁婊¤冻鏉′欢
-     *
-     * @param reqJson 鍖呭惈鏌ヨ鏉′欢
-     */
-    private void validateFeeData(JSONObject reqJson) {
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "璇锋眰涓湭鍖呭惈communityId淇℃伅");
-        Assert.jsonObjectHaveKey(reqJson, "inoutId", "璇锋眰涓湭鍖呭惈inoutId淇℃伅");
-        Assert.jsonObjectHaveKey(reqJson, "state", "璇锋眰涓湭鍖呭惈state淇℃伅");
-    }
-
-    @Override
-    public int getOrder() {
-        return super.DEFAULT_ORDER;
-    }
-
-    public IFeeInnerServiceSMO getFeeInnerServiceSMOImpl() {
-        return feeInnerServiceSMOImpl;
-    }
-
-    public void setFeeInnerServiceSMOImpl(IFeeInnerServiceSMO feeInnerServiceSMOImpl) {
-        this.feeInnerServiceSMOImpl = feeInnerServiceSMOImpl;
-    }
-}
diff --git a/service-api/src/main/java/com/java110/api/listener/fee/QueryFeeByParkingSpaceListener.java b/service-api/src/main/java/com/java110/api/listener/fee/QueryFeeByParkingSpaceListener.java
deleted file mode 100755
index c73bb9e..0000000
--- a/service-api/src/main/java/com/java110/api/listener/fee/QueryFeeByParkingSpaceListener.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package com.java110.api.listener.fee;
-
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.listener.AbstractServiceApiDataFlowListener;
-import com.java110.utils.constant.ServiceCodeConstant;
-import com.java110.utils.util.Assert;
-import com.java110.utils.util.BeanConvertUtil;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.user.IOwnerCarInnerServiceSMO;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
-import com.java110.dto.fee.FeeDto;
-import com.java110.dto.owner.OwnerCarDto;
-import com.java110.dto.parking.ParkingSpaceDto;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.vo.api.ApiParkingSpaceFeeVo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-
-import java.util.List;
-
-/**
- * @ClassName FloorDto
- * @Description 灏忓尯妤兼暟鎹眰渚﹀惉绫�
- * @Author wuxw
- * @Date 2019/4/24 8:52
- * @Version 1.0
- * add by wuxw 2019/4/24
- **/
-@Java110Listener("queryFeeByParkingSpace")
-public class QueryFeeByParkingSpaceListener extends AbstractServiceApiDataFlowListener {
-
-    @Autowired
-    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
-
-    @Autowired
-    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
-
-
-    @Autowired
-    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_QUERY_FEE_BY_PARKING_SPACE;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
-    }
-
-    /**
-     * 涓氬姟灞傛暟鎹鐞�
-     *
-     * @param event 鏃堕棿瀵硅薄
-     */
-    @Override
-    public void soService(ServiceDataFlowEvent event) {
-        DataFlowContext dataFlowContext = event.getDataFlowContext();
-        //鑾峰彇璇锋眰鏁版嵁
-        JSONObject reqJson = dataFlowContext.getReqJson();
-        validateFeeData(reqJson);
-        FeeDto feeDtoParamIn = BeanConvertUtil.covertBean(reqJson, FeeDto.class);
-        feeDtoParamIn.setPayerObjId(reqJson.getString("psId"));
-
-        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDtoParamIn);
-        ResponseEntity<String> responseEntity = null;
-        if (feeDtos == null || feeDtos.size() == 0) {
-            responseEntity = new ResponseEntity<String>("{}", HttpStatus.OK);
-            dataFlowContext.setResponseEntity(responseEntity);
-            return ;
-        }
-
-        FeeDto feeDto = feeDtos.get(0);
-
-        ApiParkingSpaceFeeVo apiFeeVo = BeanConvertUtil.covertBean(feeDto, ApiParkingSpaceFeeVo.class);
-
-        //鍋滆溅浣嶄俊鎭�
-        ParkingSpaceDto parkingSpaceDto = BeanConvertUtil.covertBean(reqJson, ParkingSpaceDto.class);
-        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
-
-        Assert.listOnlyOne(parkingSpaceDtos, "鏈煡璇㈠埌鎴栨煡璇㈠鏉� 杞︿綅淇℃伅");
-
-        parkingSpaceDto = parkingSpaceDtos.get(0);
-
-        BeanConvertUtil.covertBean(parkingSpaceDto, apiFeeVo);
-
-        //鏌ヨ杞﹁締淇℃伅
-        OwnerCarDto  ownerCarDto = BeanConvertUtil.covertBean(reqJson, OwnerCarDto.class);
-
-        List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
-        Assert.listOnlyOne(ownerCarDtos, "鏈煡璇㈠埌鎴栨煡璇㈠鏉� 杞﹁締淇℃伅");
-        ownerCarDto = ownerCarDtos.get(0);
-
-        BeanConvertUtil.covertBean(ownerCarDto, apiFeeVo);
-
-
-        responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiFeeVo), HttpStatus.OK);
-
-
-        dataFlowContext.setResponseEntity(responseEntity);
-    }
-
-    /**
-     * 鏍¢獙鏌ヨ鏉′欢鏄惁婊¤冻鏉′欢
-     *
-     * @param reqJson 鍖呭惈鏌ヨ鏉′欢
-     */
-    private void validateFeeData(JSONObject reqJson) {
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "璇锋眰涓湭鍖呭惈communityId淇℃伅");
-        Assert.jsonObjectHaveKey(reqJson, "psId", "璇锋眰涓湭鍖呭惈psId淇℃伅");
-
-
-    }
-
-    @Override
-    public int getOrder() {
-        return super.DEFAULT_ORDER;
-    }
-
-    public IFeeInnerServiceSMO getFeeInnerServiceSMOImpl() {
-        return feeInnerServiceSMOImpl;
-    }
-
-    public void setFeeInnerServiceSMOImpl(IFeeInnerServiceSMO feeInnerServiceSMOImpl) {
-        this.feeInnerServiceSMOImpl = feeInnerServiceSMOImpl;
-    }
-
-
-    public IParkingSpaceInnerServiceSMO getParkingSpaceInnerServiceSMOImpl() {
-        return parkingSpaceInnerServiceSMOImpl;
-    }
-
-    public void setParkingSpaceInnerServiceSMOImpl(IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl) {
-        this.parkingSpaceInnerServiceSMOImpl = parkingSpaceInnerServiceSMOImpl;
-    }
-
-
-    public IOwnerCarInnerServiceSMO getOwnerCarInnerServiceSMOImpl() {
-        return ownerCarInnerServiceSMOImpl;
-    }
-
-    public void setOwnerCarInnerServiceSMOImpl(IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl) {
-        this.ownerCarInnerServiceSMOImpl = ownerCarInnerServiceSMOImpl;
-    }
-}
diff --git a/service-api/src/main/java/com/java110/api/listener/fee/SaveTempCarFeeConfigAttrListener.java b/service-api/src/main/java/com/java110/api/listener/fee/SaveTempCarFeeConfigAttrListener.java
deleted file mode 100755
index 5f56dde..0000000
--- a/service-api/src/main/java/com/java110/api/listener/fee/SaveTempCarFeeConfigAttrListener.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.java110.api.listener.fee;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.tempCarFeeConfigAttr.ITempCarFeeConfigAttrBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ServiceCodeTempCarFeeConfigAttrConstant;
-import com.java110.utils.util.Assert;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-/**
- * 淇濆瓨鍟嗘埛渚﹀惉
- * add by wuxw 2019-06-30
- */
-@Java110Listener("saveTempCarFeeConfigAttrListener")
-public class SaveTempCarFeeConfigAttrListener extends AbstractServiceApiPlusListener {
-
-    @Autowired
-    private ITempCarFeeConfigAttrBMO tempCarFeeConfigAttrBMOImpl;
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
-
-        Assert.hasKeyAndValue(reqJson, "configId", "璇锋眰鎶ユ枃涓湭鍖呭惈configId");
-        Assert.hasKeyAndValue(reqJson, "specCd", "璇锋眰鎶ユ枃涓湭鍖呭惈specCd");
-        Assert.hasKeyAndValue(reqJson, "value", "璇锋眰鎶ユ枃涓湭鍖呭惈value");
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-        tempCarFeeConfigAttrBMOImpl.addTempCarFeeConfigAttr(reqJson, context);
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeTempCarFeeConfigAttrConstant.ADD_TEMPCARFEECONFIGATTR;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-}
diff --git a/service-api/src/main/java/com/java110/api/listener/fee/SaveTempCarFeeConfigListener.java b/service-api/src/main/java/com/java110/api/listener/fee/SaveTempCarFeeConfigListener.java
deleted file mode 100755
index 92d7f5f..0000000
--- a/service-api/src/main/java/com/java110/api/listener/fee/SaveTempCarFeeConfigListener.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package com.java110.api.listener.fee;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.fee.IFeeBMO;
-import com.java110.api.bmo.tempCarFeeConfig.ITempCarFeeConfigBMO;
-import com.java110.api.bmo.tempCarFeeConfigAttr.ITempCarFeeConfigAttrBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.dto.fee.FeeConfigDto;
-import com.java110.dto.fee.FeeDto;
-import com.java110.dto.parking.ParkingAreaDto;
-import com.java110.intf.community.IParkingAreaInnerServiceSMO;
-import com.java110.po.fee.PayFeeConfigPo;
-import com.java110.utils.constant.BusinessTypeConstant;
-import com.java110.utils.constant.ServiceCodeTempCarFeeConfigConstant;
-import com.java110.utils.util.Assert;
-import com.java110.utils.util.BeanConvertUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-import java.util.List;
-
-/**
- * 淇濆瓨鍟嗘埛渚﹀惉
- * add by wuxw 2019-06-30
- */
-@Java110Listener("saveTempCarFeeConfigListener")
-public class SaveTempCarFeeConfigListener extends AbstractServiceApiPlusListener {
-
-    @Autowired
-    private ITempCarFeeConfigBMO tempCarFeeConfigBMOImpl;
-
-    @Autowired
-    private IFeeBMO feeBMOImpl;
-
-    @Autowired
-    private ITempCarFeeConfigAttrBMO tempCarFeeConfigAttrBMOImpl;
-
-    @Autowired
-    private IParkingAreaInnerServiceSMO parkingAreaInnerServiceSMOImpl;
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
-
-        Assert.hasKeyAndValue(reqJson, "feeName", "璇锋眰鎶ユ枃涓湭鍖呭惈feeName");
-        Assert.hasKeyAndValue(reqJson, "paId", "璇锋眰鎶ユ枃涓湭鍖呭惈paId");
-        Assert.hasKeyAndValue(reqJson, "carType", "璇锋眰鎶ユ枃涓湭鍖呭惈carType");
-        Assert.hasKeyAndValue(reqJson, "ruleId", "璇锋眰鎶ユ枃涓湭鍖呭惈ruleId");
-        Assert.hasKeyAndValue(reqJson, "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId");
-        Assert.hasKeyAndValue(reqJson, "startTime", "璇锋眰鎶ユ枃涓湭鍖呭惈startTime");
-        Assert.hasKeyAndValue(reqJson, "endTime", "璇锋眰鎶ユ枃涓湭鍖呭惈endTime");
-
-        //鏌ヨ鍋滆溅鍦虹紪鍙�
-        ParkingAreaDto parkingAreaDto = new ParkingAreaDto();
-        parkingAreaDto.setPaId(reqJson.getString("paId"));
-        parkingAreaDto.setCommunityId(reqJson.getString("communityId"));
-        List<ParkingAreaDto> parkingAreaDtos = parkingAreaInnerServiceSMOImpl.queryParkingAreas(parkingAreaDto);
-
-        Assert.listOnlyOne(parkingAreaDtos, "鍋滆溅鍦轰笉瀛樺湪");
-        reqJson.put("areaNum", parkingAreaDtos.get(0).getNum());
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-        reqJson.put("feeConfigId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_configId));
-        tempCarFeeConfigBMOImpl.addTempCarFeeConfig(reqJson, context);
-
-        //澶勭悊鎴垮眿灞炴��
-        dealAttr(reqJson, context);
-
-        //琛ヨ垂鐢ㄩ」鏁版嵁
-        PayFeeConfigPo payFeeConfigPo = new PayFeeConfigPo();
-        payFeeConfigPo.setAdditionalAmount("0");
-        payFeeConfigPo.setBillType(FeeConfigDto.BILL_TYPE_YEAR);
-        payFeeConfigPo.setCommunityId(reqJson.getString("communityId"));
-        payFeeConfigPo.setComputingFormula(FeeConfigDto.COMPUTING_FORMULA_TEMP_CAR);
-        payFeeConfigPo.setComputingFormulaText("");
-        payFeeConfigPo.setConfigId(reqJson.getString("feeConfigId"));
-        payFeeConfigPo.setEndTime(reqJson.getString("endTime"));
-        payFeeConfigPo.setStartTime(reqJson.getString("startTime"));
-        payFeeConfigPo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
-        payFeeConfigPo.setFeeName(reqJson.getString("feeName"));
-        payFeeConfigPo.setFeeTypeCd(FeeConfigDto.FEE_TYPE_CD_PARKING);
-        payFeeConfigPo.setIsDefault(FeeConfigDto.DEFAULT_FEE_CONFIG);
-        payFeeConfigPo.setPaymentCd(FeeConfigDto.PAYMENT_CD_PRE);
-        payFeeConfigPo.setPaymentCycle("1");
-        payFeeConfigPo.setSquarePrice("0");
-        super.insert(context, payFeeConfigPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_CONFIG);
-        
-    }
-
-    private void dealAttr(JSONObject reqJson, DataFlowContext context) {
-
-        if (!reqJson.containsKey("attrs")) {
-            return;
-        }
-
-        JSONArray attrs = reqJson.getJSONArray("attrs");
-        if (attrs == null || attrs.size() < 1) {
-            return;
-        }
-
-
-        JSONObject attr = null;
-        for (int attrIndex = 0; attrIndex < attrs.size(); attrIndex++) {
-            attr = attrs.getJSONObject(attrIndex);
-            attr.put("configId", reqJson.getString("configId"));
-            attr.put("communityId", reqJson.getString("communityId"));
-            tempCarFeeConfigAttrBMOImpl.addTempCarFeeConfigAttr(attr, context);
-        }
-
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeTempCarFeeConfigConstant.ADD_TEMPCARFEECONFIG;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-}
diff --git a/service-fee/src/main/java/com/java110/fee/cmd/fee/ListTempCarFeeConfigsCmd.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/ListTempCarFeeConfigsCmd.java
new file mode 100644
index 0000000..12fec96
--- /dev/null
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/ListTempCarFeeConfigsCmd.java
@@ -0,0 +1,52 @@
+package com.java110.fee.cmd.fee;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
+import com.java110.intf.fee.ITempCarFeeConfigInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "fee.listTempCarFeeConfigs")
+public class ListTempCarFeeConfigsCmd extends Cmd {
+
+
+    @Autowired
+    private ITempCarFeeConfigInnerServiceSMO tempCarFeeConfigInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        super.validatePageInfo(reqJson);
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        TempCarFeeConfigDto tempCarFeeConfigDto = BeanConvertUtil.covertBean(reqJson, TempCarFeeConfigDto.class);
+
+        int count = tempCarFeeConfigInnerServiceSMOImpl.queryTempCarFeeConfigsCount(tempCarFeeConfigDto);
+
+        List<TempCarFeeConfigDto> tempCarFeeConfigDtos = null;
+
+        if (count > 0) {
+            tempCarFeeConfigDtos = tempCarFeeConfigInnerServiceSMOImpl.queryTempCarFeeConfigs(tempCarFeeConfigDto);
+        } else {
+            tempCarFeeConfigDtos = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, tempCarFeeConfigDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+    }
+}
diff --git a/service-api/src/main/java/com/java110/api/listener/fee/QueryArrearsFeeListener.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/QueryArrearsFeeCmd.java
old mode 100755
new mode 100644
similarity index 63%
rename from service-api/src/main/java/com/java110/api/listener/fee/QueryArrearsFeeListener.java
rename to service-fee/src/main/java/com/java110/fee/cmd/fee/QueryArrearsFeeCmd.java
index 2421602..2a0c7d8
--- a/service-api/src/main/java/com/java110/api/listener/fee/QueryArrearsFeeListener.java
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/QueryArrearsFeeCmd.java
@@ -1,44 +1,34 @@
-package com.java110.api.listener.fee;
-
+package com.java110.fee.cmd.fee;
 
 import com.alibaba.fastjson.JSONObject;
-import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.intf.community.IFloorInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.community.IUnitInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
 import com.java110.utils.constant.FeeTypeConstant;
-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.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.community.IFloorInnerServiceSMO;
-import com.java110.intf.user.IOwnerInnerServiceSMO;
-import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
-import com.java110.intf.community.IRoomInnerServiceSMO;
-import com.java110.intf.community.IUnitInnerServiceSMO;
-import com.java110.dto.fee.FeeDto;
-import com.java110.dto.owner.OwnerDto;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.vo.api.ApiArrearsFeeDataVo;
 import com.java110.vo.api.ApiArrearsFeeVo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * @ClassName FloorDto
- * @Description 灏忓尯妤兼暟鎹眰渚﹀惉绫�
- * @Author wuxw
- * @Date 2019/4/24 8:52
- * @Version 1.0
- * add by wuxw 2019/4/24
- **/
-@Java110Listener("queryArrearsFee")
-public class QueryArrearsFeeListener extends AbstractServiceApiDataFlowListener {
+@Java110Cmd(serviceCode = "fee.queryArrearsFee")
+public class QueryArrearsFeeCmd extends Cmd {
 
     @Autowired
     private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
@@ -59,26 +49,19 @@
     private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
 
     @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_QUERY_ARREARS_FEE;
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "璇锋眰涓湭鍖呭惈communityId淇℃伅");
+        Assert.jsonObjectHaveKey(reqJson, "feeTypeCd", "璇锋眰涓湭鍖呭惈feeTypeCd淇℃伅");
+        Assert.jsonObjectHaveKey(reqJson, "page", "璇锋眰涓湭鍖呭惈page淇℃伅");
+        Assert.jsonObjectHaveKey(reqJson, "row", "璇锋眰涓湭鍖呭惈row淇℃伅");
+
+
+        Assert.isInteger(reqJson.getString("row"), "row蹇呴』涓烘暟瀛�");
+        Assert.isInteger(reqJson.getString("page"), "page蹇呴』涓烘暟瀛�");
     }
 
     @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
-    }
-
-    /**
-     * 涓氬姟灞傛暟鎹鐞�
-     *
-     * @param event 鏃堕棿瀵硅薄
-     */
-    @Override
-    public void soService(ServiceDataFlowEvent event) {
-        DataFlowContext dataFlowContext = event.getDataFlowContext();
-        //鑾峰彇璇锋眰鏁版嵁
-        JSONObject reqJson = dataFlowContext.getReqJson();
-        validateFeeData(reqJson);
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
 
         FeeDto feeDtoParamIn = BeanConvertUtil.covertBean(reqJson, FeeDto.class);
         feeDtoParamIn.setArrearsEndTime(DateUtil.getCurrentDate());
@@ -100,7 +83,7 @@
         ResponseEntity<String> responseEntity = null;
         if (feeCount == 0) {
             responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiArrearsFeeVo), HttpStatus.OK);
-            dataFlowContext.setResponseEntity(responseEntity);
+            context.setResponseEntity(responseEntity);
             return;
         }
 
@@ -128,7 +111,7 @@
         responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiArrearsFeeVo), HttpStatus.OK);
 
 
-        dataFlowContext.setResponseEntity(responseEntity);
+        context.setResponseEntity(responseEntity);
     }
 
     /**
@@ -170,24 +153,8 @@
     }
 
     /**
-     * 鏍¢獙鏌ヨ鏉′欢鏄惁婊¤冻鏉′欢
-     *
-     * @param reqJson 鍖呭惈鏌ヨ鏉′欢
-     */
-    private void validateFeeData(JSONObject reqJson) {
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "璇锋眰涓湭鍖呭惈communityId淇℃伅");
-        Assert.jsonObjectHaveKey(reqJson, "feeTypeCd", "璇锋眰涓湭鍖呭惈feeTypeCd淇℃伅");
-        Assert.jsonObjectHaveKey(reqJson, "page", "璇锋眰涓湭鍖呭惈page淇℃伅");
-        Assert.jsonObjectHaveKey(reqJson, "row", "璇锋眰涓湭鍖呭惈row淇℃伅");
-
-
-        Assert.isInteger(reqJson.getString("row"), "row蹇呴』涓烘暟瀛�");
-        Assert.isInteger(reqJson.getString("page"), "page蹇呴』涓烘暟瀛�");
-
-    }
-
-    /**
      * 鏌ヨ objIds
+     *
      * @param feeDtos 璐圭敤淇℃伅
      * @return objIds淇℃伅
      */
@@ -199,61 +166,4 @@
 
         return objIds.toArray(new String[objIds.size()]);
     }
-
-    @Override
-    public int getOrder() {
-        return super.DEFAULT_ORDER;
-    }
-
-    public IFeeInnerServiceSMO getFeeInnerServiceSMOImpl() {
-        return feeInnerServiceSMOImpl;
-    }
-
-    public void setFeeInnerServiceSMOImpl(IFeeInnerServiceSMO feeInnerServiceSMOImpl) {
-        this.feeInnerServiceSMOImpl = feeInnerServiceSMOImpl;
-    }
-
-
-    public IRoomInnerServiceSMO getRoomInnerServiceSMOImpl() {
-        return roomInnerServiceSMOImpl;
-    }
-
-    public void setRoomInnerServiceSMOImpl(IRoomInnerServiceSMO roomInnerServiceSMOImpl) {
-        this.roomInnerServiceSMOImpl = roomInnerServiceSMOImpl;
-    }
-
-
-    public IFloorInnerServiceSMO getFloorInnerServiceSMOImpl() {
-        return floorInnerServiceSMOImpl;
-    }
-
-    public void setFloorInnerServiceSMOImpl(IFloorInnerServiceSMO floorInnerServiceSMOImpl) {
-        this.floorInnerServiceSMOImpl = floorInnerServiceSMOImpl;
-    }
-
-    public IUnitInnerServiceSMO getUnitInnerServiceSMOImpl() {
-        return unitInnerServiceSMOImpl;
-    }
-
-    public void setUnitInnerServiceSMOImpl(IUnitInnerServiceSMO unitInnerServiceSMOImpl) {
-        this.unitInnerServiceSMOImpl = unitInnerServiceSMOImpl;
-    }
-
-    public IOwnerInnerServiceSMO getOwnerInnerServiceSMOImpl() {
-        return ownerInnerServiceSMOImpl;
-    }
-
-    public void setOwnerInnerServiceSMOImpl(IOwnerInnerServiceSMO ownerInnerServiceSMOImpl) {
-        this.ownerInnerServiceSMOImpl = ownerInnerServiceSMOImpl;
-    }
-
-    public IOwnerRoomRelInnerServiceSMO getOwnerRoomRelInnerServiceSMOImpl() {
-        return ownerRoomRelInnerServiceSMOImpl;
-    }
-
-    public void setOwnerRoomRelInnerServiceSMOImpl(IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl) {
-        this.ownerRoomRelInnerServiceSMOImpl = ownerRoomRelInnerServiceSMOImpl;
-    }
-
-
 }
diff --git a/service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeByCarInoutCmd.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeByCarInoutCmd.java
new file mode 100644
index 0000000..69192a7
--- /dev/null
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeByCarInoutCmd.java
@@ -0,0 +1,59 @@
+package com.java110.fee.cmd.fee;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.fee.FeeDto;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.utils.constant.FeeTypeConstant;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.api.ApiMainFeeVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.List;
+
+@Java110Cmd(serviceCode = "fee.queryFeeByCarInout")
+public class QueryFeeByCarInoutCmd extends Cmd {
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "璇锋眰涓湭鍖呭惈communityId淇℃伅");
+        Assert.jsonObjectHaveKey(reqJson, "inoutId", "璇锋眰涓湭鍖呭惈inoutId淇℃伅");
+        Assert.jsonObjectHaveKey(reqJson, "state", "璇锋眰涓湭鍖呭惈state淇℃伅");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        FeeDto feeDtoParamIn = BeanConvertUtil.covertBean(reqJson, FeeDto.class);
+        feeDtoParamIn.setPayerObjId(reqJson.getString("inoutId"));
+        feeDtoParamIn.setState(reqJson.getString("state"));
+        feeDtoParamIn.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_TEMP_DOWN_PARKING_SPACE);
+        feeDtoParamIn.setFeeFlag("2006012");
+
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDtoParamIn);
+        ResponseEntity<String> responseEntity = null;
+        if (feeDtos == null || feeDtos.size() == 0) {
+            responseEntity = new ResponseEntity<String>("{}", HttpStatus.OK);
+            context.setResponseEntity(responseEntity);
+            return ;
+        }
+
+        FeeDto feeDto = feeDtos.get(0);
+
+        ApiMainFeeVo apiFeeVo = BeanConvertUtil.covertBean(feeDto, ApiMainFeeVo.class);
+
+        responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiFeeVo), HttpStatus.OK);
+
+
+        context.setResponseEntity(responseEntity);
+    }
+}
diff --git a/service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeByParkingSpaceCmd.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeByParkingSpaceCmd.java
new file mode 100644
index 0000000..74b2cf0
--- /dev/null
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeByParkingSpaceCmd.java
@@ -0,0 +1,85 @@
+package com.java110.fee.cmd.fee;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.parking.ParkingSpaceDto;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.api.ApiParkingSpaceFeeVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.List;
+
+@Java110Cmd(serviceCode = "fee.queryFeeByParkingSpace")
+public class QueryFeeByParkingSpaceCmd extends Cmd {
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "璇锋眰涓湭鍖呭惈communityId淇℃伅");
+        Assert.jsonObjectHaveKey(reqJson, "psId", "璇锋眰涓湭鍖呭惈psId淇℃伅");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        FeeDto feeDtoParamIn = BeanConvertUtil.covertBean(reqJson, FeeDto.class);
+        feeDtoParamIn.setPayerObjId(reqJson.getString("psId"));
+
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDtoParamIn);
+        ResponseEntity<String> responseEntity = null;
+        if (feeDtos == null || feeDtos.size() == 0) {
+            responseEntity = new ResponseEntity<String>("{}", HttpStatus.OK);
+            context.setResponseEntity(responseEntity);
+            return ;
+        }
+
+        FeeDto feeDto = feeDtos.get(0);
+
+        ApiParkingSpaceFeeVo apiFeeVo = BeanConvertUtil.covertBean(feeDto, ApiParkingSpaceFeeVo.class);
+
+        //鍋滆溅浣嶄俊鎭�
+        ParkingSpaceDto parkingSpaceDto = BeanConvertUtil.covertBean(reqJson, ParkingSpaceDto.class);
+        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+
+        Assert.listOnlyOne(parkingSpaceDtos, "鏈煡璇㈠埌鎴栨煡璇㈠鏉� 杞︿綅淇℃伅");
+
+        parkingSpaceDto = parkingSpaceDtos.get(0);
+
+        BeanConvertUtil.covertBean(parkingSpaceDto, apiFeeVo);
+
+        //鏌ヨ杞﹁締淇℃伅
+        OwnerCarDto ownerCarDto = BeanConvertUtil.covertBean(reqJson, OwnerCarDto.class);
+
+        List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+        Assert.listOnlyOne(ownerCarDtos, "鏈煡璇㈠埌鎴栨煡璇㈠鏉� 杞﹁締淇℃伅");
+        ownerCarDto = ownerCarDtos.get(0);
+
+        BeanConvertUtil.covertBean(ownerCarDto, apiFeeVo);
+
+
+        responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiFeeVo), HttpStatus.OK);
+
+
+        context.setResponseEntity(responseEntity);
+    }
+}
diff --git a/service-api/src/main/java/com/java110/api/listener/fee/QueryFeeDetailListener.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeDetailCmd.java
old mode 100755
new mode 100644
similarity index 70%
rename from service-api/src/main/java/com/java110/api/listener/fee/QueryFeeDetailListener.java
rename to service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeDetailCmd.java
index d42f0c6..361adf3
--- a/service-api/src/main/java/com/java110/api/listener/fee/QueryFeeDetailListener.java
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/QueryFeeDetailCmd.java
@@ -1,40 +1,30 @@
-package com.java110.api.listener.fee;
-
+package com.java110.fee.cmd.fee;
 
 import com.alibaba.fastjson.JSONObject;
-import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.fee.FeeDetailDto;
 import com.java110.dto.feeAccountDetail.FeeAccountDetailDto;
 import com.java110.intf.fee.IFeeAccountDetailServiceSMO;
-import com.java110.utils.constant.ServiceCodeConstant;
+import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
+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.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
-import com.java110.dto.fee.FeeDetailDto;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.api.ApiFeeDetailDataVo;
 import com.java110.vo.api.ApiFeeDetailVo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * @ClassName FloorDto
- * @Description 灏忓尯妤兼暟鎹眰渚﹀惉绫�
- * @Author wuxw
- * @Date 2019/4/24 8:52
- * @Version 1.0
- * add by wuxw 2019/4/24
- **/
-@Java110Listener("queryFeeDetail")
-public class QueryFeeDetailListener extends AbstractServiceApiDataFlowListener {
+@Java110Cmd(serviceCode = "fee.queryFeeDetail")
+public class QueryFeeDetailCmd extends Cmd {
 
     @Autowired
     private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
@@ -43,26 +33,13 @@
     private IFeeAccountDetailServiceSMO feeAccountDetailServiceSMOImpl;
 
     @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_QUERY_FEE_DETAIL;
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "璇锋眰涓湭鍖呭惈communityId淇℃伅");
     }
 
     @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
-    }
-
-    /**
-     * 涓氬姟灞傛暟鎹鐞�
-     *
-     * @param event 鏃堕棿瀵硅薄
-     */
-    @Override
-    public void soService(ServiceDataFlowEvent event) {
-        DataFlowContext dataFlowContext = event.getDataFlowContext();
-        //鑾峰彇璇锋眰鏁版嵁
-        JSONObject reqJson = dataFlowContext.getReqJson();
-        //鑾峰彇寮�濮嬫椂闂�
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+//鑾峰彇寮�濮嬫椂闂�
         if (!StringUtil.isEmpty(reqJson.getString("startTime"))) {
             String startTime = reqJson.getString("startTime") + " 00:00:00";
             reqJson.put("startTime", startTime);
@@ -72,8 +49,6 @@
             String endTime = reqJson.getString("endTime") + " 23:59:59";
             reqJson.put("endTime", endTime);
         }
-        validateFeeConfigData(reqJson);
-
         //鏌ヨ鎬昏褰曟暟
         ApiFeeDetailVo apiFeeDetailVo = new ApiFeeDetailVo();
         FeeDetailDto feeDetailDto = BeanConvertUtil.covertBean(reqJson, FeeDetailDto.class);
@@ -119,7 +94,7 @@
         apiFeeDetailVo.setRecords((int) Math.ceil((double) total / (double) row));
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiFeeDetailVo), HttpStatus.OK);
 
-        dataFlowContext.setResponseEntity(responseEntity);
+        context.setResponseEntity(responseEntity);
     }
 
     /**
@@ -136,30 +111,5 @@
                 }
             }
         }
-    }
-
-    /**
-     * 鏍¢獙鏌ヨ鏉′欢鏄惁婊¤冻鏉′欢
-     *
-     * @param reqJson 鍖呭惈鏌ヨ鏉′欢
-     */
-    private void validateFeeConfigData(JSONObject reqJson) {
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "璇锋眰涓湭鍖呭惈communityId淇℃伅");
-        // Assert.jsonObjectHaveKey(reqJson, "feeId", "璇锋眰涓湭鍖呭惈feeId淇℃伅");
-
-
-    }
-
-    @Override
-    public int getOrder() {
-        return super.DEFAULT_ORDER;
-    }
-
-    public IFeeDetailInnerServiceSMO getFeeDetailInnerServiceSMOImpl() {
-        return feeDetailInnerServiceSMOImpl;
-    }
-
-    public void setFeeDetailInnerServiceSMOImpl(IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl) {
-        this.feeDetailInnerServiceSMOImpl = feeDetailInnerServiceSMOImpl;
     }
 }
diff --git a/service-fee/src/main/java/com/java110/fee/cmd/fee/SaveTempCarFeeConfigCmd.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/SaveTempCarFeeConfigCmd.java
new file mode 100644
index 0000000..9faec41
--- /dev/null
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/SaveTempCarFeeConfigCmd.java
@@ -0,0 +1,125 @@
+package com.java110.fee.cmd.fee;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.parking.ParkingAreaDto;
+import com.java110.intf.community.IParkingAreaInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeConfigV1InnerServiceSMO;
+import com.java110.intf.fee.ITempCarFeeConfigAttrV1InnerServiceSMO;
+import com.java110.intf.fee.ITempCarFeeConfigV1InnerServiceSMO;
+import com.java110.po.fee.PayFeeConfigPo;
+import com.java110.po.tempCarFeeConfig.TempCarFeeConfigPo;
+import com.java110.po.tempCarFeeConfigAttr.TempCarFeeConfigAttrPo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+@Java110Cmd(serviceCode = "fee.saveTempCarFeeConfig")
+public class SaveTempCarFeeConfigCmd extends Cmd {
+
+
+    @Autowired
+    private IParkingAreaInnerServiceSMO parkingAreaInnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeConfigV1InnerServiceSMO payFeeConfigV1InnerServiceSMOImpl;
+    @Autowired
+    private ITempCarFeeConfigV1InnerServiceSMO tempCarFeeConfigV1InnerServiceSMOImpl;
+
+    @Autowired
+    private ITempCarFeeConfigAttrV1InnerServiceSMO tempCarFeeConfigAttrV1InnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.hasKeyAndValue(reqJson, "feeName", "璇锋眰鎶ユ枃涓湭鍖呭惈feeName");
+        Assert.hasKeyAndValue(reqJson, "paId", "璇锋眰鎶ユ枃涓湭鍖呭惈paId");
+        Assert.hasKeyAndValue(reqJson, "carType", "璇锋眰鎶ユ枃涓湭鍖呭惈carType");
+        Assert.hasKeyAndValue(reqJson, "ruleId", "璇锋眰鎶ユ枃涓湭鍖呭惈ruleId");
+        Assert.hasKeyAndValue(reqJson, "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId");
+        Assert.hasKeyAndValue(reqJson, "startTime", "璇锋眰鎶ユ枃涓湭鍖呭惈startTime");
+        Assert.hasKeyAndValue(reqJson, "endTime", "璇锋眰鎶ユ枃涓湭鍖呭惈endTime");
+
+        //鏌ヨ鍋滆溅鍦虹紪鍙�
+        ParkingAreaDto parkingAreaDto = new ParkingAreaDto();
+        parkingAreaDto.setPaId(reqJson.getString("paId"));
+        parkingAreaDto.setCommunityId(reqJson.getString("communityId"));
+        List<ParkingAreaDto> parkingAreaDtos = parkingAreaInnerServiceSMOImpl.queryParkingAreas(parkingAreaDto);
+
+        Assert.listOnlyOne(parkingAreaDtos, "鍋滆溅鍦轰笉瀛樺湪");
+        reqJson.put("areaNum", parkingAreaDtos.get(0).getNum());
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        reqJson.put("feeConfigId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_configId));
+        reqJson.put("configId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_configId));
+        TempCarFeeConfigPo tempCarFeeConfigPo = BeanConvertUtil.covertBean(reqJson, TempCarFeeConfigPo.class);
+        int flag = tempCarFeeConfigV1InnerServiceSMOImpl.saveTempCarFeeConfig(tempCarFeeConfigPo);
+        if (flag < 1) {
+            throw new CmdException("淇濆瓨涓存椂鏀惰垂澶辫触");
+        }
+        //澶勭悊鎴垮眿灞炴��
+        dealAttr(reqJson, context);
+
+        //琛ヨ垂鐢ㄩ」鏁版嵁
+        PayFeeConfigPo payFeeConfigPo = new PayFeeConfigPo();
+        payFeeConfigPo.setAdditionalAmount("0");
+        payFeeConfigPo.setBillType(FeeConfigDto.BILL_TYPE_YEAR);
+        payFeeConfigPo.setCommunityId(reqJson.getString("communityId"));
+        payFeeConfigPo.setComputingFormula(FeeConfigDto.COMPUTING_FORMULA_TEMP_CAR);
+        payFeeConfigPo.setComputingFormulaText("");
+        payFeeConfigPo.setConfigId(reqJson.getString("feeConfigId"));
+        payFeeConfigPo.setEndTime(reqJson.getString("endTime"));
+        payFeeConfigPo.setStartTime(reqJson.getString("startTime"));
+        payFeeConfigPo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
+        payFeeConfigPo.setFeeName(reqJson.getString("feeName"));
+        payFeeConfigPo.setFeeTypeCd(FeeConfigDto.FEE_TYPE_CD_PARKING);
+        payFeeConfigPo.setIsDefault(FeeConfigDto.DEFAULT_FEE_CONFIG);
+        payFeeConfigPo.setPaymentCd(FeeConfigDto.PAYMENT_CD_PRE);
+        payFeeConfigPo.setPaymentCycle("1");
+        payFeeConfigPo.setSquarePrice("0");
+        flag = payFeeConfigV1InnerServiceSMOImpl.savePayFeeConfig(payFeeConfigPo);
+        if (flag < 1) {
+            throw new CmdException("淇濆瓨涓存椂鏀惰垂澶辫触");
+        }
+
+    }
+
+    private void dealAttr(JSONObject reqJson, ICmdDataFlowContext context) {
+
+        if (!reqJson.containsKey("attrs")) {
+            return;
+        }
+
+        JSONArray attrs = reqJson.getJSONArray("attrs");
+        if (attrs == null || attrs.size() < 1) {
+            return;
+        }
+
+
+        JSONObject attr = null;
+        int flag = 0;
+        for (int attrIndex = 0; attrIndex < attrs.size(); attrIndex++) {
+            attr = attrs.getJSONObject(attrIndex);
+            attr.put("configId", reqJson.getString("configId"));
+            attr.put("communityId", reqJson.getString("communityId"));
+            attr.put("attrId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            TempCarFeeConfigAttrPo tempCarFeeConfigAttrPo = BeanConvertUtil.covertBean(attr, TempCarFeeConfigAttrPo.class);
+            flag = tempCarFeeConfigAttrV1InnerServiceSMOImpl.saveTempCarFeeConfigAttr(tempCarFeeConfigAttrPo);
+            if (flag < 1) {
+                throw new CmdException("淇濆瓨涓存椂鏀惰垂澶辫触");
+            }
+        }
+
+    }
+}
diff --git a/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java b/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java
index 58c0e32..ac5a38b 100755
--- a/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java
+++ b/service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java
@@ -3,8 +3,8 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.client.RestTemplate;
-import com.java110.core.context.SecureInvocation;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.log.LoggerFactory;
 import com.java110.dto.app.AppDto;
 import com.java110.dto.businessTableHis.BusinessTableHisDto;
 import com.java110.dto.order.OrderDto;
@@ -19,7 +19,6 @@
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.*;
 import org.springframework.stereotype.Service;
@@ -76,7 +75,7 @@
         }
 
         //淇濆瓨璁㈠崟淇℃伅
-            centerServiceDAOImpl.saveOrder(BeanConvertUtil.beanCovertMap(orderDto));
+        centerServiceDAOImpl.saveOrder(BeanConvertUtil.beanCovertMap(orderDto));
 
         return new ResponseEntity<String>(JSONObject.toJSONString(orderDto), HttpStatus.OK);
     }
@@ -320,8 +319,11 @@
         }
         centerServiceDAOImpl.saveOrderItem(BeanConvertUtil.beanCovertMap(orderItemDto));
 
+        //鑾峰彇action
+        String action = getOrderItemAction(orderItemDto);
+
         //鍒ゆ柇鏄惁閰嶇疆浜� 杞ㄨ抗
-        BusinessTableHisDto businessTableHisDto = BusinessTableHisCache.getBusinessTableHisDto(orderItemDto.getAction(), orderItemDto.getActionObj());
+        BusinessTableHisDto businessTableHisDto = BusinessTableHisCache.getBusinessTableHisDto(action, orderItemDto.getActionObj());
         if (businessTableHisDto == null) {
             return ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
         }
@@ -344,6 +346,43 @@
         return ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
     }
 
+    /**
+     * 杩欓噷 鍏煎鎬у鐞�
+     * 鍥犱负鎴戜滑涓嶆秹鍙� 鐗╃悊鍒犻櫎 閮芥槸閫昏緫鍒犻櫎 鎵�浠� status_cd 涓� 1 鏃跺己琛岃缃负DEL 涓洪�昏緫鍒犻櫎
+     * @param orderItemDto
+     * @return
+     */
+    private String getOrderItemAction(OrderItemDto orderItemDto) {
+
+        if (StringUtil.isEmpty(orderItemDto.getLogText())) {
+            return orderItemDto.getAction();
+        }
+
+        if ("ADD".equals(orderItemDto.getAction()) || "DEL".equals(orderItemDto.getAction())) {
+            return orderItemDto.getAction();
+        }
+
+        if (!StringUtil.isJsonObject(orderItemDto.getLogText())) {
+            return orderItemDto.getAction();
+        }
+        JSONObject logTextObj = JSONObject.parseObject(orderItemDto.getLogText());
+        if (!logTextObj.containsKey("afterValue")) {
+            return orderItemDto.getAction();
+        }
+        JSONArray afterValues = logTextObj.getJSONArray("afterValue");
+        if (afterValues == null || afterValues.size() < 1) {
+            return orderItemDto.getAction();
+        }
+
+        for (int afterValueIndex = 0; afterValueIndex < afterValues.size(); afterValueIndex++) {
+            JSONObject keyValue = afterValues.getJSONObject(afterValueIndex);
+            if (keyValue.containsKey("status_cd") && "1".equals(keyValue.getString("status_cd"))) {
+                return "DEL";
+            }
+        }
+        return orderItemDto.getAction();
+    }
+
     private void doNoticeServiceGeneratorBusiness(OrderItemDto orderItemDto, BusinessTableHisDto businessTableHisDto) {
         asynNotifySubServiceImpl.notifySubService(orderItemDto, businessTableHisDto);
     }

--
Gitblit v1.8.0