package com.moral.api.pojo.vo.Version; import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.Sensor; import com.moral.api.entity.Version; import com.moral.api.pojo.dto.version.VersionDTO; import com.moral.api.pojo.dto.version.VersionQueryDTO; import com.moral.api.pojo.vo.sensor.SensorVO; import com.moral.constant.ResponseCodeEnum; import com.moral.util.DateUtils; import lombok.Data; import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @ClassName VersionQueryVO * @Description TODO * @Author 陈凯裕 * @Date 2021/5/14 15:42 * @Version TODO **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) public class VersionQueryVO { private long pages; private long total; private long current; private long size; private List versions; public static VersionQueryVO convert(VersionQueryDTO dto) { if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) return null; VersionQueryVO vo = new VersionQueryVO(); long pages = dto.getPages(); long total = dto.getTotal(); long current = dto.getCurrent(); long size = dto.getSize(); List dtos = dto.getVersionDTOS(); List versionVOS = new ArrayList<>(); for (VersionDTO versionDTO : dtos) { VersionVO versionVO = convertToQueryPage(versionDTO); versionVOS.add(versionVO); } vo.setPages(pages); vo.setTotal(total); vo.setCurrent(current); vo.setSize(size); vo.setVersions(versionVOS); return vo; } private static VersionVO convertToQueryPage(VersionDTO dto) { VersionVO vo = new VersionVO(); Version version = dto.getVersion(); Integer id = version.getId(); String desc = version.getDesc(); String name = version.getName(); Date createTime = version.getCreateTime(); Date updateTime = version.getUpdateTime(); List sensors = version.getSensors(); List sensorVOS = new ArrayList<>(); if(!ObjectUtils.isEmpty(sensors)){ for (Sensor sensor : sensors) { SensorVO sensorVO = convertToSensorVO(sensor); sensorVOS.add(sensorVO); } } vo.setId(id); vo.setDesc(desc); vo.setName(name); vo.setCreateTime(DateUtils.dateToDateString(createTime,"yyyy-MM-dd")); vo.setUpdateTime(DateUtils.dateToDateString(updateTime,"yyyy-MM-dd")); vo.setSensors(sensorVOS); return vo; } private static SensorVO convertToSensorVO(Sensor sensor) { SensorVO vo = new SensorVO(); vo.setName(sensor.getName()); vo.setId(sensor.getId()); vo.setUnit(sensor.getUnit()); vo.setUpper(sensor.getUpper()); vo.setLower(sensor.getLower()); vo.setUnitKey(sensor.getUnitKey()); return vo; } }