From d9a6f3c2503795f074ac602c24467f804417ad76 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 01 十二月 2021 19:41:34 +0800
Subject: [PATCH] 1. 新增用电量日分析功能

---
 src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt |   41 +++++++++++++++++++++++++++++------------
 1 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt b/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt
index 1bc9472..8ee5393 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt
@@ -1,29 +1,46 @@
 package com.flightfeather.uav.socket
 
+import com.flightfeather.uav.socket.bean.AirTypeData
 import io.netty.channel.ChannelHandlerContext
 import java.util.concurrent.ConcurrentHashMap
 
 /**
- * 鐢ㄤ簬淇濆瓨杩炴帴鐨勮澶囧強瀵瑰簲鐨剆ession閫氶亾
+ * 鐢ㄤ簬淇濆瓨杩炴帴鐨勮澶囧強瀵瑰簲鐨剆ession閫氶亾浠ュ強瀵瑰簲鐨勪笓灞炰俊鎭�
  * Date: 2019.8.27
  * @author riku
  */
 class DeviceSession {
 
-    companion object{
-        private val deviceMap = ConcurrentHashMap<String, ChannelHandlerContext?>()
+    companion object {
+        private const val DEFAULT_DEVICE = "default_device"
+    }
+    private val deviceMap = ConcurrentHashMap<String?, ChannelHandlerContext?>()
+    private val typeMap = ConcurrentHashMap<String, List<AirTypeData>>()
 
-        fun saveDevice(deviceCode: String?, channel: ChannelHandlerContext?) {
-            deviceCode?.let {
-                deviceMap.put(deviceCode, channel)
-            }
+    fun saveDevice(deviceCode: String?, channel: ChannelHandlerContext?) {
+        deviceMap[deviceCode] = channel
+    }
+
+    fun getDevice(deviceCode: String?): ChannelHandlerContext? {
+        return if (deviceMap.containsKey(deviceCode))
+            deviceMap[deviceCode]
+        else
+            null
+    }
+
+    fun saveAirType(deviceCode: String?, types: List<AirTypeData>) {
+        if (deviceCode == null) {
+            typeMap[DEFAULT_DEVICE] = types
+        } else {
+            typeMap[deviceCode] = types
         }
+    }
 
-        fun getDevice(deviceCode: String?): ChannelHandlerContext? {
-            return if (deviceMap.containsKey(deviceCode))
-                deviceMap[deviceCode]
-            else
-                null
+    fun getAirType(deviceCode: String?): List<AirTypeData>? {
+        return when {
+            deviceCode == null -> typeMap[DEFAULT_DEVICE]
+            typeMap.containsKey(deviceCode) -> typeMap[deviceCode]
+            else -> null
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3