Sfoglia il codice sorgente

加入续租车位

java110 5 anni fa
parent
commit
761f46b375

+ 1 - 0
java110-bean/src/main/java/com/java110/dto/parking/ParkingSpaceDto.java

@@ -16,6 +16,7 @@ import java.util.Date;
 public class ParkingSpaceDto extends PageDto implements Serializable {
 
     public static final String STATE_FREE = "F";
+    public static final String STATE_HIRE = "H";
 
     private String area;
     private String typeCd;

+ 3 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java

@@ -477,6 +477,9 @@ public class ServiceCodeConstant {
     //释放车位
     public static final String SERVICE_CODE_DELETE_CAR_PARKING_SPACE = "owner.deleteCarParkingSpace";
 
+    //续租车位
+    public static final String SERVICE_CODE_CAR_ADD_PARKING_SPACE = "owner.carAddParkingSpace";
+
     //查询业主成员
     public static final String SERVICE_CODE_QUERY_OWNER_MEMBER = "owner.queryOwnerMembers";
 

+ 101 - 0
service-api/src/main/java/com/java110/api/listener/owner/CarAddParkingSpaceListener.java

@@ -0,0 +1,101 @@
+package com.java110.api.listener.owner;
+
+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.dto.owner.OwnerCarDto;
+import com.java110.dto.parking.ParkingSpaceDto;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.po.car.OwnerCarPo;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.ServiceCodeConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+
+import java.util.List;
+
+/**
+ * @ClassName DeleteCarParkingSpaceListener
+ * @Description 续租车位
+ * @Author wuxw
+ * @Date 2019/4/26 14:51
+ * @Version 1.0
+ * @site http://www.homecommunity.cn
+ * add by wuxw 2019/4/26
+ **/
+
+@Java110Listener("carAddParkingSpaceListener")
+public class CarAddParkingSpaceListener extends AbstractServiceApiPlusListener {
+
+
+    private static Logger logger = LoggerFactory.getLogger(CarAddParkingSpaceListener.class);
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingSpaceBMO parkingSpaceBMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_CAR_ADD_PARKING_SPACE;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+
+    /**
+     * @param event   事件对象
+     * @param reqJson 请求报文数据
+     */
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "未包含小区ID");
+        Assert.jsonObjectHaveKey(reqJson, "carId", "请求报文中未包含carId");
+        Assert.jsonObjectHaveKey(reqJson, "startTime", "请求报文中未包含startTime");
+        Assert.jsonObjectHaveKey(reqJson, "endTime", "请求报文中未包含startTime");
+        Assert.jsonObjectHaveKey(reqJson, "psId", "请求报文中未包含psId");
+        Assert.hasLength(reqJson.getString("communityId"), "小区ID不能为空");
+
+        OwnerCarDto ownerCarDto = new OwnerCarDto();
+        ownerCarDto.setCarId(reqJson.getString("carId"));
+        ownerCarDto.setCommunityId(reqJson.getString("communityId"));
+        List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+        Assert.listOnlyOne(ownerCarDtos, "未找到车辆信息");
+
+        String psId = ownerCarDtos.get(0).getPsId();
+
+        if (!StringUtil.isEmpty(psId) && !"-1".equals(psId)) {
+            throw new IllegalArgumentException("已有车位无需续租");
+        }
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        OwnerCarPo ownerCarPo = BeanConvertUtil.covertBean(reqJson, OwnerCarPo.class);
+        ownerCarPo.setState(OwnerCarDto.STATE_NORMAL);
+        super.update(context, ownerCarPo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_OWNER_CAR);
+        reqJson.put("carNumType", ParkingSpaceDto.STATE_HIRE);
+        parkingSpaceBMOImpl.modifySellParkingSpaceState(reqJson, context);
+
+    }
+
+
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+
+}