From 99da2604f81af29afc6b3c6f4f128b4e5a8a5649 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 13 五月 2020 12:00:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into dev-2020xm

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
old mode 100644
new mode 100755
index 67a7a09..0e0fbce
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
@@ -507,6 +507,8 @@
             if (locadevice != null)
             {
                 ((IASZone)locadevice).iASInfo = ias.iASInfo;
+                //濡傛灉鎺ユ敹鍒颁笂鎶�,鍗宠鏄庤繖涓紶鎰熷櫒鏄湪绾跨殑
+                locadevice.IsOnline = 1;
                 //璁板綍鍥炲鏃堕棿
                 locadevice.LastDateTime = DateTime.Now;
             }
@@ -569,7 +571,7 @@
         /// 璁惧鍦ㄧ嚎鐘舵�佹洿鏂板弽棣�
         /// </summary>
         /// <param name="receiveData"></param>
-        private void DeviceOnlineChangePush(JObject receiveData)
+        private void DeviceOnlineChangePush (JObject receiveData)
         {
             if (this.dicDeviceEvent.Count == 0)
             {
@@ -580,13 +582,18 @@
             tempDevice.IsOnline = Convert.ToInt32(receiveData["Data"]["IsOnline"].ToString());
 
             //澶勭悊缃戝叧涓婃姤鐨勬暟鎹�,鐒跺悗鍙樻洿鏈湴缂撳瓨
-            var locadevice = Common.LocalDevice.Current.GetDevice(tempDevice.DeviceAddr, tempDevice.DeviceEpoint);
-            if (locadevice != null)
+            var locadevice = Common.LocalDevice.Current.GetDevicesByMac(tempDevice.DeviceAddr);
+            for (int i = 0; i < locadevice.Count; i++)
             {
-                locadevice.IsOnline = tempDevice.IsOnline;
+                bool onlineChanged = locadevice[i].IsOnline != tempDevice.IsOnline;
+                locadevice[i].IsOnline = tempDevice.IsOnline;
                 //璁板綍鍥炲鏃堕棿
-                locadevice.LastDateTime = DateTime.Now;
-                locadevice.ReSave();
+                locadevice[i].LastDateTime = DateTime.Now;
+                if (onlineChanged == true)
+                {
+                    //鍦ㄧ嚎鐘舵�佸彉鏇翠簡,鎵嶄繚瀛�
+                    locadevice[i].ReSave();
+                }
             }
 
             this.DeviceReportPush(tempDevice, ReceiveComandDiv.A璁惧鍦ㄧ嚎涓婃姤);

--
Gitblit v1.8.0