From c00da77d00a479fa5d022346a6d9075f90a5c087 Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期六, 14 九月 2024 10:05:34 +0800 Subject: [PATCH] 退出登录时间调整,新风,音乐 --- HDL_ON/Common/ApiUtlis.cs | 380 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 305 insertions(+), 75 deletions(-) diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs index 5ef13fc..2992899 100644 --- a/HDL_ON/Common/ApiUtlis.cs +++ b/HDL_ON/Common/ApiUtlis.cs @@ -72,13 +72,23 @@ /// 涓嬭浇鏁版嵁瀹屾垚鏍囪 /// </summary> public bool DownloadDataComplete = false; + + /// <summary> + /// token鏄惁鏈夋晥 + /// </summary> + public bool tokenInvalid = false; + + public bool hadInternet = true; /// <summary> /// 涓嬭浇鏁版嵁 /// </summary> public void DownloadData() { - if (MainPage.InternetStatus == 0 || MainPage.NoLoginMode) + if (MainPage.NoLoginMode) + { + DownloadDataComplete = true; return; + } endTime1 = DateTime.Now.AddSeconds(25); complateDevice = complateScene = false; @@ -89,18 +99,101 @@ var waitPage = new Loading(); MainPage.BaseView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); + string code = StateCode.SUCCESS; Inverter.Ins.H5Page = null;//閲嶇疆鍏変紡椤甸潰 - var downloadDataThread = new System.Threading.Thread(() => { + try + { + //澧炲姞3绉掍簯鏈嶅姟鍣ㄨ繛鎺ユ娴嬶紝杩炰笉涓婃湇鍔″櫒鐨勬椂鍊欎笉鍒锋柊鏁版嵁 + 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); + if (revertObj == null || revertObj.Code != StateCode.SUCCESS) + { + DownloadDataComplete = true; + hadInternet = 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}"); + } + return; + } + else + { + hadInternet = true; + } + } + catch (Exception ex) + { + MainPage.Log("Error", $"涓嬭浇鏁版嵁1锛歿ex.StackTrace}"); + DownloadDataComplete = true; + return; + } + finally + { + if (!hadInternet) + { + Application.RunOnMainThread(() => + { + if (waitPage != null) + { + waitPage.Hide(); + waitPage.RemoveFromParent(); + } + }); + } + } MainPage.Log($"杩涘叆璇诲彇浜戠鏁版嵁绾跨▼"); //===================鍒锋柊Token======================= code = Ins.HttpRequest.RefreshToken(); + if (code != StateCode.SUCCESS) { + if (waitPage != null) + { + Application.RunOnMainThread(() => + { + try + { + waitPage.Hide(); + waitPage.RemoveFromParent(); + waitPage = null; + } + catch { } + }); + } MainPage.Log($"鍒锋柊token澶辫触"); return; } @@ -109,6 +202,19 @@ code = Ins.HttpRequest.GetHomePager(); if (code != StateCode.SUCCESS) { + if (waitPage != null) + { + Application.RunOnMainThread(() => + { + try + { + waitPage.Hide(); + waitPage.RemoveFromParent(); + waitPage = null; + } + catch { } + }); + } MainPage.Log($"鍒锋柊浣忓畢淇℃伅澶辫触"); return; } @@ -117,6 +223,19 @@ code = Ins.HttpRequest.GetUserInfo(); if (code != StateCode.SUCCESS) { + if (waitPage != null) + { + Application.RunOnMainThread(() => + { + try + { + waitPage.Hide(); + waitPage.RemoveFromParent(); + waitPage = null; + } + catch { } + }); + } MainPage.Log($"鍒锋柊涓汉淇℃伅澶辫触"); return; } @@ -140,6 +259,7 @@ // return; //} + //return; try { @@ -148,13 +268,26 @@ if (roomResult.Code == StateCode.SUCCESS) { MainPage.Log($"璇诲彇鎴块棿淇℃伅鎴愬姛"); - var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<SpatialApiPack>(roomResult.Data.ToString()); + var revData = JsonConvert.DeserializeObject<SpatialApiPack>(roomResult.Data.ToString()); if (revData == null) { revData = new SpatialApiPack(); } { SpatialInfo.CurrentSpatial.UpdateSpatialList(revData.list); + new System.Threading.Thread(() => + { + try + { + var ssd = System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(revData.list)); + FileUtlis.Files.WriteFileByBytes("SpatialInfoData", ssd); + } + catch (Exception ex) + { + MainPage.Log("Error", $"{this.GetType()}:淇濆瓨鎴块棿淇℃伅寮傚父锛歿ex.StackTrace}"); + } + }) + { IsBackground = true }.Start(); } } else @@ -171,9 +304,9 @@ var deviceResult = Ins.HttpRequest.GetDeviceList("30", "1"); if (deviceResult.Code == StateCode.SUCCESS) { - FunctionList.List.Clear(); - //MainPage.Log($"璇诲彇璁惧淇℃伅鎴愬姛"); - //MainPage.Log($"sid鍒楄〃鑾峰彇====" + deviceResult.Data.ToString()); + FunctionList.List.ClearDatas(); + MainPage.Log($"璇诲彇璁惧淇℃伅鎴愬姛"); + MainPage.Log($"sid鍒楄〃鑾峰彇====\r\n", deviceResult.Data.ToString()); var deviceList = JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString()); if (deviceList == null) { @@ -197,7 +330,7 @@ } finally { - + } string delFile = ""; @@ -224,15 +357,14 @@ } } //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳� - int iiii = 0; + //int iiii = 0; foreach (var newFunction in deviceList.list) { newFunction.AssembleStatus(); newFunction.SaveFunctionFile(); - FunctionList.List.IniFunctionList(newFunction.savePath,true); - MainPage.Log($"============璁惧============{iiii++}"); + FunctionList.List.IniFunctionList(newFunction.savePath, true); + //MainPage.Log($"============璁惧============{iiii++}"); } - @@ -253,8 +385,10 @@ string videoList = videoInfo.Data.ToString(); FunctionList.List.videoIntercom = JsonConvert.DeserializeObject<List<UI.UI2.FuntionControlView.Video.Video>>(videoList); - foreach (var video in FunctionList.List.videoIntercom) + for (int i = 0; i < FunctionList.List.videoIntercom.Count; i++) { + var video = FunctionList.List.videoIntercom[i]; + if (video.interphoneType == InterphoneType.IMOUVISIAL.ToString()) { UI.UI2.PersonalCenter.PirDevice.PirSend.LcSubAccessToken = video.subAccountToken; @@ -264,27 +398,37 @@ isInterphoneType_HDL = true; DB_ResidenceData.Instance.SupportFacePass = true; DB_ResidenceData.Instance.SaveResidenceData(); - - Entity.DB_ResidenceData.Instance.SupportFVDevice = true; + DB_ResidenceData.Instance.SupportFVDevice = true; } else if (video.interphoneType == InterphoneType.FREEVIEW.ToString()) { +#if __IOS__ + try + { + FunctionList.List.videoIntercom.Remove(video); + --i; + }catch(Exception ex) + { + MainPage.Log("Error", $"ios 鍏ㄨ閫氬紓甯� : {ex.StackTrace}"); + } + +#else //涓哄叏瑙嗛�氬彲瑙嗗璁� DB_ResidenceData.Instance.SupportFacePass = true; Entity.DB_ResidenceData.Instance.SupportVisitorManage = true; Entity.DB_ResidenceData.Instance.SupportFVDevice = true; - - //isInterphoneType_HDL = true; isInterphoneType_FREEVIEW = true; - +#endif } } } + //======================鑾峰彇Sip璐﹀彿骞朵笖鍒濆鍖朣DK鍙瀵硅璁惧鍒楄〃==================== //濡傛灉妫�娴嬬嚎绋嬫病鍚姩锛屾墠缁х画涓嬮潰鎿嶄綔 鍥犱负App鏈夊彲鑳藉垰鍚姩椹笂鏀跺埌鎺ㄩ�佷簡锛岀劧鍚庢墠鎵ц鍒拌繖閲� if (HDLLinphone.Current.CheckIncomingCallThreadIsNull()) { + //褰撳墠浣忓畢鏄疕DL鍙瀵硅绫诲瀷鐨勮澶� if (isInterphoneType_HDL) { @@ -310,12 +454,29 @@ } } + + //======================鐧诲綍鍏ㄨ閫�==================== if (isInterphoneType_FREEVIEW) { + #if __IOS__ - //鐧诲綍鍏ㄨ閫� - Shared.IOS.HDLFVSDK.Video.Init("", DB_ResidenceData.Instance.CurrentRegion.id); + //string systemVersion = UIKit.UIDevice.CurrentDevice.SystemVersion; + //string errorVersion = "16.2.0"; + //if (systemVersion.CompareTo(errorVersion) < 0)///鍏ㄨ閫氫笉鍏煎ios16浠ヤ笂鐨勭郴缁燂紝涓嶈鍔犺浇杩欎釜鍏� + //{ + // List<VisitorTempPassword> dataList = new List<VisitorTempPassword>(); + // Dictionary<string, object> dictionary = new Dictionary<string, object>(); + // dictionary.Add("homeId", Entity.DB_ResidenceData.Instance.CurrentRegion.id); + // var requestJson = HttpUtil.GetSignRequestJson(dictionary); + // ResponsePackNew pack = HttpUtil.RequestHttpsPost(NewAPI.Api_Post_GetExtMemberInfo, requestJson); + // if (pack != null) + // { + // var data = JsonConvert.DeserializeObject<FreeviewMemberInfo>(pack.Data.ToString()); + // //鐧诲綍鍏ㄨ閫� + // Shared.IOS.HDLFVSDK.Video.Init("", data.extUserId, DB_ResidenceData.Instance.CurrentRegion.id, "78FF1E4D-FC0A-4E71-9B79-0448E4460BD7", "T0001", "120.77.53.170:9700", "120.77.53.170:21664"); + // } + //} #endif } @@ -324,21 +485,82 @@ { MainPage.Log($"璇诲彇浜戠璁惧鏁版嵁澶辫触:Code:{deviceResult.Code}; Msg:{deviceResult.message}"); } - }catch (Exception ex) + } + catch (Exception ex) { - MainPage.Log($"============璁惧============{ex.Message}"); + MainPage.Log("Error", $"============璁惧============{ex.StackTrace}"); } finally { complateDevice = true; MainPage.Log($"============璁惧============瀹屾垚" + FunctionList.List.Functions.Count); } - }) - { IsBackground = true }.Start(); - //===================鍦烘櫙========================== - new System.Threading.Thread(() => - { + //======================缇ゆ帶==================== + if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) + { + var pack = Ins.HttpRequest.GetGroupControlList(); + if (pack != null) + { + if (pack.Code == StateCode.SUCCESS) + { + try + { + var groupControlList = JsonConvert.DeserializeObject<List<GroupControl>>(pack.Data.ToString()); + var readSidList = new List<string>(); + foreach (var temp in groupControlList) + { + FunctionList.List.groupControls.Clear(); + readSidList.Add(temp.userDeviceGroupControlId); + if (readSidList.Count >= 20) + { + var data = Ins.httpRequest.GetGroupControInfo(readSidList); + if (data != null) + { + if (data.Code == StateCode.SUCCESS) + { + var groupControlInfoList = JsonConvert.DeserializeObject<List<GroupControl>>(data.Data.ToString()); + FunctionList.List.groupControls.AddRange(groupControlInfoList); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } + readSidList.Clear(); + } + //FunctionList.List.Functions.AddRange(FunctionList.List.groupControls); + } + if (readSidList.Count > 0) + { + var data = Ins.httpRequest.GetGroupControInfo(readSidList); + if (data != null) + { + if (data.Code == StateCode.SUCCESS) + { + var groupControlInfoList = JsonConvert.DeserializeObject<List<GroupControl>>(data.Data.ToString()); + FunctionList.List.groupControls.AddRange(groupControlInfoList); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } + readSidList.Clear(); + } + } + catch (Exception ex) + { + MainPage.Log("Error", $"璇诲彇缁勬帶鍒楄〃澶辫触:{ex.StackTrace}"); + } + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); + } + } + } + //======================鍦烘櫙==================== try { complateScene = false; @@ -391,33 +613,31 @@ { MainPage.Log($"璇诲彇浜戠鍦烘櫙鏁版嵁澶辫触:Code:{pack.Code}; Msg:{pack.message}"); } - }catch(Exception ex) + } + catch (Exception ex) { - MainPage.Log($"===鍦烘櫙==={ex.Message}"); + MainPage.Log("Error", $"===鍦烘櫙==={ex.StackTrace}"); } finally { complateScene = true; } + + //======================瀹夐槻==================== + GetSecurityList(); + + //===================璇诲彇閫昏緫鍒楄〃==================== + Logic.LogicList.Clear();//涓婚〉涓嬫媺寮哄埗鍒锋柊鑷姩鍖栧垪琛� + MainView.GetLogicList();//璇诲彇鑷姩鍖栧垪琛� }) { IsBackground = true }.Start(); - //===================璇诲彇閫昏緫鍒楄〃========================== - Logic.LogicList.Clear();//涓婚〉涓嬫媺寮哄埗鍒锋柊鑷姩鍖栧垪琛� - //UI.UI2.Intelligence.Automation.MainView.GetLogicList(); - - - - //======================瀹夐槻==================== - GetSecurityList(); //======================娉ㄥ唽鎺ㄩ��==================== httpRequest.RegisteredPush(); - - } catch (Exception ex) { - MainPage.Log($"鏁版嵁鍒濆鍖栧け璐ワ細{ex.Message}"); + MainPage.Log("Error", $"鏁版嵁鍒濆鍖栧け璐ワ細{ex.StackTrace}"); } finally { @@ -436,9 +656,10 @@ try { FunctionList.List.Read3tyFunctionStatus(); - }catch(Exception ex) + } + catch (Exception ex) { - MainPage.Log("璇诲彇绗笁鏂硅澶囩姸鎬佸け璐�:"+ex.Message); + MainPage.Log("Error", "璇诲彇绗笁鏂硅澶囩姸鎬佸け璐�:" + ex.StackTrace); } } }); @@ -474,13 +695,18 @@ { if (DB_ResidenceData.Instance.CurrentRegion != null) { -#region 璇诲彇鏈湴鏁版嵁 - //鎼滅储缃戝叧 - DriverLayer.Control.Ins.SearchLoaclGateway(); - //閲嶆柊杩炴帴mqtt - DAL.Mqtt.MqttClient.DisConnectRemote("鍒锋柊鏁版嵁锛岄噸杩瀖qtt",false); -#endregion - + try + { + #region 璇诲彇鏈湴鏁版嵁 + //鎼滅储缃戝叧 + DriverLayer.Control.Ins.SearchLoaclGateway(); + //閲嶆柊杩炴帴mqtt + DAL.Mqtt.MqttClient.DisConnectRemote("鍒锋柊鏁版嵁锛岄噸杩瀖qtt", false); + #endregion + } + catch (Exception ex){ + MainPage.Log("Error", $"璇诲彇鏈湴鏁版嵁寮傚父锛歿ex.StackTrace}"); + } } } }) @@ -511,40 +737,43 @@ /// </summary> public void GetSecurityList() { - var pack = Ins.HttpRequest.GetSecurityList(); - if (pack.Code == StateCode.SUCCESS) + lock (FunctionList.List.securities) { - var packList = JsonConvert.DeserializeObject<List<SecurityAlarm>>(pack.Data.ToString()); - 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); + } + 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 + { + MainPage.Log($"璇诲彇瀹夐槻鍒楄〃澶辫触:Code:{pack.Code}; Msg:{pack.message}"); + } } - } /// <summary> @@ -557,4 +786,5 @@ } -} \ No newline at end of file +} + -- Gitblit v1.8.0