From ccdff82fac4bcc1067ec806ade5ae897f1214f4d Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期四, 01 四月 2021 14:41:53 +0800
Subject: [PATCH] 异常捕获

---
 HDL_ON/DAL/Server/HttpServerRequest.cs |  351 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 251 insertions(+), 100 deletions(-)

diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index 6ff56cb..d693f04 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -37,34 +37,48 @@
         {
         }
 
+        #region kaede ___________浼犳劅鍣ㄥ巻鍙叉暟鎹甠_________________
         /// <summary>
         /// 鑾峰彇浼犳劅鍣ㄥ巻鍙叉暟鎹�
         /// </summary>
-        /// <param name="subnetId"></param>
-        /// <param name="deviceId"></param>
-        /// <param name="bigClass"></param>
-        /// <param name="minClass"></param>
-        /// <param name="queryType"></param>
-        /// <param name="loopId"></param>
-        /// <param name="nowMonth"></param>
-        /// <param name="mac"></param>
+        /// <param name="qType">鏃堕棿鏌ヨ绫诲瀷锛歨our=杩�24灏忔椂銆亀eek=杩戜竴鍛ㄣ�乵onth = 杩戜竴鏈� </param>
+        /// <param name="deviceId">璁惧ID</param>
+        /// <param name="deviceKey">鍔熻兘鏌ヨ绫诲瀷锛歱m25</param>
         /// <returns></returns>
-        public ResponsePack GetSensorHistory(int subnetId, int deviceId, int bigClass, int minClass, int queryType, int loopId, int nowMonth, string mac)
+        public ResponsePackNew GetSensorHistory(string qType, string deviceId,string deviceKey)
         {
             Dictionary<string, object> d = new Dictionary<string, object>();
-            d.Add("SubnetID", subnetId);
-            d.Add("DeviceID", deviceId);
-            d.Add("LargeType", bigClass);
-            d.Add("SmallType", minClass);
-            d.Add("QueryType", queryType);
-            d.Add("loopId", loopId);
-            d.Add("NowMonth", nowMonth);
-            d.Add("MAC", DB_ResidenceData.Instance.residenceGatewayMAC);
-            d.Add("LocalTimeZone", 8);
-            var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
-            return RequestHttps("https://developer.hdlcontrol.com/api/GetSensorPushHistory", jsonString, true);
+            d.Add("type", qType);
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            d.Add("deviceId", new List<string>() { deviceId });
+            d.Add("key", new List<string>() { deviceKey });
 
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_EnvironmentalSensorHistoricalData, requestJson);
         }
+        /// <summary>
+        /// 鑾峰彇瀹夐槻浼犳劅鍣ㄥ巻鍙叉暟鎹�
+        /// </summary>
+        /// <param name="deviceId">璁惧ID</param>
+        /// <param name="pageSize">椤甸潰澶у皬</param>
+        /// <param name="pageNo">椤靛彿</param>
+        /// <returns></returns>
+        public ResponsePackNew GetArmSensorHistory( string deviceId,string pageSize, string pageNo)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            d.Add("deviceId", deviceId);
+            d.Add("pageSize", pageSize);
+            d.Add("pageNo", pageNo);
+
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_ArmSensorHistoricalData, requestJson);
+        }
+
+
+
+
+        #endregion
 
         //public string GetRequestResultMsg(string resultCode)
         //{
@@ -106,7 +120,7 @@
         /// 鍒锋柊Token
         /// </summary>
         /// <returns></returns>
-        public bool RefreshToken()
+        public string RefreshToken()
         {
             var requestJson = HttpUtil.GetSignRequestJson(new RefreshTokenObj()
             {
@@ -120,9 +134,8 @@
                 UserInfo.Current.RefreshToken = revertData.refreshToken;
                 UserInfo.Current.LastTime = DateTime.Now;
                 UserInfo.Current.SaveUserInfo();
-                return true;
             }
-            return false;
+            return revertObj.Code;
         }
 
         #endregion
@@ -131,17 +144,40 @@
         /// 缁戝畾璋冭瘯浜哄憳鎻愪氦鐨勪綇瀹�,涓�涓綇瀹呭彧鑳界粦瀹氫竴娆�
         /// </summary>
         /// <returns></returns>
-        public ResponsePackNew BindingResidence(string key)
+        public ResponsePackNew BindingResidence(string strUrl)
         {
-            Dictionary<string, object> d = new Dictionary<string, object>();
-            //d.Add("homeId", homeId);
-            d.Add("secretKey", key);
-            var requestJson = HttpUtil.GetSignRequestJson(d);
-            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_BindlingResidence, requestJson, HttpUtil.GlobalRequestHttpsHost);
+            try
+            {
+                if (strUrl.Contains("app/home/deliver") == false)
+                {
+                    //闈炴硶鐨刄RL 杩斿洖涓�涓嚜瀹氫箟鐨勭姸鎬佺爜
+                    return new ResponsePackNew() { Code = "-100" };
+                }
+                var client = new RestSharp.RestClient(strUrl);
+
+                var request = new RestSharp.RestRequest(RestSharp.Method.GET);
+                request.Timeout = 5 * 1000;
+                request.AddHeader("content-type", "application/json");
+                request.AddHeader("Authorization", UserInfo.Current.LoginTokenString);
+
+                var response = client.Execute(request);
+                if (response.StatusCode == HttpStatusCode.OK)
+                {
+                    return Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePackNew>(response.Content);
+                }
+                else
+                {
+                    return null;
+                }
+            }
+            catch
+            {
+                return null;
+            }
         }
 
         #region 娉ㄥ唽銆佺櫥褰曢儴鍒�
-       
+
 
         /// <summary>
         /// 閫氱敤 鍙戦�侀獙璇佺爜鏂规硶
@@ -287,7 +323,7 @@
         /// 鑾峰彇鐢ㄦ埛淇℃伅
         /// </summary>
         /// <returns></returns>
-        public void GetUserInfo(bool bGetHeadImage = true)
+        public string GetUserInfo(bool bGetHeadImage = true)
         {
             var requestJson = HttpUtil.GetSignRequestJson(new NullObj());
             var resultObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_GetMemberInfo, requestJson);
@@ -321,57 +357,7 @@
                 UserInfo.Current.SaveUserInfo();
                 MainPage.Log("鑾峰彇鐢ㄦ埛淇℃伅鎴愬姛銆�");
             }
-
-
-            //    Dictionary<string, object> d = new Dictionary<string, object>();
-            //var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(d);
-            //var revertObj = RequestHttps($"{severAddress}/ZigbeeUsers/GetAccountInfo", requestJson, true);
-
-            //if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS)
-            //{
-            //    var dataStr = JObject.FromObject(revertObj.ResponseData);
-            //    //"DistributedMark": "96439601-fd26-4768-8440-1d9dfa32c109",  < !--甯愬彿Id-- >
-            //     UserInfo.Current.userEmailInfo = dataStr.GetValue("Email").ToString();
-            //     UserInfo.Current.userMobileInfo = dataStr.GetValue("Phone").ToString();
-            //    FileStream fs = null;
-            //    try
-            //    {
-            //        var headImageString = dataStr.GetValue("HeadImage").ToString();
-            //        if (!string.IsNullOrEmpty(headImageString))
-            //        {
-            //            var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(headImageString);
-            //            var headImageBytes = Newtonsoft.Json.JsonConvert.DeserializeObject<byte[]>(jsonString);
-            //             UserInfo.Current.headImagePageBytes = headImageBytes;
-            //            var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/", "headImage.png");
-            //            fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
-            //            fs.Write(headImageBytes, 0, headImageBytes.Length);
-            //            fs.Flush();
-            //             UserInfo.Current.headImagePagePath = filePath;
-            //        }
-            //    }
-            //    catch (Exception ex)
-            //    {
-            //        MainPage.Log($"download headImage error : {ex.Message}");
-            //    }
-            //    finally
-            //    {
-            //        if (fs != null)
-            //        {
-            //            fs.Close();
-            //        }
-            //    }
-            //    // "GesturePwd": null,  < !--鎵嬪娍瀵嗙爜-- >
-            //    // "StringPwd": null , < !--瀛楃涓插瘑鐮�-- >
-            //     UserInfo.Current.userName = dataStr.GetValue("UserName").ToString();
-
-            //    Application.RunOnMainThread(() =>
-            //    {
-            //    });
-
-            //     UserInfo.Current.SaveUserInfo();
-            //    MainPage.Log("鑾峰彇鐢ㄦ埛淇℃伅鎴愬姛銆�");
-            //}
-
+            return resultObj.Code;
         }
 
         /// <summary>
@@ -494,6 +480,7 @@
                             IsOthreShare = mHome.IsOtherShare,
                             accountType = mHome.accountType,
                             isRemoteControl = mHome.isRemoteControl,
+                            isBindGateway = mHome.isBindGateway,
                             longitude = mHome.longitude,
                             latitude = mHome.latitude,
                             deliverstatus = mHome.deliverstatus,
@@ -505,7 +492,14 @@
                             Address = mHome.homeAddress,
                             isAllowCreateScene = mHome.isAllowCreateScene,
                         };
-                        UserInfo.Current.regionList.Add(home);
+                        if (home.isBindGateway)
+                        {
+                            UserInfo.Current.regionList.Add(home);
+                        }
+                    }
+                    if(UserInfo.Current.regionList.Count== 0)
+                    {
+                        return "null";
                     }
                     //-------濡傛灉璐﹀彿鏄娆$櫥褰�
                     if (DB_ResidenceData.Instance.CurrentRegion == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.CurrentRegion.RegionID))
@@ -531,7 +525,7 @@
                                 UserInfo.Current.SaveUserInfo();
                                 Action action = () =>
                                 {
-                                    MainPage.GoUserPage();
+                                    MainPage.GoUserPage(true);
                                 };
                                 new UI.PublicAssmebly().TipMsg(StringId.Tip, StringId.ResidenceDeletedSwitchToAnotherResidence, action);
                             });
@@ -581,11 +575,11 @@
         /// <summary>
         /// 鑾峰彇鍒锋柊褰撳墠浣忓畢鐨勭綉鍏冲垪琛�
         /// </summary>
-        public void GetHomeGatewayList()
+        public string GetHomeGatewayList()
         {
             try
             {
-                if (string.IsNullOrEmpty(DB_ResidenceData.Instance.CurrentRegion.RegionID)) return;
+                if (string.IsNullOrEmpty(DB_ResidenceData.Instance.CurrentRegion.RegionID)) return "";
                 var nowhomeId = DB_ResidenceData.Instance.CurrentRegion.RegionID;
                 var requestJson = HttpUtil.GetSignRequestJson(new HomeIdObj() { homeId = nowhomeId });
                 var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_GetGatewayList, requestJson);
@@ -599,17 +593,9 @@
                             if (mHomeGatewayRes.Count > 0)
                             {
                                 DB_ResidenceData.Instance.HomeGateway = mHomeGatewayRes[0];
-                                if(mHomeGatewayRes[0].gatewayStatus)
-                                {
-                                    //DriverLayer.Control.Ins.IsRemote = true;
-                                    DriverLayer.Control.Ins.GatewayOnline = true;
-                                }
-                                else
-                                {
-                                    DriverLayer.Control.Ins.GatewayOnline = false;
-                                }
+                                DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes[0].gatewayStatus;
                                 DB_ResidenceData.Instance.SaveResidenceData();
-                                return;
+                                return revertObj.Code;
                             }
                         }
                         //鍏朵綑鎯呭喌娓呯┖缃戝叧淇℃伅
@@ -621,11 +607,34 @@
                 {
                     //鎻愮ず閿欒
                 }
+                return revertObj.Code;
             }
             catch
             {
-
+                return "";
             }
+        }
+        /// <summary>
+        /// 鑾峰彇缃戝叧淇℃伅
+        /// </summary>
+        public string GetGatewayInfo()
+        {
+            if (DB_ResidenceData.Instance.HomeGateway == null)
+                return StateCode.NETWORK_ERROR;
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId);
+            var jsonString = HttpUtil.GetSignRequestJson(d);
+            var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetGatewayInfo, jsonString);
+            if (revertObj.Code == StateCode.SUCCESS)
+            {
+                var mHomeGatewayRes = Newtonsoft.Json.JsonConvert.DeserializeObject<HomeGatewayInfo>(revertObj.Data.ToString());
+                if (mHomeGatewayRes != null)
+                {
+                    DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes.gatewayStatus;
+                }
+            }
+            return revertObj.Code;
         }
 
         /// <summary>
@@ -1780,6 +1789,56 @@
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieList, requestJson);
         }
         /// <summary>
+        /// 鑾峰彇鎸囧畾绗笁鏂瑰搧鐗岀殑缁戝畾杩囩殑璁惧鍒楄〃
+        /// </summary>
+        /// <param name="productPlatform"></param>
+        /// <param name="productBrand"></param>
+        /// <returns></returns>
+        public ResponsePackNew Get3TyBrandBindDeviceList(string productPlatform, string productBrand)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            d.Add("productPlatform", productPlatform);
+            d.Add("productBrand", productBrand);
+            d.Add("networkConfig", true);
+
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieList, requestJson);
+        }
+        /// <summary>
+        /// 鑾峰彇鎸囧畾绗笁鏂瑰搧鐗岀殑璁惧鍒楄〃
+        /// </summary>
+        /// <param name="productPlatform"></param>
+        /// <param name="productBrand"></param>
+        /// <returns></returns>
+        public ResponsePackNew Get3TyBrandDeviceList(string productPlatform,string productBrand)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("categoryType", 1);
+            d.Add("productPlatform", productPlatform);
+            d.Add("productBrand", productBrand);
+            d.Add("networkConfig", true);
+            
+
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Get3tyBrandDevcieList, requestJson);
+        }
+
+        /// <summary>
+        /// 鑾峰彇璁惧璇︽儏
+        /// </summary>
+        /// <returns></returns>
+        public ResponsePackNew GetDeviceInfo(string functionId)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            d.Add("deviceIds", new List<string>() { functionId });
+
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieInfoList, requestJson);
+        }
+
+        /// <summary>
         /// 鑾峰彇璁惧璇︽儏鍒楄〃
         /// </summary>
         /// <returns></returns>
@@ -1803,6 +1862,7 @@
             d.Add("deviceIds", functionIds);
 
             var requestJson = HttpUtil.GetSignRequestJson(d);
+            MainPage.Log($"璇诲彇璁惧鐘舵�侊細{requestJson}");
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_RefreshDeviceStatus, requestJson);
         }
 
@@ -1814,7 +1874,7 @@
         {
             Dictionary<string, object> d = new Dictionary<string, object>();
             d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
-            d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway.gatewayId);//DriverLayer.Control.Ins.GatewayId);
+            d.Add("gatewayId", DB_ResidenceData.Instance.HomeGateway == null ? "0" : DB_ResidenceData.Instance.HomeGateway.gatewayId);//DriverLayer.Control.Ins.GatewayId);
             d.Add("actions", actionObjs);
 
             var requestJson = HttpUtil.GetSignRequestJson(d);
@@ -1829,7 +1889,7 @@
         {
             Dictionary<string, object> d = new Dictionary<string, object>();
             d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
-            d.Add("deviceId", function.deviceId);//DriverLayer.Control.Ins.GatewayId);
+            d.Add("deviceId", function.deviceId);
             d.Add("name", function.name);
             d.Add("collect", function.collect);
             d.Add("roomIds", function.roomIds);
@@ -1837,6 +1897,22 @@
             var requestJson = HttpUtil.GetSignRequestJson(d);
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_EditDevice, requestJson);
         }
+        /// <summary>
+        /// 鏇存柊璁惧缁戝畾鎴块棿淇℃伅
+        /// </summary>
+        /// <returns></returns>
+        public ResponsePackNew UpdataDevcieBindRoomInfo(Function function)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            d.Add("deviceId", function.deviceId);
+            d.Add("roomIds", function.roomIds);
+
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_EditDevice, requestJson);
+        }
+
+
         /// <summary>
         /// 璁惧缁戝畾鎴块棿
         /// </summary>
@@ -1935,6 +2011,21 @@
             var requestJson = HttpUtil.GetSignRequestJson(d);
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetSecneInfo, requestJson);
         }
+
+        /// <summary>
+        /// 鑾峰彇鍦烘櫙璇︽儏鍒楄〃
+        /// </summary>
+        /// <param name="seceneId">鍦烘櫙ID</param>
+        /// <returns></returns>
+        public ResponsePackNew GetSceneListInfo(List<string> seceneIds)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("userSceneIds", seceneIds);
+
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetSecneInfo, requestJson);
+        }
+
         /// <summary>
         /// 娣诲姞鍦烘櫙
         /// </summary>
@@ -1946,7 +2037,11 @@
             d.Add("scenes", new List<Scene>() { scene });
 
             var requestJson = HttpUtil.GetSignRequestJson(d);
-            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_AddSecne, requestJson);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_AddSecne, requestJson);
+
+            MainPage.Log($"{pack.Data}");
+
+            return pack;
         }
         /// <summary>
         /// 缂栬緫鍦烘櫙
@@ -2094,5 +2189,61 @@
         }
 
         #endregion
+
+
+        #region Kaede --鎴块棿鍔熻兘--------------------------
+        /// <summary>
+        /// 鑾峰彇绗笁鏂瑰搧鐗屽垪琛�
+        /// </summary>
+        public ResponsePackNew Get3tyBrandList()
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetBrandList, requestJson);
+
+            return pack;
+        }
+        /// <summary>
+        /// 鑾峰彇缁戝畾鐨勭涓夋柟鍝佺墝鍒楄〃
+        /// </summary>
+        public ResponsePackNew Get3tyBindBrandList()
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetBindBrandList, requestJson);
+
+            return pack;
+        }
+
+        #endregion
+
+        #region 钀ょ煶浜慡DK鐩稿叧鎺ュ彛
+        /// <summary>
+        /// 娌充笢鑾峰彇钀ょ煶浜戝瓙璐﹀彿token鐨勬帴鍙�
+        /// </summary>
+        public ResponsePackNew EZGetChildToken()
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_EZ_GetChildToken, requestJson);
+        }
+        #endregion
+
+
+        #region 鍙瀵硅
+        /// <summary>
+        /// 妫�鏌ヤ綇瀹呮槸鍚︾粦瀹氫赴鏋楋紝骞惰幏鍙栭棬鍙f満鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public ResponsePackNew CheckFlVideo()
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
+            var requestJson = HttpUtil.GetSignRequestJson(d);
+            var pack = HttpUtil.RequestHttpsPostFroHome( NewAPI.API_POST_FL_Check, requestJson);
+            return pack;
+        }
+        #endregion
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0