wuxw
2022-08-05 7722d3d65e7627b3b212b4b813fc6b0a5128ac0b
优化 访客为cmd 方式
1个文件已删除
3 文件已重命名
1个文件已添加
310 ■■■■ 已修改文件
service-api/src/main/java/com/java110/api/listener/visit/DeleteVisitListener.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-community/src/main/java/com/java110/community/cmd/visit/DeleteVisitCmd.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-community/src/main/java/com/java110/community/cmd/visit/ListVisitsCmd.java 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-community/src/main/java/com/java110/community/cmd/visit/SaveVisitCmd.java 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-community/src/main/java/com/java110/community/cmd/visit/UpdateVisitCmd.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/listener/visit/DeleteVisitListener.java
File was deleted
service-community/src/main/java/com/java110/community/cmd/visit/DeleteVisitCmd.java
New file
@@ -0,0 +1,39 @@
package com.java110.community.cmd.visit;
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.intf.community.IVisitV1InnerServiceSMO;
import com.java110.po.owner.VisitPo;
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;
@Java110Cmd(serviceCode = "visit.deleteVisit")
public class DeleteVisitCmd extends Cmd {
    @Autowired
    private IVisitV1InnerServiceSMO visitV1InnerServiceSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
        Assert.hasKeyAndValue(reqJson, "vId", "访客记录ID不能为空");
    }
    @Override
    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
        VisitPo visitPo = BeanConvertUtil.covertBean(reqJson, VisitPo.class);
        visitPo.setStatusCd("1");
        int flag = visitV1InnerServiceSMOImpl.deleteVisit(visitPo);
        if(flag < 1){
            throw new CmdException("删除异常");
        }
    }
}
service-community/src/main/java/com/java110/community/cmd/visit/ListVisitsCmd.java
old mode 100755 new mode 100644
File was renamed from service-api/src/main/java/com/java110/api/listener/visit/ListVisitsListener.java
@@ -1,46 +1,33 @@
package com.java110.api.listener.visit;
package com.java110.community.cmd.visit;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.listener.AbstractServiceApiListener;
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.CommunitySettingFactory;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.intf.community.IVisitInnerServiceSMO;
import com.java110.dto.visit.VisitDto;
import com.java110.core.event.service.api.ServiceDataFlowEvent;
import com.java110.intf.community.IVisitInnerServiceSMO;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.StringUtil;
import com.java110.vo.api.visit.ApiVisitDataVo;
import com.java110.vo.api.visit.ApiVisitVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import com.java110.utils.constant.ServiceCodeVisitConstant;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 查询小区侦听类
 */
@Java110Listener("listVisitsListener")
public class ListVisitsListener extends AbstractServiceApiListener {
@Java110Cmd(serviceCode = "visit.listVisits")
public class ListVisitsCmd extends Cmd {
    @Autowired
    private IVisitInnerServiceSMO visitInnerServiceSMOImpl;
    @Override
    public String getServiceCode() {
        return ServiceCodeVisitConstant.LIST_VISITS;
    }
    @Override
    public HttpMethod getHttpMethod() {
        return HttpMethod.GET;
    }
    //键
    public static final String CAR_FREE_TIME = "CAR_FREE_TIME";
@@ -48,26 +35,14 @@
    //键
    public static final String VISIT_NUMBER = "VISIT_NUMBER";
    @Override
    public int getOrder() {
        return DEFAULT_ORDER;
    }
    public IVisitInnerServiceSMO getVisitInnerServiceSMOImpl() {
        return visitInnerServiceSMOImpl;
    }
    public void setVisitInnerServiceSMOImpl(IVisitInnerServiceSMO visitInnerServiceSMOImpl) {
        this.visitInnerServiceSMOImpl = visitInnerServiceSMOImpl;
    }
    @Override
    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
        super.validatePageInfo(reqJson);
    }
    @Override
    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
        ResponseEntity<String> responseEntity = new ResponseEntity<String>("", HttpStatus.OK);
        if (reqJson.containsKey("addVisitType") && !StringUtil.isEmpty(reqJson.getString("addVisitType"))
                && "initAddVisitParameter".equals(reqJson.getString("addVisitType"))) {
service-community/src/main/java/com/java110/community/cmd/visit/SaveVisitCmd.java
old mode 100755 new mode 100644
File was renamed from service-api/src/main/java/com/java110/api/listener/visit/SaveVisitListener.java
@@ -1,11 +1,11 @@
package com.java110.api.listener.visit;
package com.java110.community.cmd.visit;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.bmo.visit.IVisitBMO;
import com.java110.api.listener.AbstractServiceApiPlusListener;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.context.DataFlowContext;
import com.java110.core.event.service.api.ServiceDataFlowEvent;
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.CommunitySettingFactory;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.file.FileDto;
@@ -13,48 +13,49 @@
import com.java110.dto.parking.ParkingSpaceDto;
import com.java110.dto.visit.VisitDto;
import com.java110.intf.common.IFileInnerServiceSMO;
import com.java110.intf.common.IFileRelInnerServiceSMO;
import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
import com.java110.intf.community.IVisitInnerServiceSMO;
import com.java110.intf.community.IVisitV1InnerServiceSMO;
import com.java110.intf.user.IOwnerCarAttrInnerServiceSMO;
import com.java110.intf.user.IOwnerCarInnerServiceSMO;
import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
import com.java110.po.car.OwnerCarPo;
import com.java110.po.file.FileRelPo;
import com.java110.po.owner.VisitPo;
import com.java110.po.ownerCarAttr.OwnerCarAttrPo;
import com.java110.po.parking.ParkingSpacePo;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.ServiceCodeVisitConstant;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Random;
/**
 * 保存小区侦听
 * add by wuxw 2019-06-30
 */
@Java110Listener("saveVisitListener")
public class SaveVisitListener extends AbstractServiceApiPlusListener {
    @Autowired
    private IVisitBMO visitBMOImpl;
@Java110Cmd(serviceCode = "visit.saveVisit")
public class SaveVisitCmd extends Cmd {
    @Autowired
    private IVisitInnerServiceSMO visitInnerServiceSMOImpl;
    @Autowired
    private IVisitV1InnerServiceSMO visitV1InnerServiceSMOImpl;
    @Autowired
    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
    @Autowired
    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
    @Autowired
    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
@@ -81,9 +82,7 @@
    public static final String ASCRIPTION_CAR_AREA_ID = "ASCRIPTION_CAR_AREA_ID";
    @Override
    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
        Assert.hasKeyAndValue(reqJson, "vName", "必填,请填写访客姓名");
        Assert.hasKeyAndValue(reqJson, "visitGender", "必填,请填写访客姓名");
        Assert.hasKeyAndValue(reqJson, "phoneNumber", "必填,请填写访客联系方式");
@@ -92,7 +91,10 @@
    }
    @Override
    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) throws ParseException {
    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
        String userId = context.getReqHeaders().get("user-id");
        reqJson.put("vId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_vId));
        //是否需要审核
        String isNeedReviewFlag = CommunitySettingFactory.getValue(reqJson.getString("communityId"), IS_NEED_REVIEW);
@@ -119,14 +121,12 @@
            if (StringUtil.isEmpty(freeTime)) {
                freeTime = "120";
            }
            String visitTime = reqJson.getString("visitTime");
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date time = df.parse(visitTime);
            Date time = DateUtil.getDateFromStringA(reqJson.getString("visitTime"));
            Calendar newTime = Calendar.getInstance();
            newTime.setTime(time);
            newTime.add(Calendar.MINUTE, Integer.parseInt(freeTime));//日期加上分钟
            Date newDate = newTime.getTime();
            String finishFreeTime = df.format(newDate);
            String finishFreeTime = DateUtil.getFormatTimeString(newDate,DateUtil.DATE_FORMATE_STRING_A);
            reqJson.put("freeTime", finishFreeTime);
            if (!StringUtils.isEmpty(isNeedReviewFlag) && isNeedReviewFlag.equals("false")) { //不需要审核就随机自动分配车位
                //获取小区配置里配置的停车场id
@@ -214,7 +214,7 @@
            result = "访客信息登记成功,当前停车场已无空闲车位,登记车辆将暂时不能进入停车场,请您合理安排出行。";
        }
        reqJson.put("stateRemark", result);
        visitBMOImpl.addVisit(reqJson, context);
        addVisit(reqJson);
        if (reqJson.containsKey("photo") && !StringUtils.isEmpty(reqJson.getString("photo"))) {
            FileDto fileDto = new FileDto();
            fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
@@ -234,9 +234,8 @@
            businessUnit.put("fileRealName", fileDto.getFileId());
            businessUnit.put("fileSaveName", fileName);
            FileRelPo fileRelPo = BeanConvertUtil.covertBean(businessUnit, FileRelPo.class);
            super.insert(context, fileRelPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
            fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo);
        }
        commit(context);
        if ("1".equals(reqJson.getString("state"))
                && reqJson.containsKey("carNum") && !StringUtil.isEmpty(reqJson.getString("carNum"))
                && !existCar && !StringUtil.isEmpty(reqJson.getString("psId")) && !"-1".equals(reqJson.getString("psId"))) { //审核通过且有车位就更新车位状态
@@ -255,7 +254,7 @@
            ownerCarPo.setCarType("9901");
            ownerCarPo.setCarColor("无(预约车)");
            ownerCarPo.setPsId(reqJson.getString("psId"));
            ownerCarPo.setUserId(context.getUserId());
            ownerCarPo.setUserId(userId);
            ownerCarPo.setRemark("访客登记预约车");
            ownerCarPo.setCommunityId(reqJson.getString("communityId"));
            ownerCarPo.setStartTime(reqJson.getString("visitTime"));
@@ -296,19 +295,21 @@
        }
    }
    @Override
    public String getServiceCode() {
        return ServiceCodeVisitConstant.ADD_VISIT;
    }
    /**
     * 添加小区信息
     *
     * @param paramInJson     接口调用放传入入参
     * @return 订单服务能够接受的报文
     */
    public void addVisit(JSONObject paramInJson) {
    @Override
    public HttpMethod getHttpMethod() {
        return HttpMethod.POST;
    }
        JSONObject businessVisit = new JSONObject();
        businessVisit.putAll(paramInJson);
    @Override
    public int getOrder() {
        return DEFAULT_ORDER;
        VisitPo visitPo = BeanConvertUtil.covertBean(businessVisit, VisitPo.class);
        int flag =visitV1InnerServiceSMOImpl.saveVisit(visitPo);
        if(flag <1){
            throw new CmdException("保存访客失败");
        }
    }
}
service-community/src/main/java/com/java110/community/cmd/visit/UpdateVisitCmd.java
old mode 100755 new mode 100644
File was renamed from service-api/src/main/java/com/java110/api/listener/visit/UpdateVisitListener.java
@@ -1,46 +1,40 @@
package com.java110.api.listener.visit;
package com.java110.community.cmd.visit;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.bmo.visit.IVisitBMO;
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.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.CommunitySettingFactory;
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.IVisitV1InnerServiceSMO;
import com.java110.intf.user.IOwnerCarAttrInnerServiceSMO;
import com.java110.intf.user.IOwnerCarInnerServiceSMO;
import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
import com.java110.po.car.OwnerCarPo;
import com.java110.po.owner.VisitPo;
import com.java110.po.ownerCarAttr.OwnerCarAttrPo;
import com.java110.po.parking.ParkingSpacePo;
import com.java110.utils.constant.ServiceCodeVisitConstant;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Random;
/**
 * 保存访客登记侦听
 * add by wuxw 2019-06-30
 */
@Java110Listener("updateVisitListener")
public class UpdateVisitListener extends AbstractServiceApiPlusListener {
    @Autowired
    private IVisitBMO visitBMOImpl;
@Java110Cmd(serviceCode = "visit.updateVisit")
public class UpdateVisitCmd extends Cmd {
    @Autowired
    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
@@ -54,15 +48,19 @@
    @Autowired
    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
    @Autowired
    private IVisitV1InnerServiceSMO visitV1InnerServiceSMOImpl;
    //键
    public static final String CAR_FREE_TIME = "CAR_FREE_TIME";
    //键
    public static final String ASCRIPTION_CAR_AREA_ID = "ASCRIPTION_CAR_AREA_ID";
    @Override
    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
        Assert.hasKeyAndValue(reqJson, "vId", "访客记录ID不能为空");
        Assert.hasKeyAndValue(reqJson, "vName", "必填,请填写访客姓名");
        Assert.hasKeyAndValue(reqJson, "visitGender", "必填,请填写访客姓名");
@@ -72,8 +70,12 @@
    }
    @Override
    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) throws ParseException {
        //是否有空闲车位
    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
        String userId = context.getReqHeaders().get("user-id");
//是否有空闲车位
        boolean freeSpace = false;
        //是否存在车辆
        boolean existCar = false;
@@ -92,14 +94,15 @@
                && !existCar) {
            //获取预约车免费时长的值
            String freeTime = CommunitySettingFactory.getValue(reqJson.getString("communityId"), CAR_FREE_TIME);
            String visitTime = reqJson.getString("visitTime");
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date time = df.parse(visitTime);
            if (StringUtil.isEmpty(freeTime)) {
                freeTime = "120";
            }
            Date time = DateUtil.getDateFromStringA(reqJson.getString("visitTime"));
            Calendar newTime = Calendar.getInstance();
            newTime.setTime(time);
            newTime.add(Calendar.MINUTE, Integer.parseInt(freeTime));//日期加上分钟
            Date newDate = newTime.getTime();
            String finishFreeTime = df.format(newDate);
            String finishFreeTime = DateUtil.getFormatTimeString(newDate,DateUtil.DATE_FORMATE_STRING_A);
            reqJson.put("freeTime", finishFreeTime);
            //获取小区配置里配置的停车场id
@@ -152,8 +155,8 @@
            result = "访客信息审核成功,当前停车场已无空闲车位,登记车辆将暂时不能进入停车场,请您合理安排出行。";
        }
        reqJson.put("stateRemark", result);
        visitBMOImpl.updateVisit(reqJson, context);
        commit(context);
        updateVisit(reqJson);
        if (existCar) {
            ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "访客信息审核成功,车辆已经存在预约,请您在预约到期后,再次进行车辆预约,谢谢!");
            context.setResponseEntity(responseEntity);
@@ -183,7 +186,7 @@
            ownerCarPo.setCarType("9901");
            ownerCarPo.setCarColor("无(预约车)");
            ownerCarPo.setPsId(reqJson.getString("psId"));
            ownerCarPo.setUserId(context.getUserId());
            ownerCarPo.setUserId(userId);
            ownerCarPo.setRemark("访客登记预约车");
            ownerCarPo.setCommunityId(reqJson.getString("communityId"));
            ownerCarPo.setStartTime(reqJson.getString("visitTime"));
@@ -209,15 +212,21 @@
        }
    }
    @Override
    public String getServiceCode() {
        return ServiceCodeVisitConstant.UPDATE_VISIT;
    /**
     * 添加小区信息
     *
     * @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){
            throw new CmdException("修改访客失败");
        }
    }
    @Override
    public HttpMethod getHttpMethod() {
        return HttpMethod.POST;
    }
}