From 5a5a2b696866f947b6025d26c3302e8ffef46435 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期一, 11 一月 2021 16:11:20 +0800 Subject: [PATCH] 2021-01-11 1.更新MQTT连接和本地搜索网关方法。2.子账号相关接口完善 --- Crabtree/SmartHome/HDL/Operation/UserConfig.cs | 269 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 208 insertions(+), 61 deletions(-) diff --git a/Crabtree/SmartHome/HDL/Operation/UserConfig.cs b/Crabtree/SmartHome/HDL/Operation/UserConfig.cs index ac01c14..a51d781 100644 --- a/Crabtree/SmartHome/HDL/Operation/UserConfig.cs +++ b/Crabtree/SmartHome/HDL/Operation/UserConfig.cs @@ -7,7 +7,7 @@ [System.Serializable] public class UserConfig { - static string configFile = "UserConfig"; + public static string configFile = "UserConfig"; static UserConfig instance; public static UserConfig Instance { @@ -28,11 +28,19 @@ instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Sensor); instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Environmental); instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.MusicModel); - instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.UniversalDevice); + //instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.UniversalDevice); } else { instance = temp; } - } catch{} + } catch{ + instance = new UserConfig { }; + instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Projector); + instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.DoorLock); + instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.FreshAir); + instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Sensor); + instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.Environmental); + instance.HideDeviceTypes.Add (SimpleControl.R.MyInternationalizationString.MusicModel); + } } return instance; } @@ -144,83 +152,219 @@ public Dictionary<string, string> RemoteDoorLockPasswordList = new Dictionary<string, string> (); //public string CountryCode = "CN"; + /// <summary> + /// + /// </summary> public int SkinCode = 1; - - + /// <summary> + /// 浣忓畢鍒楄〃 + /// </summary> public List<RegionInfoRes> HomeLists = new List<RegionInfoRes> (); - + /// <summary> + /// 褰撳墠浣忓畢 + /// </summary> RegionInfoRes currentRegion = new RegionInfoRes (); public RegionInfoRes CurrentRegion { set { currentRegion = value; - CheckIfNeedGetMasterAccountToken (); + //CheckIfNeedGetMasterAccountToken (); + //鍒囨崲浣忓畢 璁剧疆鏈湴鍔犲瘑Key + SetLocalEncryptKey (); + //娓呯┖涔嬪墠缃戝叧鐨勪俊鎭紝閲嶆柊鑾峰彇 + HomeGateway = null; + GetHomeGatewayList (); } get { + if (currentRegion == null) { + currentRegion = new RegionInfoRes (); + } return currentRegion; } - } - public bool CheckHomeGateways () + #region HomeGateway + /// <summary> + /// 鏄惁鑾峰彇涓� + /// 2020-01-11 + /// </summary> + bool bGettingMac = false; + //public static List<string> LocalFiles = IO.FileUtils.ReadFiles (); + /// <summary> + /// 妫�鏌ユ槸鍚﹂渶瑕佽幏鍙栨帶鍒跺垎浜」鐩�(浣忓畢)璇锋眰淇℃伅 + /// </summary> + /// <param name="mMainAccountId"></param> + /// <param name="mSharedHid"></param> + public void GetHomeGatewayList () { - if (CurrentRegion != null && CurrentRegion.HomeGateways != null && CurrentRegion.HomeGateways.Count > 0) { + //System.Threading.Tasks.Task.Run (() => { + //if (bGettingMac) return; + HttpServerRequest.Current.GetHomeGatewayList (); + //}); + } + /// <summary> + /// 缃戝叧璇︾粏淇℃伅 + /// </summary> + public HomeGatewayInfo HomeGateway; + /// <summary> + /// 鏄惁鍏佽杩滅▼鎺у埗 + /// </summary> + public bool AllowRemoteControl { + get { + if (HomeIsOtherShare) { + //绛変簬0鏄厑璁歌繙绋嬫帶鍒� + return UserConfig.Instance.CurrentRegion.isRemoteControl; + } else { + //浣忓畢鏄嚜宸辨湰浜虹殑鍏佽鎺у埗 + return true; + } + } + } + + /// <summary> + /// 鏄惁鏄鐞嗗憳鏉冮檺(鍙樻洿浜�,鎴愬憳鐨勬椂鍊�,杩欎釜涔熶负ture銆備负浠�涔堜細澹版槑杩欐牱鍙橀噺,鍥犱负鏈変簺鎺ュ彛蹇呴』浣跨敤鍘熸潵鐨凾oken) + /// </summary> + public bool HomeIsOtherShare { + get { + if (UserConfig.Instance == null || UserConfig.Instance.CurrentRegion == null) { + return false; + } else { + return UserConfig.Instance.CurrentRegion.IsOthreShare; + } + } + } + + /// <summary> + /// 妫�娴嬩綇瀹呮槸鍚︾粦瀹氫簡缃戝叧 + /// gatewayId 鍒ょ┖ + /// </summary> + /// <returns></returns> + public bool CheckWhetherGatewayIdNotNull () + { + if (HomeGateway != null && !string.IsNullOrEmpty (HomeGateway.gatewayId)) { return true; } else { return false; } } + /// <summary> + /// 妫�娴嬩綇瀹呮槸鍚︾粦瀹氫簡缃戝叧 + /// </summary> + /// <returns></returns> public bool CheckHomeGatewaysNotEmpty () { - if (CheckHomeGateways () && !string.IsNullOrEmpty (currentRegion.HomeGateways [0].GatewayUniqueId)) { + if (HomeGateway != null && !string.IsNullOrEmpty (HomeGateway.mac)) { return true; } else { return false; } } - //public List<GatewayRes> GatewayList = new List<GatewayRes> (); - - //public List<string> GatewayMACList { - // get { - // List<string> macList = new List<string> (); - // foreach (var mac in GatewayList) { - // macList.Add (mac.GatewayUniqueId); - // } - // return macList; - // } - //} - //public string GatewayMAC = ""; - + /// <summary> + /// + /// </summary> public string GatewayMAC { get { if (CheckHomeGatewaysNotEmpty ()) { - return currentRegion.HomeGateways [0].GatewayUniqueId; + return HomeGateway.mac; } else { return ""; } } set { - if (CheckHomeGateways ()) { - currentRegion.HomeGateways [0].GatewayUniqueId = value; + if (CheckHomeGatewaysNotEmpty()) { + HomeGateway.mac = value; } else { - if (currentRegion != null && currentRegion.HomeGateways == null) { - var mHomeGateways = new HomeGateways () { GatewayUniqueId = value }; - List<HomeGateways> HomeGateways = new List<HomeGateways> (); - HomeGateways.Add (mHomeGateways); - currentRegion.HomeGateways = HomeGateways; + //2020-01-11 + if (HomeGateway != null) { + HomeGateway.mac = value; + } else { + HomeGateway = new HomeGatewayInfo () { mac = value}; } } } } - - public List<string> RometoUserInfoKeys = new List<string> (); + #endregion + + ///// <summary> + ///// 鏇存柊璁剧疆褰撳墠浣忓畢缃戝叧 + ///// 2020-01-11 + ///// </summary> + ///// <param name="mGatewayDataList"></param> + //public void SetNowHomeGateways (List<GatewayRes> mGatewayDataList) { + // try { + // if (currentRegion != null) { + // if (mGatewayDataList != null && mGatewayDataList.Count > 0) { + // var mMacList = new List<HomeGateways> (); + // foreach (var mGatewayRes in mGatewayDataList) { + // var mac = new HomeGateways (); + // mac.GatewayUniqueId = mGatewayRes.GatewayUniqueId; + // mMacList.Add (mac); + // } + // //HomeGateways = mMacList; + // } + // } + // } catch { + + // } + //} + + //public List<string> RometoUserInfoKeys = new List<string> (); + + /// <summary> + /// 鏈湴閫氫俊鍔犲瘑Key + /// </summary> + public string LocalEncryptKey = string.Empty; + + /// <summary> + /// 鏄惁鍔犲瘑瀵嗙爜楠岃瘉閫氳繃 + /// </summary> + public bool EncryptedPasswordCorrect = true; + /// <summary> + /// 鏄惁鍔犲瘑 + /// </summary> + public bool IsLocalEncrypt = false; + /// <summary> + /// 璁剧疆涓洪粯璁ゅ姞瀵嗭紝骞惰绠楀姞瀵咾ey + /// </summary> + private void SetLocalEncryptKey () + { + if (currentRegion != null) { + IsLocalEncrypt = true; + GenerateLocalEncryptionKey (); + //LocalEncryptKey = CommonPage.MyEncodingUTF8.GetString (GenerateLocalEncryptionKey ()); + } + } + + /// <summary> + /// 鑾峰彇16浣嶇殑key byte [] + /// </summary> + /// <returns></returns> + public byte [] GenerateLocalEncryptionKey () + { + byte [] aseKey = new byte [16]; + try { + //鐢熸垚鍔犲瘑Key + byte [] homeId = System.Text.Encoding.ASCII.GetBytes (currentRegion.Id); + Array.Copy (homeId, 0, aseKey, 0, 16 < homeId.Length ? 16 : homeId.Length); + LocalEncryptKey = System.Text.Encoding.ASCII.GetString (aseKey); + return aseKey; + + } catch { + return aseKey; + } + + } public string MasterAccountToken = ""; public string MasterAccountRequestBaseUrl = ""; - + /// <summary> + /// 鏄惁鑾峰彇涓� + /// 2020-01-11 + /// </summary> + bool bGetting = false; //public static List<string> LocalFiles = IO.FileUtils.ReadFiles (); /// <summary> /// 鑾峰彇鎺у埗鍒嗕韩椤圭洰(浣忓畢)璇锋眰淇℃伅 @@ -229,34 +373,37 @@ /// <param name="mSharedHid"></param> public void CheckIfNeedGetMasterAccountToken () { - //2020-01-08 鍒ゆ柇鏄惁鍒嗕韩杩囨潵鐨勪綇瀹� - if (CurrentRegion != null && CurrentRegion.IsOthreShare) { - //MainPage.IsAdministrator = UserConfig.Instance.CurrentRegion.IsOthreShare; - //璇锋眰涓昏处鍙穞oken - System.Threading.Tasks.Task.Run (() => { - try { - //var mMainAccountId = UserConfig.Instance.CurrentRegion.MainUserDistributedMark; - //var mSharedHid = UserConfig.Instance.CurrentRegion.Id; - var requestObj = new GetSharedHomeApiControlObj () { - LoginAccessToken = MainPage.LoginUser.LoginTokenString, - MainAccountId = UserConfig.Instance.CurrentRegion.MainUserDistributedMark, - SharedHid = UserConfig.Instance.CurrentRegion.Id, + if (bGetting) return; - }; - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps (API.GetSharedHomeApiControl, requestJson); - if (revertObj.StateCode.ToUpper () == "SUCCESS") { - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<MemberAdministratorResult> (revertObj.ResponseData.ToString ()); - if (responseDataObj != null) { - MasterAccountToken = responseDataObj.RequestToken; - MasterAccountRequestBaseUrl = responseDataObj.RequestBaseUrl; - } - } - } catch { + ////2020-01-08 鍒ゆ柇鏄惁鍒嗕韩杩囨潵鐨勪綇瀹� + //if (currentRegion != null && currentRegion.IsOthreShare) { + // //MainPage.IsAdministrator = UserConfig.Instance.CurrentRegion.IsOthreShare; + // //璇锋眰涓昏处鍙穞oken + // System.Threading.Tasks.Task.Run (() => { + // try { + // bGetting = true; + // var requestObj = new GetSharedHomeApiControlObj () { + // LoginAccessToken = MainPage.LoginUser.LoginTokenString, + // MainAccountId = currentRegion.MainUserDistributedMark, + // SharedHid = currentRegion.Id, - } - }); - } + // }; + // var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); + // var revertObj = MainPage.RequestHttps (API.GetSharedHomeApiControl, requestJson); + // if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) { + // var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<MemberAdministratorResult> (revertObj.ResponseData.ToString ()); + // if (responseDataObj != null) { + // MasterAccountToken = responseDataObj.RequestToken; + // MasterAccountRequestBaseUrl = responseDataObj.RequestBaseUrl; + // } + // } + // } catch { + + // } finally { + // bGetting = false; + // } + // }); + //} } } -- Gitblit v1.8.0