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(); } }