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