package com.doumee.dao.admin.request;
|
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.utils.DESUtil;
|
import com.doumee.dao.admin.response.DevWgResponseParam;
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModelProperty;
|
import lombok.Data;
|
import org.apache.commons.lang3.StringUtils;
|
|
@Data
|
@ApiModel("读头扫码开门二维码参数")
|
public class QrOpenDoorDto {
|
@ApiModelProperty(value = "开门类型 0会议开门 1管理员开门会议室",required = true)
|
private Integer type ;
|
@ApiModelProperty(value = "用户",required = true)
|
private Integer userId ;
|
@ApiModelProperty(value = "会议|会议室编码",required = true)
|
private Integer objId ;
|
@ApiModelProperty(value = "时间戳long",required = true)
|
private Long timestamp ;
|
@ApiModelProperty(value = "设备号",required = true)
|
private String deviceCode;
|
|
public static QrOpenDoorDto getObjectFromParam(String desPwd,DevWgResponseParam json){
|
try {
|
//二维码参数
|
String paramOrigin = json.getVgdecoderesult();
|
//设备号
|
String deviceCode = json.getDevicenumber();
|
if(StringUtils.isBlank(deviceCode)){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"0"+paramOrigin);
|
}
|
//参数格式 memberId|bookingId|timestamp
|
String dParam = DESUtil.decrypt(desPwd,paramOrigin);
|
if(StringUtils.isBlank(dParam)){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"1"+dParam);
|
}
|
String[] params= dParam.split("\\|");
|
|
String type = params[0];//开门类型 0会议开门 1管理员开门会议室
|
if(!StringUtils.equals(type,"0")&&!StringUtils.equals(type,"1")){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"2"+dParam);
|
}
|
|
String memberId = params[1];//用户
|
String objId = params[2];//会议|会议室编码
|
String timestamp = params[3];//时间戳long
|
if(StringUtils.isBlank(memberId)
|
||StringUtils.isBlank(objId)
|
|| StringUtils.isBlank(timestamp)){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"3"+dParam);
|
}
|
QrOpenDoorDto model = new QrOpenDoorDto();
|
model.setType(Integer.parseInt(type));
|
model.setDeviceCode(deviceCode);
|
model.setObjId(Integer.parseInt(objId));
|
model.setTimestamp(Long.parseLong(timestamp));
|
model.setUserId(Integer.parseInt(memberId));
|
return model;
|
}catch (Exception e){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"4");
|
}
|
|
}
|
|
public static String getParamFromObject(QrOpenDoorDto dto) {
|
if(dto ==null){
|
return "";
|
}
|
return dto.getType()+"|"+dto.getUserId()+"|"+dto.getObjId()+"|"+dto.getTimestamp();
|
}
|
}
|