From 05ce435c3b58e53eeab04c672affdeeab75f3036 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 15 十一月 2019 14:41:39 +0800 Subject: [PATCH] 2019.11.15-1 --- ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs | 274 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 190 insertions(+), 84 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs index b820eb9..b392c11 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs @@ -17,7 +17,6 @@ this.doorLock = doorLock; BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor; ZigBee.Device.ZbGateway.StatusList.Add(this); - ReadTempPasswordData(); } #region 鈼� 鍙橀噺鐢虫槑__________________________ @@ -31,11 +30,12 @@ DateTime cunIVDateTime; #endregion - /// <summary> - /// UI鏄剧ず + /// <summary> + /// UI鏄剧ず /// </summary> public void Show() { + ReadTempPasswordData(); this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.TemporaryPassword)); EventHandler<MouseEventArgs> eHandlerBack = (sender, e) => @@ -52,7 +52,7 @@ #region btnDelFrameLayout var btnDelFrameLayout = new FrameLayout { - X = Application.GetRealWidth(953), + X = Application.GetRealWidth(953 - 116), Height = Application.GetRealHeight(69), Width = Application.GetRealWidth(1080 - 953), }; @@ -112,9 +112,31 @@ delBackgroundFrameLayout.AddChidren(btnDelText); EventHandler<MouseEventArgs> eHandler2 = (sender2, e2) => - { - ClearEventHandler(btnDelText, dialog); - }; + { + var dialog1 = new Dialog { }; + var doorDialog = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog1, Language.StringByID(R.MyInternationalizationString.Tip)); + doorDialog.Show(); + doorDialog.dialogMidFraFrameLayout.Width = Application.GetRealWidth(415); + doorDialog.dialogMidFraFrameLayout.Height = Application.GetRealHeight(58); + doorDialog.dialogMidFraFrameLayout.X = Application.GetRealWidth(190); + doorDialog.dialogMidFraFrameLayout.Y = Application.GetRealHeight(202); + doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText); + doorDialog.dialogMidText.Text = Language.StringByID(R.MyInternationalizationString.SureToDeleteTempPassword); + doorDialog.dialogMidText.TextSize = 14; + doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText); + doorDialog.dialogBtnConfirm.Text = Language.StringByID(R.MyInternationalizationString.Confrim); + doorDialog.dialogBtnCancel.MouseUpEventHandler += (sender1, e1) => + { + dialog.Close(); + dialog1.Close(); + }; + doorDialog.dialogBtnConfirm.MouseUpEventHandler += (sender1, e1) => + { + dialog.Close(); + dialog1.Close(); + ClearEventHandler(btnDelText, dialog1); + }; + }; delBackgroundFrameLayout.MouseDownEventHandler += eHandler2; btnDelIcon2.MouseDownEventHandler += eHandler2; btnDelText.MouseDownEventHandler += eHandler2; @@ -161,6 +183,8 @@ Text = Language.StringByID(R.MyInternationalizationString.ClickGenerate), TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText, TextSize = 12, + Visible = true, + Enable = true, }; topMidTopFrameLayout.AddChidren(topPic); @@ -243,11 +267,15 @@ { btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; btnFinifh.Enable = true; + topPic.Visible = true; + topPic.Enable = true; } else { btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; btnFinifh.Enable = false; + topPic.Visible = false; + topPic.Enable = false; } if (string.IsNullOrEmpty(doorLock.LocalTempPassword)) { @@ -256,12 +284,13 @@ randomPassword.X = Application.GetRealWidth(215); randomPassword.TextColor = Shared.Common.ZigbeeColor.Current.XMGray4; Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true; + topPic.Visible = true; + topPic.Enable = true; } else { randomPassword.Text = doorLock.LocalTempPassword; temPasswordVisiable.Visible = true; - if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable) { randomPassword.SecureTextEntry = false; @@ -431,6 +460,29 @@ btnNext.MouseDownEventHandler += hander; } + var modifyTempPasswordTip1 = new Button() + { + Height = Application.GetRealHeight(49), + Y = Application.GetRealHeight(628), + TextID = R.MyInternationalizationString.ModifyTempPasswordTip1, + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextSize = 12, + TextAlignment = TextAlignment.Center, + }; + bottomFrameLayout.AddChidren(modifyTempPasswordTip1); + + var modifyTempPasswordTip2 = new Button() + { + Height = Application.GetRealHeight(49), + Y = modifyTempPasswordTip1.Bottom, + Radius = (uint)Application.GetRealHeight(120) / 2, + TextID = R.MyInternationalizationString.ModifyTempPasswordTip2, + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextSize = 12, + TextAlignment = TextAlignment.Center, + }; + bottomFrameLayout.AddChidren(modifyTempPasswordTip2); + btnFinifh = new Button() { Width = Application.GetRealWidth(907), @@ -460,7 +512,7 @@ Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); try { - if (doorLock.LocalTempPassword == "") + if (string.IsNullOrEmpty(doorLock.LocalTempPassword)) { //璇�"鐐瑰嚮鐢熸垚"涓存椂瀵嗙爜锛� Application.RunOnMainThread(() => @@ -469,44 +521,23 @@ }); return; } - if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour == 100) + + var dNow = DateTime.Now; + var validDateTime = new DateTime(dNow.Year, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute - 1, dNow.Second); + var inValidDateTime = new DateTime(dNow.Year, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute, dNow.Second); + if (DateTime.Compare(inValidDateTime, validDateTime) < 0) { - //璇疯缃敓鏁堟椂闂达紱 + //鏃犳晥鐨勬椂闂磋缃� Application.RunOnMainThread(() => { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip2), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); - }); - return; - } - if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth == 0) - { - //璇疯缃敓鏁堟棩鏈燂紱 - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip3), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); - }); - return; - } - if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour == 100) - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip4), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); - }); - return; - } - if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth == 0) - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip5), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetTempPasswordTip), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); }); return; } - var dNow = DateTime.Now; - var validDateTime = new DateTime(dNow.Year, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute, dNow.Second); - var inValidDateTime = new DateTime(dNow.Year, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour, Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute, dNow.Second); + var startTimeStr = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(validDateTime); + var endTimeStr = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(inValidDateTime); + action = (topic, data) => { var gatewayID = topic.Split('/')[0]; @@ -548,35 +579,57 @@ } //璁剧疆涓存椂瀵嗙爜鍒伴棬閿� var addOrModifyResult = await doorLock.TempPasswordAsync(doorLock.LocalTempPassword, validDateTime, inValidDateTime); - if (addOrModifyResult != null && addOrModifyResult.responseData != null && addOrModifyResult.responseData.status == 0) + if (addOrModifyResult != null && addOrModifyResult.responseData != null) { - System.Threading.Thread.Sleep(1000); - if (doorLock.tempPasswordObject != null) + if (addOrModifyResult.responseData.status == 0) { - var addDoorLockTempPasswordData = new ZigBee.Device.DoorLock.AddDoorLockTempPasswordData(); - addDoorLockTempPasswordData.TempPwd = doorLock.tempPasswordObject.TempPassword; - if (doorLock.DeviceAddr != null) + System.Threading.Thread.Sleep(1000); + if (doorLock.tempPasswordObject != null) { - addDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + var addDoorLockTempPasswordData = new ZigBee.Device.DoorLock.AddDoorLockTempPasswordData(); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + addDoorLockTempPasswordData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + addDoorLockTempPasswordData.IsOtherAccountCtrl = true; + } + addDoorLockTempPasswordData.TempPwd = doorLock.tempPasswordObject.TempPassword; + if (doorLock.DeviceAddr != null) + { + addDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + } + addDoorLockTempPasswordData.ValidBeginTime = doorLock.tempPasswordObject.ValidTime; + addDoorLockTempPasswordData.ValidEndTime = doorLock.tempPasswordObject.InValidTime; + addDoorLockTempPasswordData.TempPwdId = doorLock.tempPasswordObject.UserId.ToString(); + //瀛樺埌浜� + var result1 = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLockPwd", addDoorLockTempPasswordData); + if (result1 == null) + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); + }); + return; + } + if (result1.StateCode != "Success") + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetFailedXm1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); + }); + return; + } + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = false; + doorLock.LocalTempPassword = doorLock.tempPasswordObject.TempPassword; + TimeDateData(doorLock.tempPasswordObject.ValidTime, doorLock.tempPasswordObject.InValidTime); } - addDoorLockTempPasswordData.ValidBeginTime = doorLock.tempPasswordObject.ValidTime; - addDoorLockTempPasswordData.ValidEndTime = doorLock.tempPasswordObject.InValidTime; - addDoorLockTempPasswordData.TempPwdId = doorLock.tempPasswordObject.UserId.ToString(); - //瀛樺埌浜� - var result1 = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/AddDoorLockPwd", addDoorLockTempPasswordData); - if (result1 != null && result1.StateCode != "Success") + else { Application.RunOnMainThread(() => { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetFailedXm1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetFailedXm), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); }); return; } - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;//XMUnSelect XMBlack - btnFinifh.Enable = false; - Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = false; - doorLock.LocalTempPassword = doorLock.tempPasswordObject.TempPassword; - TimeDateData(doorLock.tempPasswordObject.ValidTime, doorLock.tempPasswordObject.InValidTime); } else { @@ -591,12 +644,15 @@ { Application.RunOnMainThread(() => { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.SetFailedXm), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); }); return; } } - catch { } + catch (Exception ex) + { + var mess = ex.Message; + } finally { Application.RunOnMainThread(() => @@ -622,29 +678,58 @@ { var passData = doorLock.SetUserAccessData(doorLock.tempPasswordObject.UserId, ZigBee.Device.DoorLock.AccessType.DelCurrentUser); var resultData = await doorLock.DefaultControlAsync(passData); - if (resultData != null && resultData.defaultControlResponseData != null && resultData.defaultControlResponseData.status == 0) + if (resultData != null && resultData.defaultControlResponseData != null) { - var delDoorLockTempPasswordData = new ZigBee.Device.DoorLock.DelDoorLockTempPasswordData(); - if (doorLock.DeviceAddr != null) + if (resultData.defaultControlResponseData.status == 0) { - delDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; - } - var result1 = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLockPwd", delDoorLockTempPasswordData); - if (result1 != null && result1 != null && result1.StateCode == "Success") - { - doorLock.tempPasswordObject = null; - doorLock.LocalTempPassword = ""; - TimeDateData(DateTime.Now, DateTime.Now, true); - Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = false; + var delDoorLockTempPasswordData = new ZigBee.Device.DoorLock.DelDoorLockTempPasswordData(); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + delDoorLockTempPasswordData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + delDoorLockTempPasswordData.IsOtherAccountCtrl = true; + } + if (doorLock.DeviceAddr != null) + { + delDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; + } + var result1 = await ZigBee.Device.DoorLock.SendDoorLockToServer("DoorLock/DelDoorLockPwd", delDoorLockTempPasswordData); + if (result1 != null) + { + if (result1.StateCode == "Success") + { + doorLock.tempPasswordObject = null; + doorLock.LocalTempPassword = ""; + TimeDateData(DateTime.Now, DateTime.Now, true); + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = false; + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true; + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ClearFailedXm1) + ".", Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); + }); + } + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); + }); + } } else { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ClearFailedXm1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ClearFailedXm1), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); + }); } } else { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ClearFailedXm), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDelText); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDelText); } } @@ -673,23 +758,43 @@ try { var getDoorLockTempPasswordData = new ZigBee.Device.DoorLock.GetDoorLockTempPasswordData(); + if (UserCenterResourse.UserInfo.AuthorityNo != 1) + { + getDoorLockTempPasswordData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); + getDoorLockTempPasswordData.IsOtherAccountCtrl = true; + } if (doorLock.DeviceAddr != null) { getDoorLockTempPasswordData.LocalDoorLockId = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; } var result = await ZigBee.Device.DoorLock.GetDoorLockTempPasswordFromServer("DoorLock/GetDoorLockPwdPagger", getDoorLockTempPasswordData); - if (result != null && result.PageData != null) + if (result != null) { - foreach (var curDoorLockTempPaw in result.PageData) + if (result.PageData.Count != 0) { - var tpObj = new ZigBee.Device.DoorLock.TempPasswordObject(); - tpObj.UserId = int.Parse(curDoorLockTempPaw.TempPwdId); - tpObj.ValidTime = curDoorLockTempPaw.ValidBeginTime; - tpObj.InValidTime = curDoorLockTempPaw.ValidEndTime; - doorLock.LocalTempPassword = tpObj.TempPassword = curDoorLockTempPaw.TempPwd; - doorLock.tempPasswordObject = tpObj; - TimeDateData(doorLock.tempPasswordObject.ValidTime, doorLock.tempPasswordObject.InValidTime); + foreach (var curDoorLockTempPaw in result.PageData) + { + var tpObj = new ZigBee.Device.DoorLock.TempPasswordObject(); + tpObj.UserId = int.Parse(curDoorLockTempPaw.TempPwdId); + tpObj.ValidTime = curDoorLockTempPaw.ValidBeginTime; + tpObj.InValidTime = curDoorLockTempPaw.ValidEndTime; + doorLock.LocalTempPassword = tpObj.TempPassword = curDoorLockTempPaw.TempPwd; + doorLock.tempPasswordObject = tpObj; + TimeDateData(doorLock.tempPasswordObject.ValidTime, doorLock.tempPasswordObject.InValidTime); + } } + else + { + doorLock.tempPasswordObject = null; + doorLock.LocalTempPassword = ""; + TimeDateData(DateTime.Now, DateTime.Now, true); + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InTempPasswordVisiable = false; + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.IsModify = true; + } + } + else + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.CloudServerResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(this.btnTip); } } catch { } @@ -759,6 +864,7 @@ Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth = cur.Month; Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay = cur.Day; Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay = cur.Day + 1; + //doorLock.ReSave(); } if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour < 10) { -- Gitblit v1.8.0