From acc8caee31c4be90bd38d1af18136b0e84f6fe94 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期五, 27 九月 2024 14:01:19 +0800
Subject: [PATCH] Merge branch 'feature/v2.7_迭代' into feature/V2.7_Google

---
 HDL_ON/Common/ApiUtlis.cs |  180 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 128 insertions(+), 52 deletions(-)

diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs
index 2992899..7d6dbd5 100644
--- a/HDL_ON/Common/ApiUtlis.cs
+++ b/HDL_ON/Common/ApiUtlis.cs
@@ -1,9 +1,10 @@
 锘縰sing System;
 using System.Collections.Generic;
-using HDL_ON;
-using HDL_ON.DAL;
+using System.Net.Http;
+using System.Threading.Tasks;
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
+using HDL_ON.UI;
 using HDL_ON.UI.UI2.FuntionControlView.Video;
 using HDL_ON.UI.UI2.Intelligence.Automation;
 using Newtonsoft.Json;
@@ -76,7 +77,7 @@
         /// <summary>
         /// token鏄惁鏈夋晥
         /// </summary>
-        public bool tokenInvalid = false;
+        public bool IsValidToken = false;
 
         public bool hadInternet = true;
         /// <summary>
@@ -109,7 +110,7 @@
                 try
                 {
                     //澧炲姞3绉掍簯鏈嶅姟鍣ㄨ繛鎺ユ娴嬶紝杩炰笉涓婃湇鍔″櫒鐨勬椂鍊欎笉鍒锋柊鏁版嵁
-                    hadInternet = true;
+                    //hadInternet = true;
                     var dataList = new List<GlobalRegionListRes>();
                     var requestJson = HttpUtil.GetSignRequestJson(new GetRegionListObj() { regionMark = HttpUtil.RegionMark });
                     var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_GlobalRegionList, requestJson, HttpUtil.GlobalRequestHttpsHost, "", 3);
@@ -163,6 +164,7 @@
                 }
                 finally
                 {
+                    MainPage.Log("鏈嶅姟鍣ㄨ繛鎺ョ姸鎬�:" + hadInternet);
                     if (!hadInternet)
                     {
                         Application.RunOnMainThread(() =>
@@ -178,9 +180,44 @@
                 MainPage.Log($"杩涘叆璇诲彇浜戠鏁版嵁绾跨▼");
                 //===================鍒锋柊Token=======================
                 code = Ins.HttpRequest.RefreshToken();
-
                 if (code != StateCode.SUCCESS)
                 {
+                    DownloadDataComplete = true;
+                    IsValidToken= false;
+                    try
+                    {
+                        var spatialInfoDataBytes = FileUtlis.Files.ReadFile("SpatialInfoData");
+                        if (spatialInfoDataBytes != null)
+                        {
+                            var spatialInfoDataString = System.Text.Encoding.UTF8.GetString(spatialInfoDataBytes);
+                            if (spatialInfoDataString != null && !string.IsNullOrEmpty(spatialInfoDataString))
+                            {
+                                var spatialInfoDataList = JsonConvert.DeserializeObject<List<SpatialInfo>>(spatialInfoDataString);
+                                SpatialInfo.CurrentSpatial.UpdateSpatialList(spatialInfoDataList);
+                            }
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        MainPage.Log("Error", $"{this.GetType()}:鍔犺浇缂撳瓨鎴块棿鏁版嵁寮傚父:{ex.StackTrace}");
+                    }
+
+                    try
+                    {
+                        var fileList = Common.FileUtlis.Files.ReadFiles();
+                        foreach (var file in fileList)
+                        {
+                            FunctionList.List.IniFunctionList(file, true);
+                        }
+                        Room.CurrentSpatial.InitRoomListFunctions();
+                    }
+                    catch (Exception ex)
+                    {
+                        MainPage.Log("Error", $"{this.GetType()}:鍔犺浇缂撳瓨璁惧鏁版嵁寮傚父:{ex.StackTrace}");
+                    }
+                    MainPage.Log($"鍒锋柊token澶辫触");
+
+
                     if (waitPage != null)
                     {
                         Application.RunOnMainThread(() =>
@@ -194,8 +231,11 @@
                             catch { }
                         });
                     }
-                    MainPage.Log($"鍒锋柊token澶辫触");
                     return;
+                }
+                else
+                {
+                    hadInternet = true;
                 }
                 MainPage.Log($"鍒锋柊token鎴愬姛");
                 //===================鍒锋柊浣忓畢淇℃伅=======================
@@ -240,26 +280,6 @@
                     return;
                 }
                 MainPage.Log($"鍒锋柊涓汉淇℃伅鎴愬姛");
-
-                //int count = 0;
-                //while (count < 10)
-                //{
-                //    if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
-                //    {
-                //        System.Threading.Thread.Sleep(200);
-                //    }
-                //    else
-                //    {
-                //        break;
-                //    }
-                //    count++;
-                //}
-                //if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
-                //{
-                //    return;
-                //}
-
-                //return;
 
                 try
                 {
@@ -306,7 +326,7 @@
                             {
                                 FunctionList.List.ClearDatas();
                                 MainPage.Log($"璇诲彇璁惧淇℃伅鎴愬姛");
-                                MainPage.Log($"sid鍒楄〃鑾峰彇====\r\n", deviceResult.Data.ToString());
+                                //MainPage.Log($"sid鍒楄〃鑾峰彇====\r\n", deviceResult.Data.ToString());
                                 var deviceList = JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
                                 if (deviceList == null)
                                 {
@@ -377,7 +397,6 @@
                                 //}
 
                                 //======================鑾峰彇鍙瀵硅璁惧鍒楄〃====================
-                                bool isInterphoneType_HDL = false;//鏄惁涓篐DLLinphone鍙瀵硅
                                 bool isInterphoneType_FREEVIEW = false;//鏄惁涓哄叏瑙嗛�氬彲瑙嗗璁�
                                 var videoInfo = VideoSend.GetVideoInfoList();
                                 if (videoInfo.Code == StateCode.SUCCESS)
@@ -707,6 +726,34 @@
                         catch (Exception ex){
                             MainPage.Log("Error", $"璇诲彇鏈湴鏁版嵁寮傚父锛歿ex.StackTrace}");
                         }
+
+                        try
+                        {
+                            HomePage.LoadEvent_CheckTokenValid();
+                            if (IsValidToken && !UserInfo.Current.IsTipedInvalidToken)
+                            {
+                                UserInfo.Current.IsTipedInvalidToken = true;
+                                UserInfo.Current.SaveUserInfo();
+                                Application.RunOnMainThread(() =>
+                                {
+                                    try
+                                    {
+                                        new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.TokenInvalidTipMsg, StringId.OfflineControl, StringId.GoLogin, () =>
+                                        {
+                                            HDLCommon.Current.Logout();
+                                        });
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        MainPage.Log("Error", $"鎻愮ず鐧诲綍鍑瘉绐楀彛鍔犺浇寮傚父:{ex.StackTrace}");
+                                    }
+                                });
+                            }
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log("Error", $"鏇存柊鐧诲綍鍑瘉鏂规硶璋冪敤寮傚父:{ex.StackTrace}");
+                        }
                     }
                 }
             })
@@ -739,39 +786,50 @@
         {
             lock (FunctionList.List.securities)
             {
-                var pack = Ins.HttpRequest.GetSecurityList();
-                if (pack.Code == StateCode.SUCCESS)
+                try
                 {
-                    var packList = JsonConvert.DeserializeObject<List<SecurityAlarm>>(pack.Data.ToString());
-                    Console.WriteLine("瀹夐槻鎬绘暟锛�" + packList.Count);
-                    var sidList = new List<string>();
-                    foreach (var function in packList)
+                    var pack = Ins.HttpRequest.GetSecurityList();
+                    if (pack.Code == StateCode.SUCCESS)
                     {
-                        sidList.Add(function.sid);
-                    }
-                    var infoListPack = Ins.httpRequest.GetSecurityInfo(sidList, new List<string>());
-                    var infoList = JsonConvert.DeserializeObject<List<SecurityAlarm>>(infoListPack.Data.ToString());
-                    if (infoList != null)
-                    {
-                        var filePathList = FileUtlis.Files.ReadFiles().FindAll((obj) => obj.StartsWith("SecurityData_"));
-                        if (filePathList != null)
+                        var packList = JsonConvert.DeserializeObject<List<SecurityAlarm>>(pack.Data.ToString());
+                        Console.WriteLine("瀹夐槻鎬绘暟锛�" + packList.Count);
+                        var sidList = new List<string>();
+                        foreach (var function in packList)
                         {
-                            foreach (var file in filePathList)
+                            sidList.Add(function.sid);
+                        }
+                        if (sidList.Count == 0)
+                        {
+                            return;
+                        }
+                        var infoListPack = Ins.httpRequest.GetSecurityInfo(sidList, new List<string>());
+                        var infoList = JsonConvert.DeserializeObject<List<SecurityAlarm>>(infoListPack.Data.ToString());
+                        if (infoList != null)
+                        {
+                            var filePathList = FileUtlis.Files.ReadFiles().FindAll((obj) => obj.StartsWith("SecurityData_"));
+                            if (filePathList != null)
                             {
-                                FileUtlis.Files.DeleteFile(file);
+                                foreach (var file in filePathList)
+                                {
+                                    FileUtlis.Files.DeleteFile(file);
+                                }
+                            }
+                            FunctionList.List.securities.Clear();
+                            foreach (var function in infoList)
+                            {
+                                function.SaveFile();
+                                FunctionList.List.IniFunctionList(function.savePath, true);
                             }
                         }
-                        FunctionList.List.securities.Clear();
-                        foreach (var function in infoList)
-                        {
-                            function.SaveFile();
-                            FunctionList.List.IniFunctionList(function.savePath, true);
-                        }
+                    }
+                    else
+                    {
+                        MainPage.Log($"璇诲彇瀹夐槻鍒楄〃澶辫触:Code:{pack.Code}; Msg:{pack.message}");
                     }
                 }
-                else
+                catch (Exception ex)
                 {
-                    MainPage.Log($"璇诲彇瀹夐槻鍒楄〃澶辫触:Code:{pack.Code}; Msg:{pack.message}");
+                    MainPage.Log("Error", $"璇诲彇瀹夐槻鍒楄〃澶辫触:Code:{ex.StackTrace}");
                 }
             }
         }
@@ -784,6 +842,24 @@
             var pack = Ins.HttpRequest.GetSecurityList();
         }
 
+        //public async Task<bool> CanConnectToHost()
+        //{
+        //    try
+        //    {
+        //        using (HttpClient client = new HttpClient())
+        //        {
+        //            client.Timeout = TimeSpan.FromSeconds(3); // 瓒呮椂鏃堕棿
+        //            HttpResponseMessage response = await client.GetAsync(HttpUtil.GlobalRequestHttpsHost);
+        //            return response.IsSuccessStatusCode;
+        //        }
+        //    }
+        //    catch (Exception ex)
+        //    {
+        //        MainPage.Log(ex.StackTrace);
+        //        return false;
+        //    }
+        //}
+
 
     }
 }

--
Gitblit v1.8.0