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