From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 09:07:13 +0800 Subject: [PATCH] 新云端Ver1.3 --- ZigbeeApp/Shared/Phone/Device/Logic/Send.cs | 294 +++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 177 insertions(+), 117 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs index b1b086f..e092601 100755 --- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs @@ -12,6 +12,7 @@ { public class Send { + #region ----Logic鎵�鏈夊彂閫佸懡浠� /// <summary> /// 鑾峰彇LogicId鐨勬柟娉� @@ -22,6 +23,9 @@ return await System.Threading.Tasks.Task.Run(async () => { List<int> logicIdList = new List<int>(); + + bool if_theme = false; + int if_number = -1; Action<string, string> action = (topic, data) => { var gatewayID = topic.Split('/')[0]; @@ -30,21 +34,22 @@ { return; } - + if (topic == $"{gatewayID}/Logic/GetLogicList_Respon") { - - var list = jObjectdata["Data"]["LogicList"]; - if (list == null) + if_theme = true; + var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jObjectdata["Data"]["LogicList"].ToString()); + if_number = list.Count; + if (list.Count == 0) { return; } foreach (var listIfon in list) { - var logicId = int.Parse(listIfon["LogicId"].ToString()); + var logicId = int.Parse(listIfon["LogicId"]); logicIdList.Add(logicId); + } - } }; var mainGateWay = ZbGateway.MainGateWay; @@ -70,9 +75,13 @@ while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000) { await System.Threading.Tasks.Task.Delay(100); - if (logicIdList.Count != 0) + if (if_theme) { - break; + if (if_number == 0 || if_number == logicIdList.Count) + { + break;//鍥炲娌℃湁鏁版嵁绔嬪埢杩斿洖 + } + } } ZbGateway.MainGateWay.GwResDataAction -= action; @@ -101,7 +110,6 @@ if (topic == $"{gatewayID}/Logic/GetLogicInfo_Respon") { - logic = new Common.Logic(); var Logicifon = jObjectdata["Data"]; logic.LogicId = int.Parse(Logicifon["LogicId"]?.ToString()); @@ -246,7 +254,6 @@ { try { - Logicifon = new Common.Logic(); Logicifon = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Logic>(jObjectdata["Data"].ToString()); } catch (Exception ex) @@ -526,6 +533,24 @@ accounts.Add(location); } break; + case 8: + { + var accounts1 = new JObject(); + if (dictionary.ContainsKey("Type")) + { + accounts1.Add("Type", int.Parse(dictionary["Type"])); + } + if (dictionary.ContainsKey("Option4")) + { + accounts1.Add("Option4", dictionary["Option4"]); + } + if (dictionary.ContainsKey("Option2")) + { + accounts1.Add("Option2", int.Parse(dictionary["Option2"])); + } + accounts.Add(accounts1); + } + break; } } @@ -631,8 +656,7 @@ return await System.Threading.Tasks.Task.Run(async () => { - var listLogic = new List<Common.Logic>(); - // bool @bool = false; + var listLogic = new List<Common.Logic>(); Action<string, string> action = (topic, data) => { var gatewayID = topic.Split('/')[0]; @@ -644,7 +668,6 @@ if (topic == $"{gatewayID}/Logic/GetAllLogicListInfo_Respon") { - var logic = new Common.Logic(); var Logicifon = jObjectdata["Data"]; logic.LogicId = int.Parse(Logicifon["LogicId"].ToString()); @@ -703,10 +726,7 @@ } } - //if (topic == $"{gatewayID}/Logic/AllLogicNum_Respon") - //{ - // @bool = true; - //} + }; var mainGateWay = ZbGateway.MainGateWay; if (mainGateWay == null) @@ -731,10 +751,6 @@ { break; } - //if (@bool) - //{ - // break; - //} } ZbGateway.MainGateWay.GwResDataAction -= action; return listLogic; @@ -784,7 +800,7 @@ while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000) { await System.Threading.Tasks.Task.Delay(100); - if (sceneui != null) + if (sceneui != null && sceneui.Id > 0) { break; } @@ -809,14 +825,14 @@ var AllUserIfon = await ReadUserListIfon(doorlockMac); var currUserIfon = new MembershipIfon(); currUserIfon.CloudAccountId = Config.Instance.Guid; - if (string.IsNullOrEmpty(UserCenter.UserCenterResourse.UserInfo.UserName)) + if (string.IsNullOrEmpty(HdlUserCenterResourse.UserInfo.NickName)) { ///濡傛灉鏄电О涓虹┖锛屾鏃讹紝鐧婚檰璐﹀彿涓洪粯璁ゆ樀绉帮紱 - currUserIfon.UserName = UserCenter.UserCenterResourse.UserInfo.Account; + currUserIfon.UserName = HdlUserCenterResourse.UserInfo.Account; } else { - currUserIfon.UserName = UserCenter.UserCenterResourse.UserInfo.UserName; + currUserIfon.UserName = HdlUserCenterResourse.UserInfo.NickName; } foreach (var o in AllUserIfon) { @@ -844,34 +860,38 @@ userlist.Add(currUserIfon); } - if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo != 3) + if (HdlUserCenterResourse.ResidenceOption.AuthorityNo != 3) { - var pra = new UserCenter.MemberListInfoPra(); - string result = ""; + List<MemberInfoRes> listInfo = null; if (AllUserIfon.Count != 0) { //鏈嶅姟杩斿洖鏉ユ病鏈夐棬閿佹垚鍛樹俊鎭紝娌℃湁蹇呰鍐嶅幓璇锋眰鎴愬憳鍒楄〃锛� //鍘熷洜锛氳妭绾︽椂闂达紝浣撻獙鏁堟灉濂斤紱 - result = await UserCenter.UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra); + listInfo = HdlMemberLogic.Current.GetMemberListInfo(); } - var listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserCenter.MemberInfoRes>>(result); + if (listInfo == null) + { + //闃叉涓虹┖鎶涘紓甯革紱 + return userlist; + } for (int i = 0; i < listInfo.Count; i++) { var userIfon = new MembershipIfon(); - var user = listInfo[i]; - userIfon.CloudAccountId = user.SubAccountDistributedMark; - if (string.IsNullOrEmpty(user.UserName)) - { - ///濡傛灉鏄电О涓虹┖锛屾鏃讹紝鐧婚檰璐﹀彿涓洪粯璁ゆ樀绉帮紱 - userIfon.UserName = user.Account; + //鈽嗐優銉笺偗鈽� + //var user = listInfo[i]; + //userIfon.CloudAccountId = user.SubAccountDistributedMark; + //if (string.IsNullOrEmpty(user.UserName)) + //{ + // ///濡傛灉鏄电О涓虹┖锛屾鏃讹紝鐧婚檰璐﹀彿涓洪粯璁ゆ樀绉帮紱 + // userIfon.UserName = user.Account; - } - else - { - userIfon.UserName = user.UserName; + //} + //else + //{ + // userIfon.UserName = user.UserName; - } + //} for (int j = 0; j < AllUserIfon.Count; j++) { if (AllUserIfon[j].IsFreezeUser || string.IsNullOrEmpty(AllUserIfon[j].UserId)) @@ -883,25 +903,27 @@ { userIfon.DoorLockMacPort = AllUserIfon[j].DoorLockMacPort; } + //鈽嗐優銉笺偗鈽� ///鏌ユ壘鎴愬憳浠ュ強鎴愬憳闂ㄩ攣瑙﹀彂婧�(1鎸夐敭/3鍗�/15鎸囩汗) - if (user.SubAccountDistributedMark == AllUserIfon[j].CloudAccountId) - { - UnlockingMode unlockingMode = new UnlockingMode(); - unlockingMode.OpenMode = AllUserIfon[j].OpenMode; - unlockingMode.UserId = AllUserIfon[j].UserId; - unlockingMode.ModeName = AllUserIfon[j].ModeName; - userIfon.UserIdMode.Add(unlockingMode); - } + //if (user.SubAccountDistributedMark == AllUserIfon[j].CloudAccountId) + //{ + // UnlockingMode unlockingMode = new UnlockingMode(); + // unlockingMode.OpenMode = AllUserIfon[j].OpenMode; + // unlockingMode.UserId = AllUserIfon[j].UserId; + // unlockingMode.ModeName = AllUserIfon[j].ModeName; + // userIfon.UserIdMode.Add(unlockingMode); + //} } if (userIfon.UserIdMode.Count != 0) { + //鈽嗐優銉笺偗鈽� ///杩囨护鎺夐噸澶嶆暟鎹紱 - var str = userlist.Find((c) => { return c.CloudAccountId == user.SubAccountDistributedMark; }); - if (str == null) - { - userlist.Add(userIfon); - } + //var str = userlist.Find((c) => { return c.CloudAccountId == user.SubAccountDistributedMark; }); + //if (str == null) + //{ + // userlist.Add(userIfon); + //} } } @@ -943,7 +965,7 @@ public static async System.Threading.Tasks.Task<string> ReadUserList(string doorlockMac) { string s = null; - var str = await WebClientAsync(0, CommonPage.RequestHttpsHost + "/App/GetHomePager");//涓嶅悓鍖哄煙鍩熷悕鍓嶇紑涓嶄竴鏍� + var str = await WebClientAsync(0, HdlHttpLogic.Current.RequestHttpsHost + "/App/GetHomePager");//涓嶅悓鍖哄煙鍩熷悕鍓嶇紑涓嶄竴鏍� var jObject = JObject.Parse(str); if (jObject == null || jObject["StateCode"].ToString() != "Success") @@ -968,12 +990,12 @@ residential.MainUserDistributedMark = data["MainUserDistributedMark"].ToString(); residential.IsOtherAccountCtrl = true; residential.doorlockmac = doorlockMac; - residential.Url = CommonPage.RequestHttpsHost + "/App/GetSharedHomeApiControl"; + residential.Url = HdlHttpLogic.Current.RequestHttpsHost + "/App/GetSharedHomeApiControl"; s = await ReadUserDoorLock(residential); } else { - residential.Url = CommonPage.RequestHttpsHost + "/DoorLock/GetDoorLockPager"; + residential.Url = HdlHttpLogic.Current.RequestHttpsHost + "/DoorLock/GetDoorLockPager"; residential.Token = Config.Instance.Token; residential.Id = Config.Instance.HomeId; residential.IsOtherAccountCtrl = false; @@ -1112,7 +1134,7 @@ /// <summary> /// 褰撳墠鐢ㄦ埛鐨勪俊鎭� /// </summary> - public static UserCenter.MemberInfoRes UserMemberInfoRes = null; + public static MemberInfoRes UserMemberInfoRes = null; #endregion /// <summary> @@ -1163,17 +1185,19 @@ { var getUrl = ""; var jObject = new JObject(); - if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 1) + if (HdlUserCenterResourse.ResidenceOption.AuthorityNo == 1) { - getUrl = CommonPage.RequestHttpsHost + url;//璇锋眰鍦板潃锛� + //鈽嗐優銉笺偗鈽� + //getUrl = HdlHttpLogic.Current.RequestHttpsHost + url;//璇锋眰鍦板潃锛� jObject.Add("IsOtherAccountCtrl", false); jObject.Add("LoginAccessToken", Config.Instance.Token); } else { - getUrl = Config.Instance.AdminRequestBaseUrl + url;//璇锋眰鍦板潃锛� + //鈽嗐優銉笺偗鈽� + //getUrl = Config.Instance.AdminRequestBaseUrl + url;//璇锋眰鍦板潃锛� jObject.Add("IsOtherAccountCtrl", true); - jObject.Add("LoginAccessToken", Config.Instance.AdminRequestToken); + //jObject.Add("LoginAccessToken", Config.Instance.AdminRequestToken); } switch (command) { @@ -1206,33 +1230,45 @@ /// <param name="method">璇锋眰鏂瑰紡涓篜OST/GET</param> /// <param name="second">瓒呮椂鏃堕棿</param> /// <returns></returns> - public static async System.Threading.Tasks.Task<string> HttpWebRequest(string getUrl, string str, string method, int second = 3) + public static async System.Threading.Tasks.Task<string> HttpWebRequest(string getUrl, string str, string method, int second = 3, bool _bool = false) { - HttpWebRequest request = WebRequest.Create(getUrl) as HttpWebRequest; //鍒涘缓璇锋眰 - request.Method = method; //璇锋眰鏂瑰紡涓篜OST/GET - request.ContentType = "application/json"; - request.Timeout = second * 1000;//瓒呮椂鏃堕棿 - if (method == "POST") - { - byte[] jsonbyte = System.Text.Encoding.UTF8.GetBytes(str); - request.ContentLength = jsonbyte.Length; - Stream postStream = request.GetRequestStream(); - postStream.Write(jsonbyte, 0, jsonbyte.Length); - postStream.Close(); - } - //鍙戦�佽姹傚苟鑾峰彇鐩稿簲鍥炲簲鏁版嵁 - HttpWebResponse res; try { - res = (HttpWebResponse)request.GetResponse(); + HttpWebRequest request = WebRequest.Create(getUrl) as HttpWebRequest; //鍒涘缓璇锋眰 + request.Method = method; //璇锋眰鏂瑰紡涓篜OST/GET + request.ContentType = "application/json"; + request.Timeout = second * 1000;//瓒呮椂鏃堕棿 + if (_bool) + { + //鐢ㄤ簬楂樿儨鍙瀵硅鎺ュ彛 + request.Headers.Add("Authorization", Config.Instance.Token); + } + if (method == "POST") + { + byte[] jsonbyte = System.Text.Encoding.UTF8.GetBytes(str); + request.ContentLength = jsonbyte.Length; + Stream postStream = request.GetRequestStream(); + postStream.Write(jsonbyte, 0, jsonbyte.Length); + postStream.Close(); + } + //鍙戦�佽姹傚苟鑾峰彇鐩稿簲鍥炲簲鏁版嵁 + HttpWebResponse res; + try + { + res = (HttpWebResponse)request.GetResponse(); + } + catch (WebException ex) + { + res = (HttpWebResponse)ex.Response; + } + StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8); + string content = sr.ReadToEnd(); //鑾峰緱鍝嶅簲瀛楃涓� + return content; } - catch (WebException ex) + catch { - res = (HttpWebResponse)ex.Response; + return null; } - StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8); - string content = sr.ReadToEnd(); //鑾峰緱鍝嶅簲瀛楃涓� - return content; } /// <summary> /// 璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶 @@ -1281,37 +1317,61 @@ #endregion #region 瀛樺彇鏈湴鏂囦欢鐨勬柟娉� ---鏆傛椂涓嶇敤鍚堝苟璇ユ柟娉�--- - /// <summary> - /// 鏂囦欢淇濆瓨 - /// </summary> - /// <param name="FileName">鏂囦欢璺緞</param> - /// <param name="obj">闇�瑕佸簭鍒楀寲鏁版嵁</param> - public static void SaveLocalFile(string FileName, object obj) - { - //鍏堝簭鍒楀寲鏁版嵁锛� - var data = Newtonsoft.Json.JsonConvert.SerializeObject(obj); - //鏁版嵁杞崲涓哄瓧鑺傛祦锛� - var byteData = System.Text.Encoding.UTF8.GetBytes(data); - //鍐欏叆鏁版嵁锛� - Shared.IO.FileUtils.WriteFileByBytes(FileName, byteData); - } - - /// <summary> - /// 鏂囦欢璇诲彇 - /// </summary> - /// <param name="FileName">鏂囦欢璺緞</param> - /// <returns></returns> - public static string ReadLocalFile(string FileName) - { - if (System.IO.File.Exists(FileName) == false) - { - ///鍒ゆ柇鏄惁鏈夋枃浠�; - return null; - } - //璇诲嚭淇濆瓨璇ヨ矾寰勭殑鏂囦欢锛� - var varByte = Shared.IO.FileUtils.ReadFile(FileName); - //瀛楄妭娴佽浆鎹负瀛楃涓诧紱 - return System.Text.Encoding.UTF8.GetString(varByte); + /// <summary> + /// 鍒ゆ柇鏄惁寮�鍚疓PS鏈嶅姟 + /// </summary> + public static string If_Exist + { + get + { + string value = ReadLocalFile(Config.Instance.HomeId+"_GPS_File"); + //璇诲彇鏈湴GPS鏈嶅姟鐘舵�� + if (value == "0"||string.IsNullOrEmpty(value)) + { + return "0"; + } + return "1"; + } + + } + /// <summary> + /// 鏂囦欢淇濆瓨 + /// </summary> + /// <param name="FileName">鏂囦欢璺緞</param> + /// <param name="obj">闇�瑕佸簭鍒楀寲鏁版嵁</param> + public static void SaveLocalFile(string FileName, object obj) + { + //鍏堝簭鍒楀寲鏁版嵁锛� + var data = Newtonsoft.Json.JsonConvert.SerializeObject(obj); + //鏁版嵁杞崲涓哄瓧鑺傛祦锛� + var byteData = System.Text.Encoding.UTF8.GetBytes(data); + //鍐欏叆鏁版嵁锛� + Shared.IO.FileUtils.WriteFileByBytes(FileName, byteData); + } + /// <summary> + /// 鏂囦欢淇濆瓨 + /// </summary> + /// <param name="FileName">鏂囦欢璺緞</param> + /// <param name="data">瀛楃涓�</param> + public static void SaveLocalFile(string FileName, string data) + { + //鍏堝簭鍒楀寲鏁版嵁锛� + //鏁版嵁杞崲涓哄瓧鑺傛祦锛� + var byteData = System.Text.Encoding.UTF8.GetBytes(data); + //鍐欏叆鏁版嵁锛� + Shared.IO.FileUtils.WriteFileByBytes(FileName, byteData); + } + /// <summary> + /// 鏂囦欢璇诲彇 + /// </summary> + /// <param name="FileName">鏂囦欢璺緞</param> + /// <returns></returns> + public static string ReadLocalFile(string FileName) + { + //璇诲嚭淇濆瓨璇ヨ矾寰勭殑鏂囦欢锛� + var varByte = Shared.IO.FileUtils.ReadFile(FileName); + //瀛楄妭娴佽浆鎹负瀛楃涓诧紱 + return System.Text.Encoding.UTF8.GetString(varByte); } #endregion @@ -1319,8 +1379,8 @@ /// 鍒ゆ柇瀛楀吀鏄惁瀛樺湪鐨勬柟娉� /// </summary> /// <param name="deviceConditionsInfo"></param> - /// <param name="Key"></param> - /// <param name="Value"></param> + /// <param name="Key">閿�</param> + /// <param name="Value">閿��</param> public static void dictionary(Dictionary<string, string> deviceConditionsInfo, string Key, string Value) { if (deviceConditionsInfo.ContainsKey(Key)) @@ -1330,6 +1390,6 @@ deviceConditionsInfo.Add(Key, Value); } - + } } -- Gitblit v1.8.0