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<DeviceStatusDTO> list(IPage<Device> page, QueryWrapper queryWrapper) {
|
IPage<DeviceStatusDTO> result = new Page<>();
|
IPage<Device> list = deviceMapper.selectPage(page, queryWrapper);
|
result.setSize(list.getSize());
|
result.setCurrent(list.getCurrent());
|
result.setPages(list.getPages());
|
result.setTotal(list.getTotal());
|
List<DeviceStatusDTO> 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;
|
}
|
}
|