package com.tievd.jyz.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.tievd.jyz.dto.DeviceStatusDTO; import com.tievd.jyz.entity.Device; import com.tievd.jyz.handler.DeviceStatusHandler; import com.tievd.jyz.mapper.DeviceMapper; import com.tievd.jyz.mqtt.dto.SystemStatusDTO; import com.tievd.jyz.service.IDeviceStatusService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service public class DeviceStatusServiceImpl implements IDeviceStatusService { @Autowired private DeviceMapper deviceMapper; @Override public IPage list(IPage page, QueryWrapper queryWrapper) { IPage result = new Page<>(); IPage list = deviceMapper.selectPage(page, queryWrapper); result.setSize(list.getSize()); result.setCurrent(list.getCurrent()); result.setPages(list.getPages()); result.setTotal(list.getTotal()); List dtos = new ArrayList<>(); result.setRecords(dtos); for (Device device : list.getRecords()) { SystemStatusDTO statusInfo = DeviceStatusHandler.getStatusInfo(device.getSn()); DeviceStatusDTO dto = new DeviceStatusDTO(); BeanUtil.copyProperties(statusInfo, dto); dto.setDeviceId(device.getId()); dto.setDeviceName(device.getName()); dto.setStatus(device.getStatus()); dtos.add(dto); } return result; } }