Bladeren bron

车位修改

wuxw 4 jaren geleden
bovenliggende
commit
86efce066e
15 gewijzigde bestanden met toevoegingen van 546 en 900 verwijderingen
  1. 0 49
      service-api/src/main/java/com/java110/api/listener/parkingSpace/DeleteParkingSpaceAttrListener.java
  2. 0 70
      service-api/src/main/java/com/java110/api/listener/parkingSpace/DeleteParkingSpaceListener.java
  3. 0 83
      service-api/src/main/java/com/java110/api/listener/parkingSpace/EditParkingSpaceListener.java
  4. 0 176
      service-api/src/main/java/com/java110/api/listener/parkingSpace/ExitParkingSpaceListener.java
  5. 0 82
      service-api/src/main/java/com/java110/api/listener/parkingSpace/ListParkingSpaceAttrsListener.java
  6. 0 47
      service-api/src/main/java/com/java110/api/listener/parkingSpace/SaveParkingSpaceAttrListener.java
  7. 0 60
      service-api/src/main/java/com/java110/api/listener/parkingSpace/SaveParkingSpaceListener.java
  8. 0 132
      service-api/src/main/java/com/java110/api/listener/parkingSpace/SellParkingSpaceListener.java
  9. 0 48
      service-api/src/main/java/com/java110/api/listener/parkingSpace/UpdateParkingSpaceAttrListener.java
  10. 70 0
      service-community/src/main/java/com/java110/community/cmd/parkingSpace/DeleteParkingSpaceCmd.java
  11. 74 0
      service-community/src/main/java/com/java110/community/cmd/parkingSpace/EditParkingSpaceCmd.java
  12. 175 0
      service-community/src/main/java/com/java110/community/cmd/parkingSpace/ExitParkingSpaceCmd.java
  13. 20 77
      service-api/src/main/java/com/java110/api/listener/parkingSpace/QueryParkingSpaceCarsListener.java
  14. 19 76
      service-api/src/main/java/com/java110/api/listener/parkingSpace/QueryParkingSpacesByOwnerListener.java
  15. 188 0
      service-community/src/main/java/com/java110/community/cmd/parkingSpace/SellParkingSpaceCmd.java

+ 0 - 49
service-api/src/main/java/com/java110/api/listener/parkingSpace/DeleteParkingSpaceAttrListener.java

@@ -1,49 +0,0 @@
-package com.java110.api.listener.parkingSpace;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.parkingSpaceAttr.IParkingSpaceAttrBMO;
-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.ServiceCodeParkingSpaceAttrConstant;
-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("deleteParkingSpaceAttrListener")
-public class DeleteParkingSpaceAttrListener extends AbstractServiceApiPlusListener {
-
-    @Autowired
-    private IParkingSpaceAttrBMO parkingSpaceAttrBMOImpl;
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
-
-        Assert.hasKeyAndValue(reqJson, "attrId", "attrId不能为空");
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        parkingSpaceAttrBMOImpl.deleteParkingSpaceAttr(reqJson, context);
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeParkingSpaceAttrConstant.DELETE_PARKINGSPACEATTR;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-}

+ 0 - 70
service-api/src/main/java/com/java110/api/listener/parkingSpace/DeleteParkingSpaceListener.java

@@ -1,70 +0,0 @@
-package com.java110.api.listener.parkingSpace;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.parkingSpace.IParkingSpaceBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.intf.community.ICommunityInnerServiceSMO;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ServiceCodeConstant;
-import com.java110.utils.util.Assert;
-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.HttpMethod;
-
-/**
- * 删除小区楼信息
- */
-@Java110Listener("deleteParkingSpaceListener")
-public class DeleteParkingSpaceListener extends AbstractServiceApiPlusListener {
-
-    private static Logger logger = LoggerFactory.getLogger(DeleteParkingSpaceListener.class);
-
-    @Autowired
-    private IParkingSpaceBMO parkingSpaceBMOImpl;
-
-    @Autowired
-    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_DELETE_PARKING_SPACE;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        Assert.jsonObjectHaveKey(reqJson, "psId", "请求报文中未包含psId");
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求报文中未包含communityId");
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-        if (reqJson.containsKey("state") && !StringUtil.isEmpty("state") && reqJson.getString("state").equals("F")) {
-            parkingSpaceBMOImpl.deleteParkingSpace(reqJson, context);
-        } else if (reqJson.containsKey("state") && !StringUtil.isEmpty("state") && reqJson.getString("state").equals("S")) {
-            throw new IllegalArgumentException("车位已出售,不能删除!");
-        } else if (reqJson.containsKey("state") && !StringUtil.isEmpty("state") && reqJson.getString("state").equals("H")) {
-            throw new IllegalArgumentException("车位已出租,不能删除!");
-        } else {
-            throw new IllegalArgumentException("未知车位!");
-        }
-    }
-
-
-    public ICommunityInnerServiceSMO getCommunityInnerServiceSMOImpl() {
-        return communityInnerServiceSMOImpl;
-    }
-
-    public void setCommunityInnerServiceSMOImpl(ICommunityInnerServiceSMO communityInnerServiceSMOImpl) {
-        this.communityInnerServiceSMOImpl = communityInnerServiceSMOImpl;
-    }
-}

+ 0 - 83
service-api/src/main/java/com/java110/api/listener/parkingSpace/EditParkingSpaceListener.java

@@ -1,83 +0,0 @@
-
-package com.java110.api.listener.parkingSpace;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.parkingSpace.IParkingSpaceBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ResponseConstant;
-import com.java110.utils.constant.ServiceCodeConstant;
-import com.java110.utils.exception.ListenerExecuteException;
-import com.java110.utils.util.Assert;
-import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-/**
- * @ClassName EditParkingSpaceListener
- * @Description TODO 编辑小区楼信息
- * @Author wuxw
- * @Date 2019/4/28 15:19
- * @Version 1.0
- * add by wuxw 2019/4/28
- **/
-@Java110Listener("editParkingSpaceListener")
-public class EditParkingSpaceListener extends AbstractServiceApiPlusListener {
-
-    private static Logger logger = LoggerFactory.getLogger(EditParkingSpaceListener.class);
-
-    @Autowired
-    private IParkingSpaceBMO parkingSpaceBMOImpl;
-
-    @Autowired
-    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_EDIT_PARKING_SPACE;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "未包含小区ID");
-        Assert.jsonObjectHaveKey(reqJson, "psId", "未包含停车位ID");
-        Assert.jsonObjectHaveKey(reqJson, "paId", "未包含停车场信息");
-        Assert.jsonObjectHaveKey(reqJson, "num", "请求报文中未包含num");
-        Assert.jsonObjectHaveKey(reqJson, "area", "请求报文中未包含area");
-
-
-        Assert.hasLength(reqJson.getString("psId"), "停车位ID不能为空");
-
-        if (reqJson.getString("psId").startsWith("-")) {
-            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "停车位ID必须为已有ID");
-        }
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-        parkingSpaceBMOImpl.editParkingSpace(reqJson, context);
-    }
-
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-    public IParkingSpaceInnerServiceSMO getParkingSpaceInnerServiceSMOImpl() {
-        return parkingSpaceInnerServiceSMOImpl;
-    }
-
-    public void setParkingSpaceInnerServiceSMOImpl(IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl) {
-        this.parkingSpaceInnerServiceSMOImpl = parkingSpaceInnerServiceSMOImpl;
-    }
-}

+ 0 - 176
service-api/src/main/java/com/java110/api/listener/parkingSpace/ExitParkingSpaceListener.java

@@ -1,176 +0,0 @@
-package com.java110.api.listener.parkingSpace;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.parkingSpace.IParkingSpaceBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.intf.community.ICommunityInnerServiceSMO;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.user.IOwnerCarInnerServiceSMO;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
-import com.java110.dto.owner.OwnerCarDto;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ResponseConstant;
-import com.java110.utils.constant.ServiceCodeConstant;
-import com.java110.utils.exception.ListenerExecuteException;
-import com.java110.utils.util.Assert;
-import com.java110.utils.util.DateUtil;
-import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-import java.util.Calendar;
-import java.util.List;
-
-/**
- * @ClassName SaveUnitListener
- * @Description TODO 退停车位信息
- * @Author wuxw
- * @Date 2019/5/3 11:54
- * @Version 1.0
- * add by wuxw 2019/5/3
- **/
-@Java110Listener("exitParkingSpaceListener")
-public class ExitParkingSpaceListener extends AbstractServiceApiPlusListener {
-    private static Logger logger = LoggerFactory.getLogger(ExitParkingSpaceListener.class);
-    @Autowired
-    private IParkingSpaceBMO parkingSpaceBMOImpl;
-
-    @Autowired
-    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
-
-    @Autowired
-    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
-
-    @Autowired
-    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
-
-
-    @Autowired
-    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_EXIT_PARKING_SPACE;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求报文中未包含communityId节点");
-        Assert.jsonObjectHaveKey(reqJson, "ownerId", "请求报文中未包含ownerId节点");
-        Assert.jsonObjectHaveKey(reqJson, "psId", "请求报文中未包含psId节点");
-        Assert.jsonObjectHaveKey(reqJson, "storeId", "请求报文中未包含storeId节点");
-
-
-        Assert.hasLength(reqJson.getString("communityId"), "小区ID不能为空");
-        Assert.hasLength(reqJson.getString("ownerId"), "ownerId不能为空");
-        Assert.hasLength(reqJson.getString("psId"), "psId不能为空");
-        Assert.hasLength(reqJson.getString("storeId"), "storeId不能为空");
-        //
-
-        super.communityHasOwner(reqJson, communityInnerServiceSMOImpl);
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-        //退出 业主和停车位之间关系
-        parkingSpaceBMOImpl.exitParkingSpace(reqJson, context);
-
-        //将车位状态改为空闲状态
-        parkingSpaceBMOImpl.modifyParkingSpaceState(reqJson, context);
-
-
-        //删除费用信息
-        parkingSpaceBMOImpl.exitParkingSpaceFee(reqJson, context);
-    }
-
-
-    /**
-     * 数据校验
-     *
-     * @param paramIn "communityId": "7020181217000001",
-     *                "memberId": "3456789",
-     *                "memberTypeCd": "390001200001"
-     */
-    private void validate(String paramIn) {
-
-
-    }
-
-
-    /**
-     * 校验是否存在实例数据
-     *
-     * @param paramObj 请参数 转成json对象
-     */
-    private void validateHasSellParkingSpace(JSONObject paramObj) {
-
-        //校验物业费是否已经交清
-        OwnerCarDto ownerCarDto = new OwnerCarDto();
-        ownerCarDto.setPsId(paramObj.getString("psId"));
-        ownerCarDto.setOwnerId(paramObj.getString("ownerId"));
-        List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
-
-        if (ownerCarDtos == null || ownerCarDtos.size() != 1) {
-            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "该停车位没被出售过(出租过) 或 被多次出售过(出租过)");
-        }
-
-        ownerCarDto = ownerCarDtos.get(0);
-
-        Calendar calc = Calendar.getInstance();
-        calc.setTime(ownerCarDto.getCreateTime());
-        calc.add(Calendar.DATE, 7);
-
-        if (calc.getTime().getTime() < DateUtil.getCurrentDate().getTime()) {
-            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "只有在7天内才能退款,现已经过期,无法退款");
-        }
-
-        paramObj.put("ownerCarDto", ownerCarDto);
-    }
-
-
-    public ICommunityInnerServiceSMO getCommunityInnerServiceSMOImpl() {
-        return communityInnerServiceSMOImpl;
-    }
-
-    public void setCommunityInnerServiceSMOImpl(ICommunityInnerServiceSMO communityInnerServiceSMOImpl) {
-        this.communityInnerServiceSMOImpl = communityInnerServiceSMOImpl;
-    }
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-    public IOwnerCarInnerServiceSMO getOwnerCarInnerServiceSMOImpl() {
-        return ownerCarInnerServiceSMOImpl;
-    }
-
-    public void setOwnerCarInnerServiceSMOImpl(IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl) {
-        this.ownerCarInnerServiceSMOImpl = ownerCarInnerServiceSMOImpl;
-    }
-
-    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;
-    }
-}

+ 0 - 82
service-api/src/main/java/com/java110/api/listener/parkingSpace/ListParkingSpaceAttrsListener.java

@@ -1,82 +0,0 @@
-package com.java110.api.listener.parkingSpace;
-
-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.community.IParkingSpaceAttrInnerServiceSMO;
-import com.java110.dto.parkingSpaceAttr.ParkingSpaceAttrDto;
-import com.java110.utils.constant.ServiceCodeParkingSpaceAttrConstant;
-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("listParkingSpaceAttrsListener")
-public class ListParkingSpaceAttrsListener extends AbstractServiceApiListener {
-
-    @Autowired
-    private IParkingSpaceAttrInnerServiceSMO parkingSpaceAttrInnerServiceSMOImpl;
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeParkingSpaceAttrConstant.LIST_PARKINGSPACEATTRS;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
-    }
-
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-
-    public IParkingSpaceAttrInnerServiceSMO getParkingSpaceAttrInnerServiceSMOImpl() {
-        return parkingSpaceAttrInnerServiceSMOImpl;
-    }
-
-    public void setParkingSpaceAttrInnerServiceSMOImpl(IParkingSpaceAttrInnerServiceSMO parkingSpaceAttrInnerServiceSMOImpl) {
-        this.parkingSpaceAttrInnerServiceSMOImpl = parkingSpaceAttrInnerServiceSMOImpl;
-    }
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        super.validatePageInfo(reqJson);
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        ParkingSpaceAttrDto parkingSpaceAttrDto = BeanConvertUtil.covertBean(reqJson, ParkingSpaceAttrDto.class);
-
-        int count = parkingSpaceAttrInnerServiceSMOImpl.queryParkingSpaceAttrsCount(parkingSpaceAttrDto);
-
-        List<ParkingSpaceAttrDto> parkingSpaceAttrDtos = null;
-
-        if (count > 0) {
-            parkingSpaceAttrDtos = parkingSpaceAttrInnerServiceSMOImpl.queryParkingSpaceAttrs(parkingSpaceAttrDto);
-        } else {
-            parkingSpaceAttrDtos = new ArrayList<>();
-        }
-
-        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, parkingSpaceAttrDtos);
-
-        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
-
-        context.setResponseEntity(responseEntity);
-
-    }
-}

+ 0 - 47
service-api/src/main/java/com/java110/api/listener/parkingSpace/SaveParkingSpaceAttrListener.java

@@ -1,47 +0,0 @@
-package com.java110.api.listener.parkingSpace;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.parkingSpaceAttr.IParkingSpaceAttrBMO;
-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.ServiceCodeParkingSpaceAttrConstant;
-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("saveParkingSpaceAttrListener")
-public class SaveParkingSpaceAttrListener extends AbstractServiceApiPlusListener {
-
-    @Autowired
-    private IParkingSpaceAttrBMO parkingSpaceAttrBMOImpl;
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
-
-        Assert.hasKeyAndValue(reqJson, "specCd", "请求报文中未包含specCd");
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-        parkingSpaceAttrBMOImpl.addParkingSpaceAttr(reqJson, context);
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeParkingSpaceAttrConstant.ADD_PARKINGSPACEATTR;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-}

+ 0 - 60
service-api/src/main/java/com/java110/api/listener/parkingSpace/SaveParkingSpaceListener.java

@@ -1,60 +0,0 @@
-package com.java110.api.listener.parkingSpace;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.parkingSpace.IParkingSpaceBMO;
-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.ServiceCodeConstant;
-import com.java110.utils.util.Assert;
-import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-/**
- * @ClassName SaveParkingSpaceListener
- * @Description 保存小区楼信息
- * @Author wuxw
- * @Date 2019/4/26 14:51
- * @Version 1.0
- * add by wuxw 2019/4/26
- **/
-
-@Java110Listener("saveParkingSpaceListener")
-public class SaveParkingSpaceListener extends AbstractServiceApiPlusListener {
-
-
-    private static Logger logger = LoggerFactory.getLogger(SaveParkingSpaceListener.class);
-
-    @Autowired
-    private IParkingSpaceBMO parkingSpaceBMOImpl;
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_SAVE_PARKING_SPACE;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "未包含小区ID");
-        Assert.jsonObjectHaveKey(reqJson, "num", "请求报文中未包含age");
-        Assert.jsonObjectHaveKey(reqJson, "area", "请求报文中未包含name");
-        Assert.jsonObjectHaveKey(reqJson, "userId", "请求报文中未包含userId");
-        Assert.jsonObjectHaveKey(reqJson, "paId", "请求报文中未包含停车场信息");
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-        parkingSpaceBMOImpl.addParkingSpace(reqJson, context);
-    }
-
-
-}

+ 0 - 132
service-api/src/main/java/com/java110/api/listener/parkingSpace/SellParkingSpaceListener.java

@@ -1,132 +0,0 @@
-package com.java110.api.listener.parkingSpace;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.parkingSpace.IParkingSpaceBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ResponseConstant;
-import com.java110.utils.constant.ServiceCodeConstant;
-import com.java110.utils.exception.ListenerExecuteException;
-import com.java110.utils.util.Assert;
-import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-/**
- * @ClassName SaveParkingSpaceListener
- * @Description 保存小区楼信息
- * @Author wuxw
- * @Date 2019/4/26 14:51
- * @Version 1.0
- * add by wuxw 2019/4/26
- **/
-
-@Java110Listener("sellParkingSpaceListener")
-public class SellParkingSpaceListener extends AbstractServiceApiPlusListener {
-
-
-    private static Logger logger = LoggerFactory.getLogger(SellParkingSpaceListener.class);
-
-    @Autowired
-    private IParkingSpaceBMO parkingSpaceBMOImpl;
-
-    @Autowired
-    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
-
-    @Autowired
-    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_SELL_PARKING_SPACE;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-
-    /**
-     * {"carBrand":"大众","carNum":"琼A00D16","psId":"792020090377480065","cycles":"0","ownerId":"772020090241570534",
-     * "storeId":"402020082680880179","userId":"302020082625140085","carColor":"白色","carType":"9901",
-     * "startTime":"2020-09-03 10:24:39","endTime":"2020-09-03 10:24:39","communityId":"702020082605020183","sellOrHire":"H"}
-     * @param event   事件对象
-     * @param reqJson 请求报文数据
-     */
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "未包含小区ID");
-        Assert.jsonObjectHaveKey(reqJson, "ownerId", "请求报文中未包含ownerId");
-        Assert.jsonObjectHaveKey(reqJson, "carNum", "请求报文中未包含carNum");
-        Assert.jsonObjectHaveKey(reqJson, "carBrand", "请求报文中未包含carBrand");
-        Assert.jsonObjectHaveKey(reqJson, "carType", "请求报文中未包含carType");
-        Assert.jsonObjectHaveKey(reqJson, "carColor", "未包含carColor");
-        Assert.jsonObjectHaveKey(reqJson, "psId", "未包含psId");
-        Assert.jsonObjectHaveKey(reqJson, "storeId", "未包含storeId");
-        //Assert.jsonObjectHaveKey(reqJson, "receivedAmount", "未包含receivedAmount");
-        Assert.jsonObjectHaveKey(reqJson, "sellOrHire", "未包含sellOrHire");
-
-        Assert.hasLength(reqJson.getString("communityId"), "小区ID不能为空");
-        Assert.hasLength(reqJson.getString("ownerId"), "ownerId不能为空");
-        Assert.hasLength(reqJson.getString("psId"), "psId不能为空");
-        //Assert.isMoney(reqJson.getString("receivedAmount"), "不是有效的实收金额");
-
-        if (!"H".equals(reqJson.getString("sellOrHire"))
-                && !"S".equals(reqJson.getString("sellOrHire"))) {
-            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "请求报文中sellOrFire值错误 ,出售为S 出租为H");
-        }
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        String feeId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId);
-        reqJson.put("feeId", feeId);
-
-        //添加小区楼
-        parkingSpaceBMOImpl.sellParkingSpace(reqJson, context);
-
-
-        reqJson.put("carNumType",reqJson.getString("sellOrHire"));
-
-        parkingSpaceBMOImpl.modifySellParkingSpaceState(reqJson, context);
-
-//        //计算 费用信息
-//        parkingSpaceBMOImpl.computeFeeInfo(reqJson, context);
-//        //添加物业费用信息
-//        parkingSpaceBMOImpl.addParkingSpaceFee(reqJson, context);
-//
-//        parkingSpaceBMOImpl.addFeeDetail(reqJson, context);
-
-
-    }
-
-
-    @Override
-    public int getOrder() {
-        return 0;
-    }
-
-    public IFeeConfigInnerServiceSMO getFeeConfigInnerServiceSMOImpl() {
-        return feeConfigInnerServiceSMOImpl;
-    }
-
-    public void setFeeConfigInnerServiceSMOImpl(IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl) {
-        this.feeConfigInnerServiceSMOImpl = feeConfigInnerServiceSMOImpl;
-    }
-
-    public IParkingSpaceInnerServiceSMO getParkingSpaceInnerServiceSMOImpl() {
-        return parkingSpaceInnerServiceSMOImpl;
-    }
-
-    public void setParkingSpaceInnerServiceSMOImpl(IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl) {
-        this.parkingSpaceInnerServiceSMOImpl = parkingSpaceInnerServiceSMOImpl;
-    }
-}

+ 0 - 48
service-api/src/main/java/com/java110/api/listener/parkingSpace/UpdateParkingSpaceAttrListener.java

@@ -1,48 +0,0 @@
-package com.java110.api.listener.parkingSpace;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.parkingSpaceAttr.IParkingSpaceAttrBMO;
-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.ServiceCodeParkingSpaceAttrConstant;
-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("updateParkingSpaceAttrListener")
-public class UpdateParkingSpaceAttrListener extends AbstractServiceApiPlusListener {
-
-    @Autowired
-    private IParkingSpaceAttrBMO parkingSpaceAttrBMOImpl;
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-
-        Assert.hasKeyAndValue(reqJson, "attrId", "attrId不能为空");
-        Assert.hasKeyAndValue(reqJson, "specCd", "请求报文中未包含specCd");
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        parkingSpaceAttrBMOImpl.updateParkingSpaceAttr(reqJson, context);
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeParkingSpaceAttrConstant.UPDATE_PARKINGSPACEATTR;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-}

+ 70 - 0
service-community/src/main/java/com/java110/community/cmd/parkingSpace/DeleteParkingSpaceCmd.java

@@ -0,0 +1,70 @@
+package com.java110.community.cmd.parkingSpace;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.community.IParkingSpaceV1InnerServiceSMO;
+import com.java110.po.parking.ParkingSpacePo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+
+@Java110Cmd(serviceCode = "parkingSpace.deleteParkingSpace")
+public class DeleteParkingSpaceCmd extends Cmd {
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingSpaceV1InnerServiceSMO parkingSpaceV1InnerServiceSMOImpl;
+
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+
+        Assert.jsonObjectHaveKey(reqJson, "psId", "请求报文中未包含psId");
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求报文中未包含communityId");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        if (reqJson.containsKey("state") && !StringUtil.isEmpty("state") && reqJson.getString("state").equals("F")) {
+            deleteParkingSpace(reqJson);
+        } else if (reqJson.containsKey("state") && !StringUtil.isEmpty("state") && reqJson.getString("state").equals("S")) {
+            throw new IllegalArgumentException("车位已出售,不能删除!");
+        } else if (reqJson.containsKey("state") && !StringUtil.isEmpty("state") && reqJson.getString("state").equals("H")) {
+            throw new IllegalArgumentException("车位已出租,不能删除!");
+        } else {
+            throw new IllegalArgumentException("未知车位!");
+        }
+    }
+
+    /**
+     * 添加小区楼信息
+     *
+     * @param paramInJson 接口调用放传入入参
+     * @return 订单服务能够接受的报文
+     */
+    public void deleteParkingSpace(JSONObject paramInJson) {
+
+        JSONObject businessParkingSpace = new JSONObject();
+        businessParkingSpace.put("psId", paramInJson.getString("psId"));
+        ParkingSpacePo parkingSpacePo = BeanConvertUtil.covertBean(businessParkingSpace, ParkingSpacePo.class);
+
+        int flag =  parkingSpaceV1InnerServiceSMOImpl.deleteParkingSpace(parkingSpacePo);
+
+        if(flag < 1){
+            throw new CmdException("删除车位失败");
+        }
+    }
+
+}

+ 74 - 0
service-community/src/main/java/com/java110/community/cmd/parkingSpace/EditParkingSpaceCmd.java

@@ -0,0 +1,74 @@
+package com.java110.community.cmd.parkingSpace;
+
+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.parking.ParkingSpaceDto;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.community.IParkingSpaceV1InnerServiceSMO;
+import com.java110.po.parking.ParkingSpacePo;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.exception.ListenerExecuteException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "parkingSpace.editParkingSpace")
+public class EditParkingSpaceCmd extends Cmd {
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingSpaceV1InnerServiceSMO parkingSpaceV1InnerServiceSMOImpl;
+
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "未包含小区ID");
+        Assert.jsonObjectHaveKey(reqJson, "psId", "未包含停车位ID");
+        Assert.jsonObjectHaveKey(reqJson, "paId", "未包含停车场信息");
+        Assert.jsonObjectHaveKey(reqJson, "num", "请求报文中未包含num");
+        Assert.jsonObjectHaveKey(reqJson, "area", "请求报文中未包含area");
+
+
+        Assert.hasLength(reqJson.getString("psId"), "停车位ID不能为空");
+
+        if (reqJson.getString("psId").startsWith("-")) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "停车位ID必须为已有ID");
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+        parkingSpaceDto.setCommunityId(reqJson.getString("communityId"));
+        parkingSpaceDto.setPsId(reqJson.getString("psId"));
+        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+
+        if (parkingSpaceDtos == null || parkingSpaceDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "未查询到停车位信息" + JSONObject.toJSONString(parkingSpaceDto));
+        }
+
+        parkingSpaceDto = parkingSpaceDtos.get(0);
+        JSONObject businessParkingSpace = new JSONObject();
+
+        businessParkingSpace.putAll(reqJson);
+        businessParkingSpace.put("state", parkingSpaceDto.getState());
+        ParkingSpacePo parkingSpacePo = BeanConvertUtil.covertBean(businessParkingSpace, ParkingSpacePo.class);
+        //parkingSpaceInnerServiceSMOImpl.updateParkingSpace(parkingSpacePo);
+        int flag =  parkingSpaceV1InnerServiceSMOImpl.deleteParkingSpace(parkingSpacePo);
+
+        if(flag < 1){
+            throw new CmdException("修改车位失败");
+        }
+    }
+}

+ 175 - 0
service-community/src/main/java/com/java110/community/cmd/parkingSpace/ExitParkingSpaceCmd.java

@@ -0,0 +1,175 @@
+package com.java110.community.cmd.parkingSpace;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.DataFlowContext;
+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.community.IParkingSpaceV1InnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
+import com.java110.po.car.OwnerCarPo;
+import com.java110.po.fee.PayFeePo;
+import com.java110.po.parking.ParkingSpacePo;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.FeeTypeConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.exception.ListenerExecuteException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "parkingSpace.exitParkingSpace")
+public class ExitParkingSpaceCmd extends Cmd {
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+    @Autowired
+    private IParkingSpaceV1InnerServiceSMO parkingSpaceV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerCarV1InnerServiceSMO ownerCarV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
+
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求报文中未包含communityId节点");
+        Assert.jsonObjectHaveKey(reqJson, "ownerId", "请求报文中未包含ownerId节点");
+        Assert.jsonObjectHaveKey(reqJson, "psId", "请求报文中未包含psId节点");
+        Assert.jsonObjectHaveKey(reqJson, "storeId", "请求报文中未包含storeId节点");
+
+
+        Assert.hasLength(reqJson.getString("communityId"), "小区ID不能为空");
+        Assert.hasLength(reqJson.getString("ownerId"), "ownerId不能为空");
+        Assert.hasLength(reqJson.getString("psId"), "psId不能为空");
+        Assert.hasLength(reqJson.getString("storeId"), "storeId不能为空");
+        //
+
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        //退出 业主和停车位之间关系
+        exitParkingSpace(reqJson);
+
+        //将车位状态改为空闲状态
+        modifyParkingSpaceState(reqJson);
+
+
+        //删除费用信息
+        exitParkingSpaceFee(reqJson);
+    }
+
+    /**
+     * 售卖房屋信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @return 订单服务能够接受的报文
+     */
+    public void exitParkingSpace(JSONObject paramInJson) {
+
+
+        OwnerCarDto ownerCarDto = (OwnerCarDto) paramInJson.get("ownerCarDto");
+
+        JSONObject businessOwnerCar = new JSONObject();
+        //businessUnit.putAll(paramInJson);
+        businessOwnerCar.put("carId", ownerCarDto.getCarId());
+        //businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        OwnerCarPo ownerCarPo = BeanConvertUtil.covertBean(businessOwnerCar, OwnerCarPo.class);
+
+        int flag = ownerCarV1InnerServiceSMOImpl.deleteOwnerCar(ownerCarPo);
+        if(flag < 1){
+            throw new CmdException("删除车辆失败");
+        }
+    }
+
+    /**
+     * 修改停车位状态信息
+     *
+     * @param paramInJson 接口调用放传入入参
+     * @return 订单服务能够接受的报文
+     */
+    public void modifyParkingSpaceState(JSONObject paramInJson) {
+
+        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+        parkingSpaceDto.setCommunityId(paramInJson.getString("communityId"));
+        parkingSpaceDto.setPsId(paramInJson.getString("psId"));
+        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+
+        if (parkingSpaceDtos == null || parkingSpaceDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "未查询到停车位信息" + JSONObject.toJSONString(parkingSpaceDto));
+        }
+
+        parkingSpaceDto = parkingSpaceDtos.get(0);
+
+        JSONObject businessParkingSpace = new JSONObject();
+
+        businessParkingSpace.putAll(BeanConvertUtil.beanCovertMap(parkingSpaceDto));
+        businessParkingSpace.put("state", "F");
+        ParkingSpacePo parkingSpacePo = BeanConvertUtil.covertBean(businessParkingSpace, ParkingSpacePo.class);
+
+       int flag = parkingSpaceV1InnerServiceSMOImpl.updateParkingSpace(parkingSpacePo);
+
+        if(flag < 1){
+            throw new CmdException("修改车位失败");
+        }
+    }
+
+    public void exitParkingSpaceFee(JSONObject paramInJson) {
+
+
+        ParkingSpaceDto parkingSpaceDto = (ParkingSpaceDto) paramInJson.get("parkingSpaceDto");
+        //校验物业费是否已经交清
+        FeeDto feeDto = new FeeDto();
+        feeDto.setCommunityId(paramInJson.getString("communityId"));
+        feeDto.setIncomeObjId(paramInJson.getString("storeId"));
+        feeDto.setPayerObjId(paramInJson.getString("psId"));
+        feeDto.setFeeTypeCd("1001".equals(parkingSpaceDto.getTypeCd())
+                ? ("H".equals(parkingSpaceDto.getState())
+                ? FeeTypeConstant.FEE_TYPE_HIRE_UP_PARKING_SPACE
+                : FeeTypeConstant.FEE_TYPE_SELL_UP_PARKING_SPACE)
+                : ("H".equals(parkingSpaceDto.getState())
+                ? FeeTypeConstant.FEE_TYPE_HIRE_DOWN_PARKING_SPACE
+                : FeeTypeConstant.FEE_TYPE_SELL_DOWN_PARKING_SPACE));
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+
+        if (feeDtos == null || feeDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "数据存在问题,停车费对应关系不是一条");
+        }
+
+
+        JSONObject businessFee = new JSONObject();
+        //businessUnit.putAll(paramInJson);
+        businessFee.put("feeId", feeDtos.get(0).getFeeId());
+        //businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        PayFeePo payFeePo = BeanConvertUtil.covertBean(businessFee, PayFeePo.class);
+
+       int flag = payFeeV1InnerServiceSMOImpl.deletePayFee(payFeePo);
+
+        if(flag < 1){
+            throw new CmdException("删除费用失败");
+        }
+    }
+
+}

+ 20 - 77
service-api/src/main/java/com/java110/api/listener/parkingSpace/QueryParkingSpaceCarsListener.java

@@ -1,38 +1,29 @@
-package com.java110.api.listener.parkingSpace;
-
+package com.java110.community.cmd.parkingSpace;
 
 import com.alibaba.fastjson.JSONObject;
-import com.java110.api.listener.AbstractServiceApiDataFlowListener;
-import com.java110.core.annotation.Java110Listener;
+import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.context.DataFlowContext;
-import com.java110.intf.user.IOwnerCarInnerServiceSMO;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
-
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
 import com.java110.dto.owner.OwnerCarDto;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ServiceCodeConstant;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+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.owner.ApiOwnerCarDataVo;
 import com.java110.vo.api.owner.ApiOwnerCarVo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * @ClassName ParkingSpaceDto
- * @Description 小区楼数据层侦听类
- * @Author wuxw
- * @Date 2019/4/24 8:52
- * @Version 1.0
- * add by wuxw 2019/4/24
- **/
-@Java110Listener("queryParkingSpaceCarsListener")
-public class QueryParkingSpaceCarsListener extends AbstractServiceApiDataFlowListener {
+@Java110Cmd(serviceCode = "parkingSpace.queryParkingSpaceCars")
+public class QueryParkingSpaceCarsCmd extends Cmd {
 
     @Autowired
     private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
@@ -40,33 +31,23 @@ public class QueryParkingSpaceCarsListener extends AbstractServiceApiDataFlowLis
     @Autowired
     private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
 
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_QUERY_PARKING_SPACE_CAR;
-    }
 
     @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.jsonObjectHaveKey(reqJson, "page", "请求中未包含page信息");
+        Assert.jsonObjectHaveKey(reqJson, "row", "请求中未包含row信息");
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
+        Assert.isInteger(reqJson.getString("page"), "不是有效数字");
+        Assert.isInteger(reqJson.getString("row"), "不是有效数字");
     }
 
-    /**
-     * 业务层数据处理
-     *
-     * @param event 时间对象
-     */
     @Override
-    public void soService(ServiceDataFlowEvent event) {
-        DataFlowContext dataFlowContext = event.getDataFlowContext();
-        //获取请求数据
-        JSONObject reqJson = dataFlowContext.getReqJson();
-        validateParkingSpaceData(reqJson);
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
 
         refreshReqJson(reqJson);
 
         //根据车牌号去查询 车位信息
-        queryParkingSpaceCar(reqJson, dataFlowContext);
-        return;
+        queryParkingSpaceCar(reqJson, context);
     }
 
     /**
@@ -75,7 +56,7 @@ public class QueryParkingSpaceCarsListener extends AbstractServiceApiDataFlowLis
      * @param reqJson         请求报文
      * @param dataFlowContext 上线文对象
      */
-    private void queryParkingSpaceCar(JSONObject reqJson, DataFlowContext dataFlowContext) {
+    private void queryParkingSpaceCar(JSONObject reqJson,ICmdDataFlowContext dataFlowContext) {
 
 
         ApiOwnerCarVo apiOwnerCarVo = new ApiOwnerCarVo();
@@ -128,42 +109,4 @@ public class QueryParkingSpaceCarsListener extends AbstractServiceApiDataFlowLis
             reqJson.remove("state");
         }
     }
-
-
-    /**
-     * 校验查询条件是否满足条件
-     *
-     * @param reqJson 包含查询条件
-     */
-    private void validateParkingSpaceData(JSONObject reqJson) {
-        Assert.jsonObjectHaveKey(reqJson, "page", "请求中未包含page信息");
-        Assert.jsonObjectHaveKey(reqJson, "row", "请求中未包含row信息");
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
-        Assert.isInteger(reqJson.getString("page"), "不是有效数字");
-        Assert.isInteger(reqJson.getString("row"), "不是有效数字");
-
-    }
-
-    @Override
-    public int getOrder() {
-        return super.DEFAULT_ORDER;
-    }
-
-
-    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;
-    }
 }

+ 19 - 76
service-api/src/main/java/com/java110/api/listener/parkingSpace/QueryParkingSpacesByOwnerListener.java

@@ -1,38 +1,29 @@
-package com.java110.api.listener.parkingSpace;
-
+package com.java110.community.cmd.parkingSpace;
 
 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.user.IOwnerCarInnerServiceSMO;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+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.owner.OwnerCarDto;
 import com.java110.dto.parking.ParkingSpaceDto;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+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.ApiParkingSpaceDataVo;
 import com.java110.vo.api.ApiParkingSpaceVo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * @ClassName ParkingSpaceDto
- * @Description 查询业主停车位
- * @Author wuxw
- * @Date 2019/4/24 8:52
- * @Version 1.0
- * add by wuxw 2019/4/24
- **/
-@Java110Listener("queryParkingSpacesByOwnerListener")
-public class QueryParkingSpacesByOwnerListener extends AbstractServiceApiDataFlowListener {
+@Java110Cmd(serviceCode = "parkingSpace.queryParkingSpacesByOwner")
+public class QueryParkingSpacesByOwnerCmd extends Cmd{
 
     @Autowired
     private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
@@ -41,27 +32,13 @@ public class QueryParkingSpacesByOwnerListener extends AbstractServiceApiDataFlo
     private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
 
     @Override
-    public String getServiceCode() {
-        return ServiceCodeConstant.SERVICE_CODE_QUERY_PARKING_SPACE_BY_OWNER;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
+        Assert.jsonObjectHaveKey(reqJson, "ownerId", "请求中未包含ownerId信息");
     }
 
-    /**
-     * 业务层数据处理
-     *
-     * @param event 时间对象
-     */
     @Override
-    public void soService(ServiceDataFlowEvent event) {
-        DataFlowContext dataFlowContext = event.getDataFlowContext();
-        //获取请求数据
-        JSONObject reqJson = dataFlowContext.getReqJson();
-        validateParkingSpaceData(reqJson);
-
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
         ApiParkingSpaceVo apiParkingSpaceVo = new ApiParkingSpaceVo();
 
         OwnerCarDto ownerCarDto = new OwnerCarDto();
@@ -73,7 +50,7 @@ public class QueryParkingSpacesByOwnerListener extends AbstractServiceApiDataFlo
         ResponseEntity<String> responseEntity = null;
         if (ownerCarDtos == null || ownerCarDtos.size() == 0) {
             responseEntity = new ResponseEntity<String>("{\"parkingSpaces\":[]}", HttpStatus.OK);
-            dataFlowContext.setResponseEntity(responseEntity);
+            context.setResponseEntity(responseEntity);
             return;
         }
 
@@ -106,40 +83,6 @@ public class QueryParkingSpacesByOwnerListener extends AbstractServiceApiDataFlo
 
         apiParkingSpaceVo.setParkingSpaces(apiParkingSpaceDataVos);
         responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiParkingSpaceVo), HttpStatus.OK);
-        dataFlowContext.setResponseEntity(responseEntity);
-    }
-
-
-    /**
-     * 校验查询条件是否满足条件
-     *
-     * @param reqJson 包含查询条件
-     */
-    private void validateParkingSpaceData(JSONObject reqJson) {
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
-        Assert.jsonObjectHaveKey(reqJson, "ownerId", "请求中未包含ownerId信息");
-
-    }
-
-    @Override
-    public int getOrder() {
-        return super.DEFAULT_ORDER;
-    }
-
-
-    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;
+        context.setResponseEntity(responseEntity);
     }
 }

+ 188 - 0
service-community/src/main/java/com/java110/community/cmd/parkingSpace/SellParkingSpaceCmd.java

@@ -0,0 +1,188 @@
+package com.java110.community.cmd.parkingSpace;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.DataFlowContext;
+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.owner.OwnerCarDto;
+import com.java110.dto.parking.ParkingSpaceDto;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.community.IParkingSpaceV1InnerServiceSMO;
+import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarAttrInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
+import com.java110.po.car.OwnerCarPo;
+import com.java110.po.ownerCarAttr.OwnerCarAttrPo;
+import com.java110.po.parking.ParkingSpacePo;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.exception.ListenerExecuteException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "parkingSpace.sellParkingSpace")
+public class SellParkingSpaceCmd extends Cmd {
+
+
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+    @Autowired
+    private IParkingSpaceV1InnerServiceSMO parkingSpaceV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerCarV1InnerServiceSMO ownerCarV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerCarAttrInnerServiceSMO ownerCarAttrInnerServiceSMOImpl;
+
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "未包含小区ID");
+        Assert.jsonObjectHaveKey(reqJson, "ownerId", "请求报文中未包含ownerId");
+        Assert.jsonObjectHaveKey(reqJson, "carNum", "请求报文中未包含carNum");
+        Assert.jsonObjectHaveKey(reqJson, "carBrand", "请求报文中未包含carBrand");
+        Assert.jsonObjectHaveKey(reqJson, "carType", "请求报文中未包含carType");
+        Assert.jsonObjectHaveKey(reqJson, "carColor", "未包含carColor");
+        Assert.jsonObjectHaveKey(reqJson, "psId", "未包含psId");
+        Assert.jsonObjectHaveKey(reqJson, "storeId", "未包含storeId");
+        //Assert.jsonObjectHaveKey(reqJson, "receivedAmount", "未包含receivedAmount");
+        Assert.jsonObjectHaveKey(reqJson, "sellOrHire", "未包含sellOrHire");
+
+        Assert.hasLength(reqJson.getString("communityId"), "小区ID不能为空");
+        Assert.hasLength(reqJson.getString("ownerId"), "ownerId不能为空");
+        Assert.hasLength(reqJson.getString("psId"), "psId不能为空");
+        //Assert.isMoney(reqJson.getString("receivedAmount"), "不是有效的实收金额");
+
+        if (!"H".equals(reqJson.getString("sellOrHire"))
+                && !"S".equals(reqJson.getString("sellOrHire"))) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "请求报文中sellOrFire值错误 ,出售为S 出租为H");
+        }
+    }
+
+    @Override
+    @Java110Transactional
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        String feeId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId);
+        reqJson.put("feeId", feeId);
+
+        //添加小区楼
+        sellParkingSpace(reqJson);
+
+
+        reqJson.put("carNumType",reqJson.getString("sellOrHire"));
+
+        modifySellParkingSpaceState(reqJson);
+    }
+
+
+
+    /**
+     * 修改停车位状态信息
+     *
+     * @param paramInJson 接口调用放传入入参
+     * @return 订单服务能够接受的报文
+     */
+    public void modifySellParkingSpaceState(JSONObject paramInJson) {
+
+        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+        parkingSpaceDto.setCommunityId(paramInJson.getString("communityId"));
+        parkingSpaceDto.setPsId(paramInJson.getString("psId"));
+        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+
+        if (parkingSpaceDtos == null || parkingSpaceDtos.size() != 1) {
+            //throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "未查询到停车位信息" + JSONObject.toJSONString(parkingSpaceDto));
+            return;
+        }
+
+        parkingSpaceDto = parkingSpaceDtos.get(0);
+
+        JSONObject businessParkingSpace = new JSONObject();
+
+        businessParkingSpace.putAll(BeanConvertUtil.beanCovertMap(parkingSpaceDto));
+        businessParkingSpace.put("state", paramInJson.getString("carNumType"));
+        ParkingSpacePo parkingSpacePo = BeanConvertUtil.covertBean(businessParkingSpace, ParkingSpacePo.class);
+        int flag = parkingSpaceV1InnerServiceSMOImpl.updateParkingSpace(parkingSpacePo);
+        if (flag < 1) {
+            throw new CmdException("修改车位失败");
+        }
+    }
+
+    /**
+     * 添加小区楼信息
+     * <p>
+     * * name:'',
+     * *                 age:'',
+     * *                 link:'',
+     * *                 sex:'',
+     * *                 remark:''
+     *
+     * @param paramInJson 接口调用放传入入参
+     * @return 订单服务能够接受的报文
+     */
+    public void sellParkingSpace(JSONObject paramInJson) {
+
+        JSONObject businessOwnerCar = new JSONObject();
+        businessOwnerCar.putAll(paramInJson);
+        businessOwnerCar.put("memberId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_carId));
+        if (!paramInJson.containsKey("carId") || paramInJson.getString("carId").startsWith("-")) {
+            businessOwnerCar.put("carId", businessOwnerCar.getString("memberId"));
+        }
+        OwnerCarPo ownerCarPo = BeanConvertUtil.covertBean(businessOwnerCar, OwnerCarPo.class);
+        ownerCarPo.setState(OwnerCarDto.STATE_NORMAL);
+
+        //没有指定时为主要车辆
+        if (!paramInJson.containsKey("carTypeCd") || StringUtil.isEmpty(paramInJson.getString("carTypeCd"))) {
+            ownerCarPo.setCarTypeCd(OwnerCarDto.CAR_TYPE_PRIMARY);
+        }
+        //添加车辆属性
+        dealOwnerCarAttr(paramInJson, ownerCarPo);
+        int flag =  ownerCarV1InnerServiceSMOImpl.saveOwnerCar(ownerCarPo);
+        if (flag < 1) {
+            throw new CmdException("保存车辆失败");
+        }
+    }
+
+    private void dealOwnerCarAttr(JSONObject paramInJson, OwnerCarPo ownerCarPo) {
+
+        if (!paramInJson.containsKey("attrs")) {
+            return;
+        }
+
+        JSONArray attrs = paramInJson.getJSONArray("attrs");
+        if (attrs.size() < 1) {
+            return;
+        }
+        JSONObject attr = null;
+        int flag = 0;
+        for (int attrIndex = 0; attrIndex < attrs.size(); attrIndex++) {
+            attr = attrs.getJSONObject(attrIndex);
+            OwnerCarAttrPo ownerCarAttrPo = new OwnerCarAttrPo();
+            ownerCarAttrPo.setAttrId(GenerateCodeFactory.getAttrId());
+            ownerCarAttrPo.setCommunityId(ownerCarPo.getCommunityId());
+            ownerCarAttrPo.setCarId(ownerCarPo.getCarId());
+            ownerCarAttrPo.setSpecCd(attr.getString("specCd"));
+            ownerCarAttrPo.setValue(attr.getString("value"));
+            flag = ownerCarAttrInnerServiceSMOImpl.saveOwnerCarAttr(ownerCarAttrPo);
+            if (flag < 1) {
+                throw new CmdException("保存车辆属性失败");
+            }
+        }
+
+    }
+}