package com.tievd.jyz.mqtt; import com.tievd.jyz.cache.CameraFactoryCache; import com.tievd.jyz.constants.SystemConstant; import com.tievd.jyz.entity.Camera; import com.tievd.jyz.entity.Device; import com.tievd.jyz.entity.OilPosition; import com.tievd.jyz.mqtt.dto.CameraDTO; import com.tievd.jyz.mqtt.dto.InitConfigDTO; import com.tievd.jyz.mqtt.dto.OilPositionDTO; import com.tievd.jyz.mqtt.dto.RegisterDTO; import com.tievd.jyz.util.BeanUtil; import com.tievd.jyz.util.S3Util; import org.apache.commons.lang3.StringUtils; import java.sql.Timestamp; import java.util.Date; /** * 传输数据对象转换器 * @author timi */ public class PojoDataConverter { /** * 网关状态转换 * @param deviceSN * @param registerDTO * @return */ public static Device deviceConvert(String deviceSN,RegisterDTO registerDTO){ Device device = new Device(); device.setDeviceIp(registerDTO.getIp()); device.setHeartTime(new Date()); device.setSn(deviceSN); device.setStatus(SystemConstant.DEVICE_ONLINE); device.setPort(Integer.parseInt(registerDTO.getPort())); device.setDeviceVersion(registerDTO.getVersion()); return device; } /** * 初始化配置转换 * @param s3Util * @param heartbeatTime * @return */ public static InitConfigDTO InitConfigConvert(S3Util s3Util,Integer heartbeatTime){ InitConfigDTO initConfigDTO = new InitConfigDTO(); initConfigDTO.setS3(s3Util.deviceServiceEndpoint,s3Util.accessKey,s3Util.secretKey,s3Util.bucketName); initConfigDTO.setHeartbeat(String.valueOf(heartbeatTime)); return initConfigDTO; } /** * 终端转换 * @param camera * @return */ public static CameraDTO cameraDTOConvert(Camera camera){ CameraDTO cameraDTO = new CameraDTO(); BeanUtil.copyPropertiesIgnoreNull(camera,cameraDTO); cameraDTO.setIp(camera.getIpAddress()); cameraDTO.setRtsp(camera.getStreamAddress()); cameraDTO.setUsername(camera.getUserName()); return cameraDTO; } /** * 终端转换 * @param cameraDTO * @return */ public static Camera cameraConvert(CameraDTO cameraDTO){ Camera camera = new Camera(); BeanUtil.copyPropertiesIgnoreNull(cameraDTO,camera); camera.setIpAddress(cameraDTO.getIp()); camera.setStreamAddress(cameraDTO.getRtsp()); camera.setUserName(cameraDTO.getUsername()); try { String factoryId = CameraFactoryCache.getFactoryId(cameraDTO.getFactory()); if(StringUtils.isNotEmpty(factoryId)){ camera.setFactory(Byte.valueOf(factoryId)); } }catch (Exception ex){ ex.printStackTrace(); } camera.setUpdateTime(new Date(Long.parseLong(cameraDTO.getUpdateTime()))); return camera; } /** * 加油位数据转换 * @param oilPosition * @return */ public static OilPositionDTO oilPositionDTOConvert(OilPosition oilPosition){ OilPositionDTO oilPositionDTO = new OilPositionDTO(); oilPositionDTO.setCode(oilPosition.getPositionCode()); oilPositionDTO.setName(oilPosition.getOilPosition()); oilPositionDTO.setUpdateTime(String.valueOf(oilPosition.getCreateTime().getTime())); return oilPositionDTO; } /** * 加油位数据转换 * @param oilPositionDTO * @return */ public static OilPosition oilPositionConvert(OilPositionDTO oilPositionDTO){ OilPosition oilPosition = new OilPosition(); oilPosition.setPositionCode(oilPositionDTO.getCode()); oilPosition.setOilPosition(oilPositionDTO.getName()); oilPosition.setCreateTime(new Timestamp(Long.parseLong(oilPositionDTO.getUpdateTime()))); return oilPosition; } }