service-community/src/main/java/com/java110/community/cmd/visit/UpdateVisitCmd.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
@@ -11,9 +12,11 @@
import com.java110.dto.parking.ParkingSpaceDto;
import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
import com.java110.intf.community.IVisitV1InnerServiceSMO;
import com.java110.intf.user.ICarBlackWhiteV1InnerServiceSMO;
import com.java110.intf.user.IOwnerCarAttrInnerServiceSMO;
import com.java110.intf.user.IOwnerCarInnerServiceSMO;
import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
import com.java110.po.car.CarBlackWhitePo;
import com.java110.po.car.OwnerCarPo;
import com.java110.po.owner.VisitPo;
import com.java110.po.ownerCarAttr.OwnerCarAttrPo;
@@ -48,9 +51,11 @@
    @Autowired
    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
    @Autowired
    private IVisitV1InnerServiceSMO visitV1InnerServiceSMOImpl;
    @Autowired
    private ICarBlackWhiteV1InnerServiceSMO carBlackWhiteV1InnerServiceSMOImpl;
    //键
    public static final String CAR_FREE_TIME = "CAR_FREE_TIME";
@@ -58,6 +63,7 @@
    //键
    public static final String ASCRIPTION_CAR_AREA_ID = "ASCRIPTION_CAR_AREA_ID";
    public static final String CODE_PREFIX_ID = "10";
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
@@ -66,16 +72,13 @@
        Assert.hasKeyAndValue(reqJson, "visitGender", "必填,请填写访客姓名");
        Assert.hasKeyAndValue(reqJson, "phoneNumber", "必填,请填写访客联系方式");
        Assert.hasKeyAndValue(reqJson, "visitTime", "必填,请填写访客拜访时间");
    }
    @Override
    @Java110Transactional
    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
        String userId = context.getReqHeaders().get("user-id");
//是否有空闲车位
        //是否有空闲车位
        boolean freeSpace = false;
        //是否存在车辆
        boolean existCar = false;
@@ -102,9 +105,8 @@
            newTime.setTime(time);
            newTime.add(Calendar.MINUTE, Integer.parseInt(freeTime));//日期加上分钟
            Date newDate = newTime.getTime();
            String finishFreeTime = DateUtil.getFormatTimeString(newDate,DateUtil.DATE_FORMATE_STRING_A);
            String finishFreeTime = DateUtil.getFormatTimeString(newDate, DateUtil.DATE_FORMATE_STRING_A);
            reqJson.put("freeTime", finishFreeTime);
            //获取小区配置里配置的停车场id
            String parkingAreaId = CommunitySettingFactory.getValue(reqJson.getString("communityId"), ASCRIPTION_CAR_AREA_ID);
            if (StringUtil.isEmpty(parkingAreaId)) { //如果没有配置停车场id,就随便分配该小区下一个空闲车位
@@ -156,7 +158,10 @@
        }
        reqJson.put("stateRemark", result);
        updateVisit(reqJson);
        if (reqJson.containsKey("state") && reqJson.getString("state").equals("1")
                && !StringUtil.isEmpty(reqJson.getString("carNum"))) {
            addBlackWhite(reqJson);
        }
        if (existCar) {
            ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "访客信息审核成功,车辆已经存在预约,请您在预约到期后,再次进行车辆预约,谢谢!");
            context.setResponseEntity(responseEntity);
@@ -194,6 +199,7 @@
            ownerCarPo.setState(OwnerCarDto.STATE_NORMAL); //1001 正常状态,2002 车位释放欠费状态  3003 车位释放
            ownerCarPo.setCarTypeCd(OwnerCarDto.CAR_TYPE_TEMP); //1001 业主车辆 1002 成员车辆 1003 临时车
            ownerCarPo.setMemberId(reqJson.getString("ownerId"));
            ownerCarPo.setLeaseType("R"); //H 月租车  S 出售车  I 内部车  NM 免费车  R 预约车
            ownerCarV1InnerServiceSMOImpl.saveOwnerCar(ownerCarPo);
            //添加车辆属性
            OwnerCarAttrPo ownerCarAttrPo = new OwnerCarAttrPo();
@@ -215,18 +221,40 @@
    /**
     * 添加小区信息
     *
     * @param paramInJson     接口调用放传入入参
     * @param paramInJson 接口调用放传入入参
     * @return 订单服务能够接受的报文
     */
    public void updateVisit(JSONObject paramInJson) {
        JSONObject businessVisit = new JSONObject();
        businessVisit.putAll(paramInJson);
        VisitPo visitPo = BeanConvertUtil.covertBean(businessVisit, VisitPo.class);
        int flag =visitV1InnerServiceSMOImpl.updateVisit(visitPo);
        if(flag <1){
        int flag = visitV1InnerServiceSMOImpl.updateVisit(visitPo);
        if (flag < 1) {
            throw new CmdException("修改访客失败");
        }
    }
    /**
     * 添加白名单
     *
     * @param paramInJson
     */
    public void addBlackWhite(JSONObject paramInJson) {
        CarBlackWhitePo carBlackWhitePo = new CarBlackWhitePo();
        carBlackWhitePo.setBwId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
        carBlackWhitePo.setbId("-1");
        carBlackWhitePo.setCommunityId(paramInJson.getString("communityId"));
        carBlackWhitePo.setBlackWhite("2222"); //1111 黑名单 2222 白名单
        carBlackWhitePo.setCarNum(paramInJson.getString("carNum"));
        carBlackWhitePo.setStartTime(paramInJson.getString("visitTime"));
        carBlackWhitePo.setEndTime(paramInJson.getString("freeTime"));
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        carBlackWhitePo.setCreateTime(simpleDateFormat.format(new Date()));
        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
        parkingSpaceDto.setPsId(paramInJson.getString("psId"));
        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto); //查询车位
        Assert.listOnlyOne(parkingSpaceDtos, "查询车位错误!");
        carBlackWhitePo.setPaId(parkingSpaceDtos.get(0).getPaId());
        carBlackWhiteV1InnerServiceSMOImpl.saveCarBlackWhite(carBlackWhitePo);
    }
}