com.dahuatech.icc.multiinone.visitor.vo.AppointmentRequest Maven / Gradle / Ivy
package com.dahuatech.icc.multiinone.visitor.vo;
import com.dahuatech.icc.multiinone.exception.BusinessException;
import com.dahuatech.icc.multiinone.utils.CollectionsUtils;
import com.dahuatech.icc.multiinone.utils.StringUtils;
import com.dahuatech.icc.multiinone.visitor.domain.VisitorInfo;
import com.dahuatech.icc.multiinone.vo.BaseRequest;
import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.List;
public class AppointmentRequest extends BaseRequest {
private String isv_id;
private String v_name;
private String v_phone;
private String v_dw;
private String v_plateNumber;
private String v_certificateType;
private String v_certificateNumber;
private Integer v_personSum = 1;
private String v_reason;
private String v_timeStr;
private String v_lvTimeStr;
private File faceFile;
private String visitorType = "0";
private Integer approveFlag = 0;
private List followVisitors;
public String getIsv_id() {
return isv_id;
}
public void setIsv_id(String isv_id) {
this.isv_id = isv_id;
}
public String getV_name() {
return v_name;
}
public void setV_name(String v_name) {
this.v_name = v_name;
}
public String getV_phone() {
return v_phone;
}
public void setV_phone(String v_phone) {
this.v_phone = v_phone;
}
public String getV_dw() {
return v_dw;
}
public void setV_dw(String v_dw) {
this.v_dw = v_dw;
}
public String getV_plateNumber() {
return v_plateNumber;
}
public void setV_plateNumber(String v_plateNumber) {
this.v_plateNumber = v_plateNumber;
}
public String getV_certificateType() {
return v_certificateType;
}
public void setV_certificateType(String v_certificateType) {
this.v_certificateType = v_certificateType;
}
public String getV_certificateNumber() {
return v_certificateNumber;
}
public void setV_certificateNumber(String v_certificateNumber) {
this.v_certificateNumber = v_certificateNumber;
}
public Integer getV_personSum() {
return v_personSum;
}
public void setV_personSum(Integer v_personSum) {
this.v_personSum = v_personSum;
}
public String getV_reason() {
return v_reason;
}
public void setV_reason(String v_reason) {
this.v_reason = v_reason;
}
public String getV_timeStr() {
return v_timeStr;
}
public void setV_timeStr(String v_timeStr) {
this.v_timeStr = v_timeStr;
}
public String getV_lvTimeStr() {
return v_lvTimeStr;
}
public void setV_lvTimeStr(String v_lvTimeStr) {
this.v_lvTimeStr = v_lvTimeStr;
}
public File getFaceFile() {
return faceFile;
}
public void setFaceFile(File faceFile) {
this.faceFile = faceFile;
}
public String getVisitorType() {
return visitorType;
}
public void setVisitorType(String visitorType) {
this.visitorType = visitorType;
}
public Integer getApproveFlag() {
return approveFlag;
}
public void setApproveFlag(Integer approveFlag) {
this.approveFlag = approveFlag;
}
public List getFollowVisitors() {
return followVisitors;
}
public void setFollowVisitors(List followVisitors) {
this.followVisitors = followVisitors;
}
public void businessValid() {
if(StringUtils.isEmpty(v_name) || !v_name.matches("^[a-zA-Z0-9\\-_\\u4E00-\\u9FA5]{1,20}$")){
throw new BusinessException("访客姓名非法");
}
if(StringUtils.isEmpty(v_phone) || !v_phone.matches("^(([0\\+][0-9]{2,3}-)?(0[0-9]{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$|^1[3|4|5|7|8|9][0-9]{9}$")){
throw new BusinessException("访客手机号非法");
}
if(StringUtils.isEmpty(v_certificateType)){
throw new BusinessException("访客证件类型为空");
}
if(StringUtils.isEmpty(v_certificateNumber) || !v_certificateNumber.matches("^[a-zA-Z0-9]+$")){
throw new BusinessException("访客证件号码非法");
}
if(!StringUtils.isEmpty(v_plateNumber) && (v_plateNumber.length() > 8 || v_plateNumber.length() < 7)){
throw new BusinessException("访客车牌号非法");
}
if(StringUtils.isEmpty(v_reason)){
throw new BusinessException("访客来访事由为空");
}
if(StringUtils.isEmpty(isv_id)){
throw new BusinessException("被访人id为空");
}
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat.setLenient(false);
if(StringUtils.isEmpty(v_timeStr)){
throw new BusinessException("预约来访时间为空");
}
if(StringUtils.isEmpty(v_lvTimeStr)){
throw new BusinessException("预约离访时间为空");
}
try{
dateFormat.parse(v_timeStr);
}catch (Exception e){
throw new BusinessException("预约来访时间格式非法");
}
try{
dateFormat.parse(v_lvTimeStr);
}catch (Exception e){
throw new BusinessException("预约离访时间格式非法");
}
if(!CollectionsUtils.isEmpty(followVisitors)){
for(VisitorInfo visitorInfo : followVisitors){
if(StringUtils.isEmpty(visitorInfo.getV_name()) || !visitorInfo.getV_name().matches("^[a-zA-Z0-9\\-_\\u4E00-\\u9FA5]{1,20}$")){
throw new BusinessException("随访访客姓名非法");
}
if(StringUtils.isEmpty(visitorInfo.getV_phone()) || !visitorInfo.getV_phone().matches("^(([0\\+][0-9]{2,3}-)?(0[0-9]{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$|^1[3|4|5|7|8|9][0-9]{9}$")){
throw new BusinessException("随访访客手机号非法");
}
if(StringUtils.isEmpty(visitorInfo.getV_certificateNumber()) || !visitorInfo.getV_certificateNumber().matches("^[a-zA-Z0-9]+$")){
throw new BusinessException("随访访客证件号码非法");
}
}
}
}
}