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