wxr
2022-11-23 5b77d9d57a6cddb474a66ca54401ad5ab0892db3
HDL_ON/Common/ApiUtlis.cs
@@ -5,6 +5,7 @@
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.UI2.FuntionControlView.Video;
using HDL_ON.UI.UI2.Intelligence.Automation;
using Newtonsoft.Json;
using Shared;
@@ -50,6 +51,8 @@
        /// 读取场景数据完成
        /// </summary>
        bool complateScene = false;
        //线程结束时间
        DateTime endTime1;
        /// <summary>
        /// 校验网关是否在线
@@ -68,7 +71,7 @@
        /// <summary>
        /// 下载数据完成标记
        /// </summary>
        public bool DownloadDataComplete = true;
        public bool DownloadDataComplete = false;
        /// <summary>
        /// 下载数据
        /// </summary>
@@ -76,8 +79,8 @@
        {
            if (MainPage.InternetStatus == 0 || MainPage.NoLoginMode)
                return;
            //线程开始时间
            var endTime = DateTime.Now.AddSeconds(5);
            endTime1 = DateTime.Now.AddSeconds(25);
            complateDevice = complateScene = false;
            MainPage.Log($"开始同步云端数据");
@@ -101,7 +104,6 @@
                    MainPage.Log($"刷新token失败");
                    return;
                }
                endTime = DateTime.Now.AddSeconds(5);
                MainPage.Log($"刷新token成功");
                //===================刷新住宅信息=======================
                code = Ins.HttpRequest.GetHomePager();
@@ -110,7 +112,6 @@
                    MainPage.Log($"刷新住宅信息失败");
                    return;
                }
                endTime = DateTime.Now.AddSeconds(5);
                MainPage.Log($"刷新住宅信息成功");
                //===================刷新个人信息=======================
                code = Ins.HttpRequest.GetUserInfo();
@@ -119,7 +120,6 @@
                    MainPage.Log($"刷新个人信息失败");
                    return;
                }
                endTime = DateTime.Now.AddSeconds(5);
                MainPage.Log($"刷新个人信息成功");
                //int count = 0;
@@ -147,7 +147,6 @@
                    var roomResult = Ins.HttpRequest.GetRoomList();
                    if (roomResult.Code == StateCode.SUCCESS)
                    {
                        endTime = DateTime.Now.AddSeconds(100);
                        MainPage.Log($"读取房间信息成功");
                        var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<SpatialApiPack>(roomResult.Data.ToString());
                        if (revData == null)
@@ -157,7 +156,6 @@
                        {
                            SpatialInfo.CurrentSpatial.UpdateSpatialList(revData.list);
                        }
                        endTime = DateTime.Now.AddSeconds(5);
                    }
                    else
                    {
@@ -173,11 +171,10 @@
                            var deviceResult = Ins.HttpRequest.GetDeviceList("30", "1");
                            if (deviceResult.Code == StateCode.SUCCESS)
                            {
                                endTime = DateTime.Now.AddSeconds(5);
                                MainPage.Log($"读取设备信息成功");
                                MainPage.Log($"sid列表获取====" + deviceResult.Data.ToString());
                                var deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
                                //MainPage.Log($"读取设备信息成功");
                                //MainPage.Log($"sid列表获取====" + deviceResult.Data.ToString());
                                var deviceList = JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
                                if (deviceList == null)
                                {
                                    deviceList = new DevcieApiPack();
@@ -189,7 +186,7 @@
                                        var deviceResult2 = Ins.HttpRequest.GetDeviceList("30", Convert.ToInt32(deviceList.pageNo) + 1 + "");
                                        if (deviceResult2.Code == StateCode.SUCCESS)
                                        {
                                            var deviceList2 = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
                                            var deviceList2 = JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
                                            deviceList.pageNo = deviceList2.pageNo;
                                            deviceList.list.AddRange(deviceList2.list);
                                        }
@@ -197,11 +194,10 @@
                                }
                                catch (Exception ex)
                                {
                                }
                                finally
                                {
                                    complateDevice = true;
                                }
                                string delFile = "";
@@ -228,13 +224,14 @@
                                    }
                                }
                                //处理剩下的新增功能
                                int iiii = 0;
                                foreach (var newFunction in deviceList.list)
                                {
                                    newFunction.AssembleStatus();
                                    newFunction.SaveFunctionFile();
                                    FunctionList.List.IniFunctionList(newFunction.savePath);
                                    MainPage.Log($"============设备============{iiii++}");
                                }
                                endTime = DateTime.Now.AddSeconds(5);
                            }
                            else
                            {
@@ -247,6 +244,7 @@
                        finally
                        {
                            complateDevice = true;
                            MainPage.Log($"============设备============完成" + FunctionList.List.Functions.Count);
                        }
                    })
                    { IsBackground = true }.Start();
@@ -256,11 +254,10 @@
                    {
                        try
                        {
                            complateScene = true;
                            complateScene = false;
                            var pack = Ins.HttpRequest.GetSceneList();
                            if (pack.Code == StateCode.SUCCESS)
                            {
                                endTime = DateTime.Now.AddSeconds(100);
                                MainPage.Log($"读取场景数据成功");
                                var sceneList = JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString());
                                if (sceneList == null)
@@ -302,7 +299,6 @@
                                        IMessageCommon.Current.ShowErrorInfoAlter(packInfo.Code);
                                    }
                                }
                                endTime = DateTime.Now.AddSeconds(5);
                            }
                            else
                            {
@@ -320,7 +316,8 @@
                    { IsBackground = true }.Start();
                    //===================读取逻辑列表==========================
                    UI.UI2.Intelligence.Automation.MainView.GetLogicList(true);
                    Logic.LogicList.Clear();//主页下拉强制刷新自动化列表
                    //UI.UI2.Intelligence.Automation.MainView.GetLogicList();
                    //===================读取可视对讲数据==========================
                    //判断是否有可视对讲数据,有则显示可视对讲icon
@@ -350,10 +347,10 @@
                                DB_ResidenceData.Instance.SaveResidenceData();
                                Entity.DB_ResidenceData.Instance.SupportFVDevice = true;
                            }
                            else if (video.interphoneType == InterphoneType.FREEVIEW.ToString())
                            {//为全视通可视对讲
                            {
                                //为全视通可视对讲
                                DB_ResidenceData.Instance.SupportFacePass = true;
                                Entity.DB_ResidenceData.Instance.SupportVisitorManage = true;
                                Entity.DB_ResidenceData.Instance.SupportFVDevice = true;
@@ -419,8 +416,6 @@
                    Application.RunOnMainThread(() =>
                    {
                        MainPage.Log($"结束读取云端数据线程");
                        endTime = DateTime.MinValue;
                        DownloadDataComplete = true;
                        if (waitPage != null)
                        {
                            waitPage.RemoveFromParent();
@@ -430,7 +425,13 @@
                    //不考虑网关情况,直接订阅
                    DAL.Mqtt.MqttClient.InitState();
                    FunctionList.List.Read3tyFunctionStatus();
                    try
                    {
                        FunctionList.List.Read3tyFunctionStatus();
                    }catch(Exception ex)
                    {
                        MainPage.Log("读取第三方设备状态失败:"+ex.Message);
                    }
                }
            });
            downloadDataThread.IsBackground = true;
@@ -442,9 +443,9 @@
            {
                try
                {
                    while (endTime > DateTime.Now)
                    while (endTime1 > DateTime.Now)
                    {
                        if (DownloadDataComplete && complateDevice && complateScene)
                        if ( complateDevice && complateScene)
                        {
                            break;
                        }
@@ -476,37 +477,6 @@
                }
            })
            { IsBackground = true }.Start();
            ////下载光伏数据
            //new System.Threading.Thread(() => {
            //    try
            //    {//00
            //        HttpServerRequest http = new HttpServerRequest();
            //        var packData = http.GetInverterList();
            //        if (packData != null)
            //        {
            //            if (packData.Code == StateCode.SUCCESS)
            //            {
            //                var inverterList = JsonConvert.DeserializeObject<List<InverterInfo>>(packData.Data.ToString());
            //                if (inverterList!= null)
            //                {
            //                    FunctionList.List.InverterList = inverterList;
            //                }
            //            }
            //        }
            //    }
            //    catch (Exception ex)
            //    {
            //        MainPage.Log($"读取光伏数据异常:{ex.Message}");
            //    }
            //}) { IsBackground = true }.Start();
        }
        /// <summary>