Browse Source

对外接口

lijin 3 weeks ago
parent
commit
767e6b018c

+ 5 - 0
device-api-service/pom.xml

@@ -138,6 +138,11 @@
             <version>1.0</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>com.xy</groupId>
+            <artifactId>merc-spi-sdk</artifactId>
+            <version>1.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 82 - 0
device-api-service/src/main/java/com/xy/controller/ApiController.java

@@ -0,0 +1,82 @@
+package com.xy.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.xy.annotate.RestMappingController;
+import com.xy.annotate.XyEncry;
+import com.xy.collections.list.JArrayList;
+import com.xy.collections.list.JList;
+import com.xy.collections.map.JHashMap;
+import com.xy.collections.map.JMap;
+import com.xy.dto.ApiDto;
+import com.xy.dto.common.MercPlaceDto;
+import com.xy.entity.DeviceInfo;
+import com.xy.entity.DeviceStatus;
+import com.xy.service.DeviceInfoServiceImpl;
+import com.xy.service.DeviceStatusServiceImpl;
+import com.xy.service.common.MercPlaceService;
+import com.xy.utils.Emptys;
+import com.xy.utils.PageBean;
+import com.xy.utils.PlusBeans;
+import com.xy.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@AllArgsConstructor
+@Api(tags = "对外api控制器")
+@RestMappingController("api")
+public class ApiController {
+
+    private DeviceInfoServiceImpl deviceInfoService;
+
+    private MercPlaceService mercPlaceService;
+
+    private DeviceStatusServiceImpl deviceStatusService;
+
+    @XyEncry
+    @PostMapping("devicePages")
+    @ApiOperation("设备分页查询")
+    public R<ApiDto.DevicePageDto.Vo> devicePages(@RequestBody @Validated ApiDto.DevicePageDto devicePageDto) {
+        ApiDto.DevicePageDto.Vo vo = new ApiDto.DevicePageDto.Vo();
+        LambdaQueryWrapper<DeviceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<DeviceInfo>()
+                .eq(DeviceInfo::getMercId, devicePageDto.getKey())
+                .eq(DeviceInfo::getActiveState, 1)
+                .eq(Emptys.check(devicePageDto.getDeviceId()), DeviceInfo::getDeviceId, devicePageDto.getDeviceId());
+        IPage<DeviceInfo> iPage = deviceInfoService.page(PlusBeans.toIPage(devicePageDto.getPage()), lambdaQueryWrapper);
+        PageBean<ApiDto.DevicePageDto.Vo.Info> pageBean = PlusBeans.toPageBean(ApiDto.DevicePageDto.Vo.Info.class, iPage);
+        List<DeviceInfo> records = iPage.getRecords();
+        if (Emptys.check(records)) {
+            JList<DeviceInfo> deviceInfos = new JArrayList<>(records);
+            JList<DeviceInfo> placeIds = deviceInfos.filter().isNotNull(DeviceInfo::getPlaceId).list();
+            JMap<Long, MercPlaceDto.Vo> mercPlaceJMaps = new JHashMap<>();
+            if (Emptys.check(placeIds)) {
+                List<MercPlaceDto.Vo> mercPlaces = mercPlaceService.list(new MercPlaceDto.ListDto()
+                        .setIds(placeIds.getProperty(DeviceInfo::getPlaceId).comparing())
+                ).getData();
+                mercPlaceJMaps = new JArrayList<>(mercPlaces).toMap(MercPlaceDto.Vo::getId).cover();
+            }
+            List<DeviceStatus> deviceStatuses = deviceStatusService.list(new LambdaQueryWrapper<DeviceStatus>()
+                    .in(DeviceStatus::getDeviceId, deviceInfos.getProperty(DeviceInfo::getDeviceId))
+            );
+            JMap<Long, DeviceStatus> deviceStatusJMaps = new JArrayList<>(deviceStatuses).toMap(DeviceStatus::getDeviceId).cover();
+            List<ApiDto.DevicePageDto.Vo.Info> infos = pageBean.getRecords();
+            for (ApiDto.DevicePageDto.Vo.Info info : infos) {
+                MercPlaceDto.Vo mercPlace = mercPlaceJMaps.get(info.getDeviceId());
+                DeviceStatus deviceStatus = deviceStatusJMaps.get(info.getDeviceId());
+                if (mercPlace != null) {
+                    info.setRegionName(mercPlace.getRegionName());
+                }
+                info.setNetState(deviceStatus.getNetState());
+            }
+        }
+        vo.setResult(pageBean);
+        return R.ok(vo);
+    }
+
+}

+ 71 - 0
device-api-service/src/main/java/com/xy/event/DeviceEvent.java

@@ -0,0 +1,71 @@
+package com.xy.event;
+
+import com.xy.utils.EventUtils;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 设备事件
+ */
+public class DeviceEvent {
+
+    /**
+     * 网络状态事件
+     */
+    @Data
+    @Accessors(chain = true)
+    public static class NetWorkEvent extends EventUtils.SpringEvent<Long> {
+
+        @ApiModelProperty(value = "网络状态")
+        private Integer netState;
+
+    }
+
+    /**
+     * 运营状态事件
+     */
+    @Data
+    @Accessors(chain = true)
+    public static class BusyStateEvent extends EventUtils.SpringEvent<Long> {
+
+        @ApiModelProperty(value = "运营状态")
+        private Integer busyState;
+
+    }
+
+    /**
+     * 设备温度变化事件
+     */
+    @Data
+    @Accessors(chain = true)
+    public static class TempEvent extends EventUtils.SpringEvent<Long> {
+
+        @ApiModelProperty(value = "温度值")
+        private Integer tempValue;
+
+    }
+
+    /**
+     * 故障事件
+     */
+    @Data
+    @Accessors(chain = true)
+    public static class FaultEvent extends EventUtils.SpringEvent<Long> {
+
+        @ApiModelProperty(value = "故障id")
+        private Long faultId;
+
+        @ApiModelProperty(value = "故障描述")
+        private String describes;
+
+        @ApiModelProperty(value = "发生次数")
+        private Integer eventNum;
+
+        @ApiModelProperty(value = "编码")
+        private String eventCode;
+
+        @ApiModelProperty(value = "是否已解决")
+        private Boolean state;
+    }
+}

+ 39 - 0
device-api-service/src/main/java/com/xy/event/listener/DeviceBusyStateEventListener.java

@@ -0,0 +1,39 @@
+package com.xy.event.listener;
+
+import com.xy.entity.DeviceBusyStateSpi;
+import com.xy.entity.DeviceInfo;
+import com.xy.event.DeviceEvent;
+import com.xy.service.DeviceInfoServiceImpl;
+import com.xy.utils.SpiUtils;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+/**
+ * 设备运营状态事件监听
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class DeviceBusyStateEventListener {
+
+    private DeviceInfoServiceImpl deviceInfoService;
+
+    /**
+     * spi推送
+     *
+     * @param busyStateEvent
+     */
+    @Async
+    @EventListener
+    public void spi(DeviceEvent.BusyStateEvent busyStateEvent) {
+        DeviceInfo deviceInfo = deviceInfoService.getById(busyStateEvent.getValue());
+        SpiUtils.sendSpi(deviceInfo.getMercId(), DeviceBusyStateSpi.spiKey, () -> new DeviceBusyStateSpi()
+                .setDeviceId(deviceInfo.getDeviceId())
+                .setBusyState(busyStateEvent.getBusyState())
+        );
+    }
+
+}

+ 43 - 0
device-api-service/src/main/java/com/xy/event/listener/DeviceFaultEventListener.java

@@ -0,0 +1,43 @@
+package com.xy.event.listener;
+
+import com.xy.entity.DeviceFaultSpi;
+import com.xy.entity.DeviceInfo;
+import com.xy.event.DeviceEvent;
+import com.xy.service.DeviceInfoServiceImpl;
+import com.xy.utils.SpiUtils;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+/**
+ * 设备故障事件监听
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class DeviceFaultEventListener {
+
+    private DeviceInfoServiceImpl deviceInfoService;
+
+    /**
+     * spi推送
+     *
+     * @param faultEvent
+     */
+    @Async
+    @EventListener
+    public void spi(DeviceEvent.FaultEvent faultEvent) {
+        DeviceInfo deviceInfo = deviceInfoService.getById(faultEvent.getValue());
+        SpiUtils.sendSpi(deviceInfo.getMercId(), DeviceFaultSpi.spiKey, () -> new DeviceFaultSpi()
+                .setDeviceId(deviceInfo.getDeviceId())
+                .setFaultId(faultEvent.getFaultId())
+                .setDescribes(faultEvent.getDescribes())
+                .setEventNum(faultEvent.getEventNum())
+                .setEventCode(faultEvent.getEventCode())
+                .setState(faultEvent.getState())
+        );
+    }
+
+}

+ 94 - 0
device-api-service/src/main/java/com/xy/event/listener/DeviceNetWorkEventListener.java

@@ -0,0 +1,94 @@
+package com.xy.event.listener;
+
+import cn.hutool.core.util.BooleanUtil;
+import com.xy.dto.DeviceNetRecordDto;
+import com.xy.dto.DeviceStatusDto;
+import com.xy.dto.nfc.UpperDeviceStatusDTO;
+import com.xy.entity.DeviceInfo;
+import com.xy.entity.DeviceNetWorkSpi;
+import com.xy.entity.DeviceSysinfo;
+import com.xy.event.DeviceEvent;
+import com.xy.service.*;
+import com.xy.utils.SpiUtils;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+/**
+ * 设备网络状态事件监听
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class DeviceNetWorkEventListener {
+
+    private DeviceStatusServiceImpl deviceStatusService;
+
+    private DeviceNetRecordServiceImpl deviceNetRecordService;
+
+    private DeviceSysinfoServiceImpl deviceSysinfoService;
+
+    private AlipayDeviceService alipayDeviceService;
+
+    private DeviceInfoServiceImpl deviceInfoService;
+
+    /**
+     * 上报状态
+     *
+     * @param netWorkEvent
+     */
+    @EventListener
+    public void up(DeviceEvent.NetWorkEvent netWorkEvent) {
+        DeviceStatusDto.Up up = new DeviceStatusDto.Up().setDeviceId(netWorkEvent.getValue());
+        up.setNetState(netWorkEvent.getNetState());
+        deviceStatusService.up(up).getCode();
+    }
+
+    /**
+     * 添加联网记录
+     *
+     * @param netWorkEvent
+     */
+    @EventListener
+    public void saveNetRecord(DeviceEvent.NetWorkEvent netWorkEvent) {
+        DeviceNetRecordDto.Save save = new DeviceNetRecordDto.Save()
+                .setDeviceId(netWorkEvent.getValue());
+        save.setNetStatus(netWorkEvent.getNetState());
+        deviceNetRecordService.save(save);
+    }
+
+    /**
+     * nfc处理
+     *
+     * @param netWorkEvent
+     */
+    @EventListener
+    public void nfcHandle(DeviceEvent.NetWorkEvent netWorkEvent) {
+        DeviceSysinfo deviceSysinfo = deviceSysinfoService.getById(netWorkEvent.getValue());
+        if (deviceSysinfo != null) {
+            Boolean isHaveAlipayNpad = deviceSysinfo.getIsHaveAlipayNpad();
+            if (BooleanUtil.isTrue(isHaveAlipayNpad)) {
+                //nfc 同步上位机状态
+                alipayDeviceService.upperDeviceStatusSync(new UpperDeviceStatusDTO().setTerminalId(String.valueOf(netWorkEvent.getValue())).setOnline(netWorkEvent.getNetState() == 1));
+            }
+        }
+    }
+
+    /**
+     * spi推送
+     *
+     * @param netWorkEvent
+     */
+    @Async
+    @EventListener
+    public void spi(DeviceEvent.NetWorkEvent netWorkEvent) {
+        DeviceInfo deviceInfo = deviceInfoService.getById(netWorkEvent.getValue());
+        SpiUtils.sendSpi(deviceInfo.getMercId(), DeviceNetWorkSpi.spiKey, () -> new DeviceNetWorkSpi()
+                .setDeviceId(deviceInfo.getDeviceId())
+                .setNetState(netWorkEvent.getNetState())
+        );
+    }
+
+}

+ 39 - 0
device-api-service/src/main/java/com/xy/event/listener/DeviceTempEventListener.java

@@ -0,0 +1,39 @@
+package com.xy.event.listener;
+
+import com.xy.entity.DeviceInfo;
+import com.xy.entity.DeviceTempSpi;
+import com.xy.event.DeviceEvent;
+import com.xy.service.DeviceInfoServiceImpl;
+import com.xy.utils.SpiUtils;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+/**
+ * 设备温度变化事件监听
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class DeviceTempEventListener {
+
+    private DeviceInfoServiceImpl deviceInfoService;
+
+    /**
+     * spi推送
+     *
+     * @param tempEvent
+     */
+    @Async
+    @EventListener
+    public void spi(DeviceEvent.TempEvent tempEvent) {
+        DeviceInfo deviceInfo = deviceInfoService.getById(tempEvent.getValue());
+        SpiUtils.sendSpi(deviceInfo.getMercId(), DeviceTempSpi.spiKey, () -> new DeviceTempSpi()
+                .setDeviceId(deviceInfo.getDeviceId())
+                .setTempValue(tempEvent.getTempValue())
+        );
+    }
+
+}

+ 19 - 0
device-api-service/src/main/java/com/xy/service/DeviceFaultInfoServiceImpl.java

@@ -18,6 +18,7 @@ import com.xy.entity.DeviceFaultLog;
 import com.xy.entity.DeviceInfo;
 import com.xy.entity.SysCodeConfigureRedis;
 import com.xy.error.CommRuntimeException;
+import com.xy.event.DeviceEvent;
 import com.xy.mapper.DeviceDataMapper;
 import com.xy.mapper.DeviceFaultInfoMapper;
 import com.xy.service.be.MercService;
@@ -182,6 +183,15 @@ public class DeviceFaultInfoServiceImpl extends ServiceImpl<DeviceFaultInfoMappe
     public R save(@RequestBody @Validated DeviceFaultInfoDto.Save save) {
         DeviceFaultInfo saveInfo = copy(DeviceFaultInfo.class, save);
         save(saveInfo);
+        //发布事件
+        DeviceEvent.FaultEvent faultEvent = new DeviceEvent.FaultEvent()
+                .setFaultId(saveInfo.getFaultId())
+                .setDescribes(saveInfo.getDescribes())
+                .setEventNum(saveInfo.getEventNum())
+                .setEventCode(saveInfo.getEventCode())
+                .setState(false);
+        faultEvent.setValue(saveInfo.getDeviceId());
+        EventUtils.push(() -> faultEvent);
         return R.ok();
     }
 
@@ -221,6 +231,15 @@ public class DeviceFaultInfoServiceImpl extends ServiceImpl<DeviceFaultInfoMappe
             deviceFaultLogService.remove(Wrappers.<DeviceFaultLog>lambdaUpdate().le(DeviceFaultLog::getEventTime, LocalDateTime.now()));
             // 更新故障等级为正常
             deviceInfoService.updateById(new DeviceInfo().setDeviceId(deviceFaultInfo.getDeviceId()).setFaultLevel(-1));
+            //发布事件
+            DeviceEvent.FaultEvent faultEvent = new DeviceEvent.FaultEvent()
+                    .setFaultId(deviceFaultInfo.getFaultId())
+                    .setDescribes(deviceFaultInfo.getDescribes())
+                    .setEventNum(deviceFaultInfo.getEventNum())
+                    .setEventCode(deviceFaultInfo.getEventCode())
+                    .setState(true);
+            faultEvent.setValue(deviceFaultInfo.getDeviceId());
+            EventUtils.push(() -> faultEvent);
         }
     }
 }

+ 7 - 32
device-api-service/src/main/java/com/xy/service/DeviceMqttConsumerImpl.java

@@ -16,16 +16,13 @@ import com.xy.device.EnumDeviceOnlineStatus;
 import com.xy.dto.*;
 import com.xy.dto.be.MercDto;
 import com.xy.dto.be.MercUserDeviceDto;
-import com.xy.dto.nfc.UpperDeviceStatusDTO;
 import com.xy.entity.*;
 import com.xy.enums.ChannelType;
 import com.xy.enums.MsgConfigId;
 import com.xy.enums.MsgType;
+import com.xy.event.DeviceEvent;
 import com.xy.service.be.MercFeignService;
-import com.xy.utils.MercAuthUtils;
-import com.xy.utils.R;
-import com.xy.utils.SysCodeConfigureUtils;
-import com.xy.utils.SysDictUtils;
+import com.xy.utils.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -43,10 +40,6 @@ import java.util.stream.Collectors;
 @Api(tags = "设备消费者")
 public class DeviceMqttConsumerImpl implements DeviceMqttConsumer {
 
-    private DeviceStatusServiceImpl deviceStatusService;
-
-    private DeviceNetRecordServiceImpl deviceNetRecordService;
-
     private MsgSendApiService msgSendApiService;
 
     private DeviceInfoServiceImpl deviceInfoService;
@@ -61,10 +54,6 @@ public class DeviceMqttConsumerImpl implements DeviceMqttConsumer {
 
     private DeviceFaultInfoServiceImpl deviceFaultInfoService;
 
-    private DeviceSysinfoServiceImpl deviceSysinfoService;
-
-    private AlipayDeviceService alipayDeviceService;
-
     @Override
     @ApiOperation("设备在线")
     @Async(DeviceThreadPoolConfig.DEVICE_NETWORK_POLL)
@@ -411,25 +400,11 @@ public class DeviceMqttConsumerImpl implements DeviceMqttConsumer {
         } catch (Exception e) {
             return;
         }
-       
-        //上报状态
-        DeviceStatusDto.Up up = new DeviceStatusDto.Up().setDeviceId(deviceId);
-        up.setNetState(netState);
-        deviceStatusService.up(up).getCode();
-        //添加联网记录
-        DeviceNetRecordDto.Save save = new DeviceNetRecordDto.Save()
-                .setDeviceId(deviceId);
-        save.setNetStatus(netState);
-        deviceNetRecordService.save(save);
-
-        DeviceSysinfo deviceSysinfo = deviceSysinfoService.getById(deviceId);
-        if (deviceSysinfo != null) {
-            Boolean isHaveAlipayNpad = deviceSysinfo.getIsHaveAlipayNpad();
-            if (BooleanUtil.isTrue(isHaveAlipayNpad)) {
-                //nfc 同步上位机状态
-                alipayDeviceService.upperDeviceStatusSync(new UpperDeviceStatusDTO().setTerminalId(String.valueOf(deviceId)).setOnline(netState == 1));
-            }
-        }
+        //发布事件
+        DeviceEvent.NetWorkEvent netWorkEvent = new DeviceEvent.NetWorkEvent()
+                .setNetState(netState);
+        netWorkEvent.setValue(deviceId);
+        EventUtils.push(() -> netWorkEvent);
     }
 
 }

+ 7 - 4
device-api-service/src/main/java/com/xy/service/DeviceTempRecordsServiceImpl.java

@@ -5,11 +5,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.dto.DeviceTempRecordsDto;
 import com.xy.entity.DeviceTempRecords;
+import com.xy.event.DeviceEvent;
 import com.xy.mapper.DeviceTempRecordsMapper;
-import com.xy.utils.Emptys;
-import com.xy.utils.MybatisPlusQuery;
-import com.xy.utils.PageBean;
-import com.xy.utils.R;
+import com.xy.utils.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -57,6 +55,11 @@ public class DeviceTempRecordsServiceImpl extends ServiceImpl<DeviceTempRecordsM
         DeviceTempRecords saveInfo = copy(DeviceTempRecords.class, save)
                 .setCreateTime(LocalDateTime.now());
         save(saveInfo);
+        //发布事件
+        DeviceEvent.TempEvent tempEvent = new DeviceEvent.TempEvent()
+                .setTempValue(save.getTempValue());
+        tempEvent.setValue(save.getDeviceId());
+        EventUtils.push(() -> tempEvent);
         return R.ok();
     }
 

+ 6 - 0
device-api-service/src/main/java/com/xy/service/factory/device/impl/alipay/AliPayOpenDeviceFatoryImpl.java

@@ -16,6 +16,7 @@ import com.xy.dto.*;
 import com.xy.dto.spi.*;
 import com.xy.entity.DeviceInfo;
 import com.xy.entity.DeviceStatus;
+import com.xy.event.DeviceEvent;
 import com.xy.service.*;
 import com.xy.service.factory.device.DeviceFactory;
 import com.xy.service.factory.device.impl.open.OpenDeviceFactoryImpl;
@@ -207,6 +208,11 @@ public class AliPayOpenDeviceFatoryImpl implements DeviceFactory, SpiDeviceServi
                 .setOperatorId(AuthorizeUtils.getLoginId(String.class))
                 .setStatus(busySate.getBusyState());
         alipayDeviceService.changeStatus(deviceChangeStatusDTO);
+        //发布事件
+        DeviceEvent.BusyStateEvent busyStateEvent = new DeviceEvent.BusyStateEvent()
+                .setBusyState(busySate.getBusyState());
+        busyStateEvent.setValue(busySate.getDeviceId());
+        EventUtils.push(() -> busyStateEvent);
         return R.ok();
     }
 

+ 6 - 0
device-api-service/src/main/java/com/xy/service/factory/device/impl/open/OpenDeviceFactoryImpl.java

@@ -20,6 +20,7 @@ import com.xy.dto.nfc.ActiveDeviceDTO;
 import com.xy.dto.nfc.ResetDeviceDTO;
 import com.xy.entity.*;
 import com.xy.enums.SysCodeConfigureEnum;
+import com.xy.event.DeviceEvent;
 import com.xy.mapper.DeviceCreateIdsMapper;
 import com.xy.mapper.DeviceInfoMapper;
 import com.xy.mapper.DeviceStatusMapper;
@@ -380,6 +381,11 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
                 .setMercId(busySate.getMercId())
                 .setBusyState(busySate.getBusyState());
         deviceInfoService.updateById(updateDeviceInfo);
+        //发布事件
+        DeviceEvent.BusyStateEvent busyStateEvent = new DeviceEvent.BusyStateEvent()
+                .setBusyState(busySate.getBusyState());
+        busyStateEvent.setValue(busySate.getDeviceId());
+        EventUtils.push(() -> busyStateEvent);
         return R.ok();
     }
 

+ 67 - 0
device-api/src/main/java/com/xy/dto/ApiDto.java

@@ -0,0 +1,67 @@
+package com.xy.dto;
+
+import com.xy.utils.PageBean;
+import com.xy.utils.XyEncryptUtils;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+public class ApiDto {
+
+    @Data
+    @Accessors(chain = true)
+    public static class DevicePageDto extends XyEncryptUtils.XyEncryptInfo {
+
+        @ApiModelProperty(value = "分页信息", required = true)
+        private PageBean page = new PageBean();
+
+        @ApiModelProperty(value = "设备id")
+        private Long deviceId;
+
+        @Data
+        @Accessors(chain = true)
+        public static class Vo extends XyEncryptUtils.XyEncryptInfo {
+
+            @ApiModelProperty(value = "数据", required = true)
+            private PageBean<Info> result;
+
+            @Data
+            @Accessors(chain = true)
+            public static class Info {
+
+                @ApiModelProperty("设备id")
+                private Long deviceId;
+
+                @ApiModelProperty("设备名称")
+                private String deviceName;
+
+                @ApiModelProperty("设备类型")
+                private Integer deviceType;
+
+                @ApiModelProperty("算法平台id")
+                private Long algorithmId;
+
+                @ApiModelProperty("区域名称")
+                private String regionName;
+
+                @ApiModelProperty("运营状态")
+                private Integer busyState;
+
+                @ApiModelProperty("经度")
+                private String lon;
+
+                @ApiModelProperty("纬度")
+                private String lat;
+
+                @ApiModelProperty("联网状态")
+                private Integer netState;
+
+                @ApiModelProperty("设备sn")
+                private String deviceSn;
+            }
+
+        }
+
+    }
+
+}