From ba8fffd907b5c3a7acfd3348c80e557b816cec98 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 03 七月 2023 16:53:03 +0800
Subject: [PATCH] 增加与第三方对接的接口

---
 src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java
index 880b697..f315c45 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java
@@ -19,6 +19,7 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
  * @author lin
@@ -176,5 +177,79 @@
         return channelMapper.queryChannelListInAll(null, null, null, platformId, null);
     }
 
+    @Override
+    public boolean updateAllGps(Device device) {
+        List<DeviceChannel> deviceChannels = channelMapper.getChannelsWithoutTransform(device.getDeviceId());
+        List<DeviceChannel> result = new CopyOnWriteArrayList<>();
+        if (deviceChannels.size() == 0) {
+            return true;
+        }
+        String now = DateUtil.getNow();
+        deviceChannels.parallelStream().forEach(deviceChannel -> {
+            deviceChannel.setUpdateTime(now);
+            result.add(updateGps(deviceChannel, device));
+        });
+        int limitCount = 300;
+        if (result.size() > limitCount) {
+            for (int i = 0; i < result.size(); i += limitCount) {
+                int toIndex = i + limitCount;
+                if (i + limitCount > result.size()) {
+                    toIndex = result.size();
+                }
+                channelMapper.batchUpdate(result.subList(i, toIndex));
+            }
+        }else {
+            channelMapper.batchUpdate(result);
+        }
+
+        return true;
+    }
+
+    @Override
+    public List<Device> getDeviceByChannelId(String channelId) {
+
+        return channelMapper.getDeviceByChannelId(channelId);
+    }
+
+    @Override
+    public int deleteChannels(List<DeviceChannel> deleteChannelList) {
+       return channelMapper.batchDel(deleteChannelList);
+    }
+
+    @Override
+    public int channelsOnline(List<DeviceChannel> channels) {
+        return channelMapper.batchOnline(channels);
+    }
+
+    @Override
+    public int channelsOffline(List<DeviceChannel> channels) {
+        return channelMapper.batchOffline(channels);
+    }
+
+    @Override
+    public DeviceChannel getOne(String deviceId, String channelId){
+        return channelMapper.queryChannel(deviceId, channelId);
+    }
+
+    @Override
+    public void batchUpdateChannel(List<DeviceChannel> channels) {
+        channelMapper.batchUpdate(channels);
+        for (DeviceChannel channel : channels) {
+            if (channel.getParentId() != null) {
+                channelMapper.updateChannelSubCount(channel.getDeviceId(), channel.getParentId());
+            }
+        }
+    }
+
+    @Override
+    public void batchAddChannel(List<DeviceChannel> channels) {
+        channelMapper.batchAdd(channels);
+        for (DeviceChannel channel : channels) {
+            if (channel.getParentId() != null) {
+                channelMapper.updateChannelSubCount(channel.getDeviceId(), channel.getParentId());
+            }
+        }
+    }
+
 
 }

--
Gitblit v1.8.0