From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 七月 2020 10:52:13 +0800 Subject: [PATCH] 2020-07-10-01 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs | 337 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 242 insertions(+), 95 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs index 49549c2..afe0b4c 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs @@ -56,18 +56,7 @@ /// 瀹夐槻鏁版嵁缂撳瓨 /// </summary> private Dictionary<int, SafeguardZoneInfo> dicAllZoneInfo = new Dictionary<int, SafeguardZoneInfo>(); - /// <summary> - /// 瀹夐槻涓婃姤淇℃伅 - /// </summary> - public List<SafeguardAlarmInfo> listAlarmInfo = new List<SafeguardAlarmInfo>(); - /// <summary> - /// 涓婁竴娆″畨闃蹭笂鎶ヤ俊鎭繚瀛樼殑鏂囦欢鍚嶅瓧(鑰冭檻鍒扮敤鎴锋湁鍙兘24鐐圭殑鏃跺�欙紝涓嶉��鍑篈PP) - /// </summary> - private string oldDeviceAlarmFile = string.Empty; - /// <summary> - /// 閿� - /// </summary> - private object objLock = new object(); + #endregion #region 鈻� 鍒锋柊瀹夐槻___________________________ @@ -88,7 +77,7 @@ this.ShowTipMsg(msg); return false; } - var mainWayId = HdlGatewayLogic.Current.GetGatewayId(mainGateway); + var mainWayId = mainGateway.GwId; //涓婚鏁板浐瀹�5+3+1 int topicCount = 9; @@ -115,7 +104,7 @@ { var jobject = Newtonsoft.Json.Linq.JObject.Parse(message); - var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Device.Safeguard.ErrorResponData>(jobject["Data"].ToString()); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString()); if (temp != null) { string msg = HdlCheckLogic.Current.CheckCommonErrorCode(temp.Error); @@ -188,7 +177,7 @@ try { var jObject = new Newtonsoft.Json.Linq.JObject() { { "Cluster_ID", 0 }, { "Command", 4036 } }; - await mainGateway.Send("Security/GetSecurityInfo", jObject.ToString()); + mainGateway.Send("Security/GetSecurityInfo", jObject.ToString()); } catch { } @@ -245,7 +234,7 @@ //澶勭悊璁惧 foreach (var data2 in allData.DeviceList) { - string mainKey = data2.MacAddr + data2.Epoint; + string mainKey = LocalDevice.Current.GetDeviceMainKeys(data2.MacAddr, data2.Epoint); //浼犳劅鍣ㄨ澶囦俊鎭� var Deviceinfo = new Safeguard.ZoneDeviceListData(); Deviceinfo.IsBypass = data2.IsBypass; @@ -306,7 +295,7 @@ if (data.Type == 0) { //鏈湴鏄惁鏈夎繖涓澶� - string mainKey = data.DeviceAddr + data.Epoint; + string mainKey = LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint); //鎶ヨ淇℃伅 zoneInfo.dicAlarmDevice[mainKey] = data; CommonDevice device = LocalDevice.Current.GetDevice(mainKey); @@ -570,7 +559,7 @@ //涓�鎵硅澶囬噷闈紝鎴愬姛娣诲姞鐨� if (data.Status == 0) { - listSuccess.Add(data.MacAddr + data.Epoint); + listSuccess.Add(LocalDevice.Current.GetDeviceMainKeys(data.MacAddr, data.Epoint)); } else if (data.Status == 1) { @@ -756,7 +745,7 @@ { if (data.Status == 0) { - listKeys.Add(data.MacAddr + data.Epoint); + listKeys.Add(LocalDevice.Current.GetDeviceMainKeys(data.MacAddr, data.Epoint)); } } @@ -969,13 +958,14 @@ /// <summary> /// 淇敼鐢ㄦ埛瀵嗙爜(涓嶅瓨鍦ㄦ椂锛屽垯鏂板缓) /// </summary> - /// <param name="userId"></param> - /// <param name="password"></param> + /// <param name="userId">鐢ㄦ埛ID</param> + /// <param name="password">瀵嗙爜</param> + /// <param name="passWordTips">瀵嗙爜鎻愮ず</param> /// <returns></returns> - public async Task<bool> ChangedUserPassword(int userId, string password) + public async Task<bool> ChangedUserPassword(int userId, string password, string passWordTips) { //鍒涘缓鏂扮敤鎴� - var result = await Safeguard.SetUserPasswordAsync(userId, password, this.GetLoginToken()); + var result = await Safeguard.SetUserPasswordAsync(userId, password, passWordTips, this.GetLoginToken()); if (result == null || result.setUserPasswordResponseData == null) { if (userId != 5) @@ -1069,6 +1059,37 @@ return 0; } + /// <summary> + /// 娣诲姞瀵嗙爜鐨勫娉� + /// </summary> + /// <param name="userId">鐢ㄦ埛ID</param> + /// <param name="password">缃戝叧璇撮渶瑕佸師鏉ョ殑瀵嗙爜,涔熶笉鐭ラ亾涓轰粈涔�</param> + /// <param name="passWordTips">瀵嗙爜澶囨敞</param> + /// <returns></returns> + public async Task<bool> AddPassWordTips(int userId, string password, string passWordTips) + { + var result = await Safeguard.SetPassWordTipsAsync(userId, password, passWordTips, this.GetLoginToken()); + if (result == null || result.setUserPasswordResponseData == null) + { + //淇敼澶囨敞淇℃伅澶辫触 + string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationFail); + //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg + msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result); + + this.ShowErrorMsg(msg); + return false; + } + if (result.setUserPasswordResponseData.Result != 0) + { + //淇敼澶囨敞淇℃伅澶辫触 + string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationFail); + + this.ShowErrorMsg(msg); + return false; + } + return true; + } + #endregion #region 鈻� 鎶ヨ鐩爣___________________________ @@ -1133,10 +1154,10 @@ } else if (data.Type == "1") { - var scene = Common.SceneRoomUI.AllSceneRoomUIList.Find((obj) => obj.sceneUI.Id == data.ScenesId); + var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(data.ScenesId); if (scene != null) { - string msg = scene.sceneUI.Name + "\r\n"; + string msg = scene.Name + "\r\n"; //鐩爣鍦烘櫙涓嶅瓨鍦� msg += Language.StringByID(R.MyInternationalizationString.uTargetSceneIsNotExsit); this.ShowTipMsg(msg); @@ -1387,6 +1408,13 @@ { return GarrisonMode.None; } + //鍒ゆ柇鏈夋病鏈夊叾浠栭�昏緫鍘讳慨鏀逛簡甯冮槻妯″紡 + //鎵�浠ュ啀娆¤幏鍙栨ā寮� + var safetyMode = await this.GetSafetyMode(); + if (safetyMode != null) + { + return GarrisonMode.None; + } //鍙傛暟 var Pra = new Safeguard.EnableModeData(); @@ -1472,10 +1500,6 @@ this.ShowErrorMsg(msg); return GarrisonMode.RemoveGarrison; } - - //淇濆瓨甯冮槻鎿嶄綔淇℃伅鍒版湰鍦� - HdlAlarmsLogic.Current.SaveSafeguardAlarmInfo(garrison); - return garrison; } @@ -1576,13 +1600,6 @@ this.ShowErrorMsg(msg); return -1; } - - if (garrison == GarrisonMode.RemoveGarrison) - { - //淇濆瓨甯冮槻鎿嶄綔淇℃伅鍒版湰鍦� - HdlAlarmsLogic.Current.SaveSafeguardAlarmInfo(garrison); - } - return 1; } @@ -1608,22 +1625,13 @@ /// </summary> public async Task<string> ShowInputUserPasswordForm() { - //鑾峰彇褰撳墠姝e湪婵�娲荤殑鐢婚潰 - var form = UserCenterLogic.GetNowActionForm(); - if (form == null) - { - //杩欑鎯呭喌搴旇涓嶅瓨鍦� - this.ShowErrorMsg("ERROR:Not Found The ActionForm!"); - return null; - } - - DialogInputFrameControl Dialogform = null; + NumberPswInputDialogForm Dialogform = null; bool isShowingProgressBar = false; string ProgressBarText = string.Empty; string pasword = null; - Application.RunOnMainThread(() => + HdlThreadLogic.Current.RunMain(() => { isShowingProgressBar = CommonPage.Loading.Visible; ProgressBarText = CommonPage.Loading.Text; @@ -1633,21 +1641,12 @@ CommonPage.Loading.Hide(); } - Dialogform = new DialogInputFrameControl(form, DialogFrameMode.OnlyPassword); - //鐢ㄦ埛瀵嗙爜 - Dialogform.SetTitleText(Language.StringByID(R.MyInternationalizationString.uUserPassword)); - //璁剧疆鎻愮ず淇℃伅:璇疯緭鍏ョ敤鎴峰瘑鐮� - Dialogform.SetTipText(Language.StringByID(R.MyInternationalizationString.uPleaseInputUserPassword)); + Dialogform = new NumberPswInputDialogForm(); + Dialogform.AddForm(Language.StringByID(R.MyInternationalizationString.uPleaseInputUserPassword), 4); //纭鎸夐挳 - Dialogform.ComfirmClickEvent += ((textValue) => + Dialogform.FinishInputEvent += ((textValue) => { - if (textValue == string.Empty) - { - this.ShowErrorMsg(Language.StringByID(R.MyInternationalizationString.uPleaseInputUserPassword)); - return; - } - Dialogform.CloseDialog(); - + Dialogform.CloseForm(); //鐢ㄦ埛瀵嗙爜 pasword = textValue; //鍔犲瘑瀵嗙爜 @@ -1842,36 +1841,66 @@ /// <summary> /// 璁剧疆鑳佽揩鐨勮仈绯讳汉鏂瑰紡 /// </summary> - /// <param name="dicPhone">keys:鑱旂郴鏂瑰紡 values:鍦板尯鐮�</param> + /// <param name="listPhone">鍦板尯鐮�-鑱旂郴鏂瑰紡</param> + /// <param name="listNote">鑱旂郴浜哄娉�</param> + /// <param name="addPhone">鏄惁鏄柊寤鸿仈绯讳汉,false鐨勬椂鍊�,鍙敼澶囨敞</param> /// <returns></returns> - public async Task<bool> SetCoercePhoneNumber(Dictionary<string, string> dicPhone) + public async Task<bool> SetCoercePhoneNumber(List<string> listPhone, List<string> listNote, bool addPhone = true) { - var Pra = new Safeguard.SetCoercePhoneNumberData(); - var Actonobj = new Safeguard.PushTargetActionObj(); - Actonobj.Type = 2; - Pra.Actions.Add(Actonobj); - Pra.LoginToken = this.GetLoginToken(); - - foreach (string phoneNum in dicPhone.Keys) + if (addPhone == true) { - var phoneInfo = new Safeguard.PushTargetInfo(); - Actonobj.PushTarget.Add(phoneInfo); - //鐢佃瘽鍙风爜 - phoneInfo.PushNumber = dicPhone[phoneNum] + "-" + phoneNum; - } + var Pra = new Safeguard.SetCoercePhoneNumberData(); + var Actonobj = new Safeguard.PushTargetActionObj(); + Actonobj.Type = 2; + Pra.Actions.Add(Actonobj); + Pra.LoginToken = this.GetLoginToken(); - var result = await Safeguard.SetCoercePhoneNumberAsync(Pra); - if (result == null || result.setCoercePhoneNumberResponseData == null || result.setCoercePhoneNumberResponseData.Result != 0) + for (int i = 0; i < listPhone.Count; i++) + { + var phoneInfo = new Safeguard.PushTargetInfo(); + Actonobj.PushTarget.Add(phoneInfo); + //鐢佃瘽鍙风爜 + phoneInfo.PushNumber = listPhone[i]; + } + var result = await Safeguard.SetCoercePhoneNumberAsync(Pra); + if (result == null || result.setCoercePhoneNumberResponseData == null || result.setCoercePhoneNumberResponseData.Result != 0) + { + //淇敼鑳佽揩鑱旂郴鏂瑰紡澶辫触 + string msg = Language.StringByID(R.MyInternationalizationString.uChangedCoercePhoneNumberFail); + //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg + msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result); + + this.ShowErrorMsg(msg); + return false; + } + } + for (int i = 0; i < listNote.Count; i++) { - //淇敼鑳佽揩鑱旂郴鏂瑰紡澶辫触 - string msg = Language.StringByID(R.MyInternationalizationString.uChangedCoercePhoneNumberFail); - //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg - msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result); - - this.ShowErrorMsg(msg); - return false; + var result = await Safeguard.SetCoercePhoneNumberNoteAsync(listPhone[i], listNote[i]); + if (result == null) + { + //淇敼澶囨敞淇℃伅澶辫触 + string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationFail); + //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg + msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, null, "鍥炲瓒呮椂"); + this.ShowErrorMsg(msg); + return false; + } + if (result.Result == -2) + { + //閿欒:缃戝叧瀵硅薄涓㈠け + string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg); + this.ShowErrorMsg(msg); + return false; + } + if (result.Result != 0) + { + //淇敼澶囨敞淇℃伅澶辫触 + string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationFail); + this.ShowErrorMsg(msg); + return false; + } } - return true; } @@ -1909,31 +1938,63 @@ return true; } + /// <summary> + /// 缁欒仈绯诲彿鐮佹坊鍔犲娉ㄧ殑淇℃伅 + /// </summary> + private class AddPushNumberNoteInfo + { + /// <summary> + /// 鍥哄畾253 + /// </summary> + public int ActionType = 253; + /// <summary> + /// LoginToken + /// </summary> + public string LoginToken = string.Empty; + /// <summary> + /// 鍦板尯鐮�-鑱旂郴鏂瑰紡 + /// </summary> + public string PushNumber = string.Empty; + /// <summary> + /// 鑱旂郴浜哄彿鐮佸娉紝鏈�澶�63byte + /// </summary> + public string PushNumberNote = string.Empty; + } + #endregion - #region 鈻� 鎶ヨ鐩爣鐘舵�佺殑缈昏瘧鏂囨湰_____________ + #region 鈻� 鎵ц鐩爣鐘舵�佺殑缈昏瘧鏂囨湰_____________ /// <summary> - /// 鑾峰彇鐏厜绫诲瀷鐨勬姤璀︾洰鏍囩殑鐘舵�佹枃鏈� + /// 鑾峰彇鎵ц鐩爣鐨勭姸鎬佹枃鏈� /// </summary> /// <param name="listTaskInfo">鍔ㄤ綔瀵硅薄,鍙互涓虹┖</param> /// <returns></returns> - public string GetLightAlarmStatuText(List<Safeguard.TaskListInfo> listTaskInfo) + public string GetAdjustTargetStatuText(List<Safeguard.TaskListInfo> listTaskInfo) { - if (listTaskInfo == null) + if (listTaskInfo == null || listTaskInfo.Count == 0) { //鏃犲姩浣� return Language.StringByID(R.MyInternationalizationString.uNotAction); } //瑕佽�冭檻瀹冪殑鎺掑垪椤哄簭(鍙互鎸夐渶姹傚彉鏇寸紪鍙�) Dictionary<int, string> dicSort = new Dictionary<int, string>(); + //鏈�澶х紪鍙� + int MaxNo = 4; //寮�鍏崇殑浣嶇疆缂栧彿 int ControlNo = 0; //鐧惧垎姣旂殑浣嶇疆缂栧彿 int persentNo = 1; + //绌鸿皟娓╁害鐨勪綅缃紪鍙� + int temparetureNo = 2; + //绌鸿皟妯″紡鐨勪綅缃紪鍙� + int modelNo = 3; + //绌鸿皟椋庨�熺殑浣嶇疆缂栧彿 + int windNo = 4; foreach (var info in listTaskInfo) { + #region 鈻� 寮�鍏虫帶鍒禵___ //寮�鍏虫帶鍒� if (info.TaskType == 1) { @@ -1948,11 +2009,25 @@ dicSort[ControlNo] = Language.StringByID(R.MyInternationalizationString.uSimpleClose); } } + #endregion + + #region 鈻� 浜害璋冭妭____ //浜害璋冭妭 else if (info.TaskType == 3) { - dicSort[persentNo] = info.Data1 + "%"; + if (info.Data1 == 0) + { + //鍏� + dicSort[persentNo] = Language.StringByID(R.MyInternationalizationString.uSimpleClose); + } + else + { + dicSort[persentNo] = $"{(int)(info.Data1 * 1.0 / 254 * 100)}%"; + } } + #endregion + + #region 鈻� 绐楀笜璁惧____ //绐楀笜璁惧(瀹冪殑寮�鍏冲拰寮�鍏虫帶鍒舵槸鍙嶈繃鏉ョ殑) else if (info.TaskType == 6) { @@ -1972,13 +2047,84 @@ dicSort[persentNo] = info.Data2 + "%"; } } + #endregion + + #region 鈻� 绌鸿皟璁惧____ + //绌鸿皟璁惧 + else if (info.TaskType == 5) + { + if (info.Data1 == 3) + { + if (info.Data2 == 0) + { + return Language.StringByID(R.MyInternationalizationString.uSimpleClose); + } + else if (info.Data2 == 1) + { + //鑷姩 + dicSort[modelNo] = Language.StringByID(R.MyInternationalizationString.Mode_Auto); + } + else if (info.Data2 == 3) + { + //鍒跺喎 + dicSort[modelNo] = Language.StringByID(R.MyInternationalizationString.Mode_Cool); + } + else if (info.Data2 == 4) + { + //鍒剁儹 + dicSort[modelNo] = Language.StringByID(R.MyInternationalizationString.Mode_Heat); + } + else if (info.Data2 == 7) + { + //閫侀 + dicSort[modelNo] = Language.StringByID(R.MyInternationalizationString.Mode_FanOnly); + } + else if (info.Data2 == 8) + { + //闄ゆ箍 + dicSort[modelNo] = Language.StringByID(R.MyInternationalizationString.Mode_Dry); + } + } + else if (info.Data1 == 4 || info.Data1 == 5|| info.Data1 == 7) + { + //娓╁害 + dicSort[temparetureNo] = $"{ info.Data2 / 100}鈩�"; + } + else if (info.Data1 == 6) + { + if (info.Data2 == 1) + { + //浣庨 + dicSort[windNo] = Language.StringByID(R.MyInternationalizationString.Fan_Low); + } + else if (info.Data2 == 2) + { + //涓 + dicSort[windNo] = Language.StringByID(R.MyInternationalizationString.Fan_Middle); + } + else if (info.Data2 == 3) + { + //楂橀 + dicSort[windNo] = Language.StringByID(R.MyInternationalizationString.Fan_Height); + } + } + } + #endregion + } + //濡傛灉寮�鍏冲拰鐧惧垎姣斾竴璧峰瓨鍦ㄧ殑璇�,鍒欎笉鏄剧ず寮�鍏虫枃瀛� + if (dicSort.ContainsKey(ControlNo) == true && dicSort.ContainsKey(persentNo) == true) + { + dicSort.Remove(ControlNo); } //鎷兼帴鏂囨湰 string txtvalue = string.Empty; - for (int i = 0; i < dicSort.Count; i++) + for (int i = 0; i <= MaxNo; i++) { - txtvalue += dicSort[i] + " "; + if (dicSort.ContainsKey(i) == true) + { + txtvalue += dicSort[i] + " "; + } } return txtvalue.Trim(); @@ -2008,7 +2154,7 @@ bool success = false; //瓒呮椂鏃堕棿 int TimeOut = 0; - string checkTopic = HdlGatewayLogic.Current.GetGatewayId(realWay) + "/Security/AdminSetNewPassword_Respon"; + string checkTopic = realWay.GwId + "/Security/AdminSetNewPassword_Respon"; Action<string, string> getResultAction = (topic, message) => { try @@ -2031,7 +2177,7 @@ var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 4033 } }; var data = new Newtonsoft.Json.Linq.JObject { { "HomeId", Common.Config.Instance.HomeId }, { "Password", password } }; jObject.Add("Data", data); - await realWay.Send("Security/AdminSetNewPassword", jObject.ToString()); + realWay.Send("Security/AdminSetNewPassword", jObject.ToString()); } catch { @@ -2169,10 +2315,11 @@ /// 鑾峰彇鐧婚檰鑰呯殑Token(濂藉儚绠$悊鍛樼櫥闄嗙殑鏃跺��,闇�瑕佸彉鏇碩oken,鎵�浠ユ殏涓斿畾涔変竴涓嚱鏁板嚭鏉�) /// </summary> /// <returns></returns> - private string GetLoginToken() + public string GetLoginToken() { //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken - return UserCenterLogic.GetConnectMainToken(); + //return UserCenterLogic.GetConnectMainToken(); + return Config.Instance.Token; } #endregion -- Gitblit v1.8.0