zxl
2026-03-25 963a8c24874c2e10a329a6ea39774bc5eda0f762
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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;
    }
}