From 0d9f64668fd7350d6a21fd157e32009a96d98134 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期三, 16 十二月 2020 13:09:08 +0800 Subject: [PATCH] 新云端代码Ver1.2 --- ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs | 341 ++++++++++++++++++++------------------------------------ 1 files changed, 120 insertions(+), 221 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs b/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs index ea8bce7..27d86d1 100755 --- a/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs +++ b/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs @@ -32,6 +32,9 @@ /// <param name="account">鐧婚檰璐﹀彿</param> public void ShowForm(string account = "") { + //閲嶇疆浜戠榛樿鐨勮闂湴鍧�,璐﹀彿鐧婚檰鍚庝細鑷姩鍘昏鍙栬处鍙锋墍鍦ㄧ殑鍖哄煙鍦板潃 + HdlHttpLogic.Current.ResetDefultHttpsHost(); + if (account == string.Empty) { //浣跨敤涓婁竴娆$櫥闄嗙殑璐﹀彿 @@ -172,9 +175,9 @@ //妫�娴嬫槸鍚﹀悓鎰忔湇鍔″崗璁� if (this.CheckPrivacyPolicy() == false) { return; } - var registerPage = new AccountRegister(); + var registerPage = new AccountRegisterForm(); CommonPage.Instance.AddChidren(registerPage); - registerPage.Show(); + registerPage.ShowForm(string.Empty); }; //寰俊鍥炬爣 @@ -208,6 +211,7 @@ btnTiyan.CanClick = false; //鏄剧ず鍚姩椤� + HdlControlLogic.Current.ShowLoginLoadView(); HdlThreadLogic.Current.RunThread(() => { //鍒濆鍖栧叏閮ㄤ綋楠屾暟鎹� @@ -392,9 +396,9 @@ //妫�娴嬫槸鍚﹀悓鎰忔湇鍔″崗璁� if (this.CheckPrivacyPolicy() == false) { return; } - var forgot = new AccountForgetPWD(); + var forgot = new AccountForgotPasswordForm(); CommonPage.Instance.AddChidren(forgot); - forgot.Show(); + forgot.ShowForm(); }; //鐧婚檰鎸夐挳 @@ -580,7 +584,7 @@ return; } //鍙戦�侀獙璇佺爜 - hadSendCode = this.SendVerCode(btnSendCode, nowInputAccount, i_div); + hadSendCode = this.SendVerCode(btnSendCode, nowInputAccount); }; //搴曠嚎 @@ -617,9 +621,9 @@ //妫�娴嬫槸鍚﹀悓鎰忔湇鍔″崗璁� if (this.CheckPrivacyPolicy() == false) { return; } - var forgot = new AccountForgetPWD(); + var forgot = new AccountForgotPasswordForm(); CommonPage.Instance.AddChidren(forgot); - forgot.Show(); + forgot.ShowForm(); }; //鐧婚檰鎸夐挳 @@ -632,7 +636,7 @@ btnLogin.ButtonClickEvent += (sender, e) => { //楠岃瘉鐮佺櫥闄� - this.LoginByVerCode(nowInputAccount, txtVerCode.Text.Trim(), i_div); + this.LoginByVerCode(nowInputAccount, txtVerCode.Text.Trim()); }; return frameBack; } @@ -657,7 +661,7 @@ int btnWidth = 0; //鐗规畩鐨勮宸�� - int speceilValue = ControlCommonResourse.TwoTextSpace; + int speceilValue = HdlControlResourse.TwoTextSpace; //鎴戝凡闃呰骞跺悓鎰� var btnMsg1 = new NormalViewControl(100, 90, true); @@ -731,11 +735,14 @@ btnIcon.InitControl(); btnIcon.X = -btnIcon.XOffset; btnIcon.UseClickStatu = false; + btnIcon.ButtonClickEvent += (sender, e) => { btnIcon.IsSelected = !btnIcon.IsSelected; isAgreePrivacyPolicy = btnIcon.IsSelected; }; + btnIcon.IsSelected = Config.Instance.AcceiptPolicy; + isAgreePrivacyPolicy = Config.Instance.AcceiptPolicy; btnMsg1.X = btnIcon.btnIcon.Width + Application.GetRealWidth(23); frameRow.AddChidren(btnMsg1); @@ -775,17 +782,10 @@ HdlThreadLogic.Current.RunThread(() => { - //鐧婚檰鍙傛暟 - var pra = new SendDataToServer.LoginObj(); - pra.Account = i_account; - pra.Password = i_psw; - - //璁块棶鎺ュ彛 - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(pra); - var result = CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/Login", System.Text.Encoding.UTF8.GetBytes(requestJson)); - + //鐧婚檰 + var result = HdlAccountLogic.Current.LoginByPassword(i_account, i_psw); //澶勭悊鐧婚檰鎴愬姛鐨勬暟鎹� - this.AdjustLoginSuccessData(result, pra, i_account, i_psw, i_div); + this.AdjustLoginSuccessData(result); }); } @@ -801,13 +801,7 @@ if (i_div == 1) { //妫�娴嬫墜鏈� - if (i_areaCode != string.Empty && AccountLogic.Instance.CheckPhoneWithZone(i_account, i_areaCode) == false) - { - btnErrorMsg.TextID = R.MyInternationalizationString.ThePhoneError; - return false; - } - //妫�娴嬫墜鏈� - if (i_areaCode == string.Empty && AccountLogic.Instance.CheckPhone(i_account) == false) + if (HdlCheckLogic.Current.CheckPhoneNumber(i_account, i_areaCode) == false) { btnErrorMsg.TextID = R.MyInternationalizationString.ThePhoneError; return false; @@ -816,7 +810,7 @@ else { //妫�娴嬮偖绠� - if (AccountLogic.Instance.CheckEmail(i_account) == false) + if (HdlCheckLogic.Current.CheckEmail(i_account) == false) { btnErrorMsg.TextID = R.MyInternationalizationString.TheEmailError; return false; @@ -858,10 +852,9 @@ { ProgressBar.Show(Language.StringByID(R.MyInternationalizationString.Logining)); - var resultRegID = Shared.Common.CommonPage.Instance.PushRegID(); - var homes = HdlResidenceLogic.Current.GetHomeListsFromDb(false); + var resultRegID = HdlAccountLogic.Current.PushDeviceIdToDB(); //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ - bool result = UserCenterLogic.InitUserCenterMenmoryAndThread(); + bool result = HdlUserCenterLogic.Current.InitUserCenterMenmoryAndThread(true); //鍚姩ZigBee ZigBee.Common.Application.Init(); @@ -880,13 +873,12 @@ } else { - var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr); + var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AuthUserRes>(authStr); HdlThreadLogic.Current.RunMain(() => { - var registerPage = new AccountRegister(); + var registerPage = new AccountRegisterForm(); CommonPage.Instance.AddChidren(registerPage); - registerPage.OpenID = authRes.openid; - registerPage.Show(); + registerPage.ShowForm(authRes.openid); }); } }); @@ -900,49 +892,50 @@ /// <returns></returns> private bool isBindAuthAsync(string authStr) { - var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr); - var auth = new SendDataToServer.AuthUser() - { - AccessToken = authRes.access_token, - RefreshToken = authRes.refresh_token, - OpenID = authRes.openid - }; - //鑾峰彇寰俊鏄电О - var strUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + authRes.access_token; - strUrl += "&openid=" + authRes.openid; - var byteData = Common.CommonPage.Instance.DoRequestZigbeeHttpsInterface(strUrl, null, null, "GET"); - if (byteData == null) - { - return false; - } - var receipData = System.Text.Encoding.UTF8.GetString(byteData); - var nickData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserCenter.NicknameInfo>(receipData); - auth.UserName = nickData.nickname; + //鈽嗐優銉笺偗鈽� 缁戝畾寰俊 + return true; + //var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr); + //var auth = new SendDataToServer.AuthUser() + //{ + // AccessToken = authRes.access_token, + // RefreshToken = authRes.refresh_token, + // OpenID = authRes.openid + //}; + ////鑾峰彇寰俊鏄电О + //var strUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + authRes.access_token; + //strUrl += "&openid=" + authRes.openid; + //var byteData = HdlHttpLogic.Current.DoRequestZigbeeHttpsInterface(strUrl, null, RestSharp.Method.GET, null, null, null); + //if (byteData == null) + //{ + // return false; + //} + //var receipData = System.Text.Encoding.UTF8.GetString(byteData); + //var nickData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserCenter.NicknameInfo>(receipData); + //auth.UserName = nickData.nickname; - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(auth); - var revertObj = CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/InsertOrUpdateAuthUser", System.Text.Encoding.UTF8.GetBytes(requestJson)); - if (revertObj == null) - { - return false; - } - var stateCodeStr = revertObj.StateCode.ToUpper(); - if (stateCodeStr == "SUCCESS") - { - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString()); - var revertData = responseDataObj; - //鏍囪涓婁竴娆℃槸涓嶆槸鍚屼竴涓处鍙风櫥闄� - Config.Instance.TheSameLoginAccount = Config.Instance.Guid == revertData.Guid; - Config.Instance.Account = revertData.Account; - Config.Instance.MD5PWD = revertData.MD5PWD; - Config.Instance.Guid = revertData.Guid; - Config.Instance.LoginDateTime = DateTime.Now; - Config.Instance.Save(); - return true; - } - else - { - return false; - } + //var revertObj = HdlHttpLogic.Current.RequestHttpsZigbeeAsync("ZigbeeUsers/InsertOrUpdateAuthUser", RestSharp.Method.POST, auth, null, null); + //if (revertObj == null) + //{ + // return false; + //} + //var stateCodeStr = revertObj.stateCode.ToUpper(); + //if (stateCodeStr == "SUCCESS") + //{ + // var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.responseData.ToString()); + // var revertData = responseDataObj; + // //鏍囪涓婁竴娆℃槸涓嶆槸鍚屼竴涓处鍙风櫥闄� + // Config.Instance.TheSameLoginAccount = Config.Instance.Guid == revertData.userIdStr; + // //Config.Instance.Account = revertData.Account; + // Config.Instance.MD5PWD = revertData.MD5PWD; + // Config.Instance.Guid = revertData.userIdStr; + // Config.Instance.LoginDateTime = DateTime.Now; + // Config.Instance.Save(); + // return true; + //} + //else + //{ + // return false; + //} } #endregion @@ -954,8 +947,7 @@ /// </summary> /// <param name="i_account">璐﹀彿</param> /// <param name="i_verCode">楠岃瘉鐮�</param> - /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param> - private void LoginByVerCode(string i_account, string i_verCode, int i_div) + private void LoginByVerCode(string i_account, string i_verCode) { //妫�娴嬫槸鍚﹀悓鎰忔湇鍔″崗璁� if (this.CheckPrivacyPolicy() == false) { return; } @@ -964,16 +956,10 @@ HdlThreadLogic.Current.RunThread(() => { - var pra = new SendDataToServer.LoginValidCodeOBJ() - { - Account = i_account, - Code = i_verCode, - Language = CommonPage.ZigBeeLanguage, - AreaCode = int.Parse(CommonPage.PhoneZoneStr) - }; - var result = CommonFormResouce.LoginByCode(pra); + //楠岃瘉鐮佺櫥闄� + var result = HdlAccountLogic.Current.LoginByVerifyCode(i_account, i_verCode); //澶勭悊鐧婚檰鎴愬姛鐨勬暟鎹� - this.AdjustLoginSuccessData(result, pra, i_account, string.Empty, i_div); + this.AdjustLoginSuccessData(result); }); } @@ -982,65 +968,29 @@ /// </summary> /// <param name="btnSendCode">鍙戦�佹寜閽�</param> /// <param name="account">璐﹀彿</param> - /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param> /// <returns></returns> - private bool SendVerCode(NormalViewControl btnSendCode, string account, int i_div) + private bool SendVerCode(NormalViewControl btnSendCode, string account) { //涓嶈兘鍐嶇偣鍑� btnSendCode.CanClick = false; - int companyInt = 0; - if (CommonPage.PhoneZoneStr == "86" || i_div == 2) + var errorMsg = string.Empty; + if (account.Contains("@") == true) { - companyInt = CommonPage.Company; + //閭 + errorMsg = HdlAccountLogic.Current.SendVeriCodeToEmail(account, VerCodeType.A鐧婚檰); } else { - companyInt = CommonPage.CompanyForINTERNETION; + errorMsg = HdlAccountLogic.Current.SendVeriCodeToPhone("86", account, VerCodeType.A鐧婚檰); } - var reqDtoSignPhone = new SendDataToServer.LoginSendVerCodeObj() - { - Account = account, - Company = companyInt, - AreaCode = int.Parse(CommonPage.PhoneZoneStr), - Language = CommonPage.ZigBeeLanguage - }; - var requestRevertObj = CommonFormResouce.LoginSendVerCode(reqDtoSignPhone); - if (requestRevertObj == null) - { - //璇锋眰鏈嶅姟鍣ㄥけ璐� - CommonPage.Instance.FailureToServer(); - return false; - } - var stateCodeStr = requestRevertObj.StateCode.ToUpper(); - if (stateCodeStr == "SUCCESS") + if (errorMsg == null) { //寮�鍚彂閫侀獙璇佺爜鐨勫�掕鏃� this.StartSendVerCodeTimeOutThread(btnSendCode); return true; } - if (stateCodeStr == "PARAMETEROREMPTY") - { - //鎻愪緵鐨勫弬鏁伴敊璇� - btnErrorMsg.TextID = R.MyInternationalizationString.PARAMETEROREMPTY; - } - else if (stateCodeStr == "ACCOUNTNOEXISTS") - { - //璐﹀彿涓嶅瓨鍦� - btnErrorMsg.TextID = R.MyInternationalizationString.ACCOUNTNOEXISTS; - } - else if (stateCodeStr == "SENDFAIL") - { - //楠岃瘉鐮佸彂閫佸け璐� - btnErrorMsg.TextID = R.MyInternationalizationString.SENDFAIL; - } - else - { - //璇锋眰鏈嶅姟鍣ㄥけ璐� - btnErrorMsg.TextID = R.MyInternationalizationString.RequestServerFailed; - //鍐橪og - IMessageCommon.Current.GetMsgByRequestName("ZigbeeUsers/LoginSendVerCode", requestRevertObj, reqDtoSignPhone); - } + this.btnErrorMsg.Text = errorMsg; HdlThreadLogic.Current.RunThread(() => { @@ -1095,46 +1045,31 @@ /// 澶勭悊鐧婚檰鎴愬姛鐨勬暟鎹� /// </summary> /// <param name="revertObj">浜戠杩斿洖鐨勬暟鎹�</param> - /// <param name="pra">鎺ュ彛璇锋眰鍙傛暟</param> - /// <param name="i_account">璐﹀彿</param> - /// <param name="i_psw">瀵嗙爜锛岄獙璇佺爜鐧婚檰鏃�,璁剧疆涓� string.Empty</param> - /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param> - private void AdjustLoginSuccessData(Common.ResponseEntity.ResponsePack revertObj, object pra, - string i_account, string i_psw, int i_div) + private void AdjustLoginSuccessData(ResponsePack revertObj) { if (revertObj == null) { HdlThreadLogic.Current.RunMain(() => { //璇锋眰鏈嶅姟鍣ㄥけ璐� - CommonPage.Instance.FailureToServer(); + HdlMessageLogic.Current.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.RequestServerFailed)); CommonPage.Loading.Hide(); }); HdlLogLogic.Current.WriteLog(-1, "鐧婚檰鏃�,娌$綉缁�"); return; } - var stateCodeStr = revertObj.StateCode.ToUpper(); //Error 涓嶈兘鐩存帴浠庢湇鍔″櫒鍙栵紝鍙兘鏍规嵁鐘舵�佺爜閫愪竴鍒ゆ柇 - if (stateCodeStr == "SUCCESS") + if (revertObj.Code == HttpMessageEnum.A鎴愬姛) { - //瀛樺偍鏁版嵁 - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString()); - var revertData = responseDataObj; - Config.ReFresh(); - //鏍囪涓婁竴娆℃槸涓嶆槸鍚屼竴涓处鍙风櫥闄� - Config.Instance.TheSameLoginAccount = Config.Instance.Guid == revertData.Guid; - Config.Instance.Account = revertData.Account; - Config.Instance.Password = i_psw; - Config.Instance.MD5PWD = revertData.MD5PWD; - Config.Instance.Guid = revertData.Guid; - Config.Instance.LoginDateTime = DateTime.Now; - Config.Instance.LoginToken = revertData.Token; - Config.Instance.Save(); + HdlThreadLogic.Current.RunMain(() => + { + //鏄剧ず鍚姩椤� + HdlControlLogic.Current.ShowLoginLoadView(); + }); - var resultRegID = CommonPage.Instance.PushRegID(); - var homes = HdlResidenceLogic.Current.GetHomeListsFromDb(false); + var resultRegID = HdlAccountLogic.Current.PushDeviceIdToDB(); //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ - bool result = UserCenterLogic.InitUserCenterMenmoryAndThread(); + bool result = HdlUserCenterLogic.Current.InitUserCenterMenmoryAndThread(true); //鍚姩ZigBee ZigBee.Common.Application.Init(); @@ -1156,71 +1091,8 @@ HdlThreadLogic.Current.RunMain(() => { CommonPage.Loading.Hide(); - if (stateCodeStr == "NOTVERIFY") - { - //鏈縺娲� - btnErrorMsg.TextID = R.MyInternationalizationString.NOTVERIFY; - } - else if (stateCodeStr == "NOTENABLE") - { - //璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤 - btnErrorMsg.TextID = R.MyInternationalizationString.NOTENABLE; - } - else if (stateCodeStr == "PARAMETEROREMPTY") - { - //鎻愪緵鐨勫弬鏁伴敊璇� - btnErrorMsg.TextID = R.MyInternationalizationString.PARAMETEROREMPTY; - } - else if (stateCodeStr == "VALIDCODEANDPHONENOEQUAL") - { - //楠岃瘉鐮侀敊璇紝璇烽噸鏂拌緭鍏� - btnErrorMsg.TextID = R.MyInternationalizationString.VALIDCODEANDPHONENOEQUAL; - } - else if (stateCodeStr == "USERNAMEORPWDERROR") - { - //璐﹀彿鎴栧瘑鐮侀敊璇� - btnErrorMsg.TextID = R.MyInternationalizationString.USERNAMEORPWDERROR; - } - else if (stateCodeStr == "ACCOUNTNOEXISTS") - { - //璐﹀彿涓嶅瓨鍦� - btnErrorMsg.TextID = R.MyInternationalizationString.ACCOUNTNOEXISTS; - } - else if (stateCodeStr == "NORECORD" && i_psw == string.Empty) - { - //璇峰厛鑾峰彇楠岃瘉鐮� - btnErrorMsg.TextID = R.MyInternationalizationString.NORECORD; - } - else if (stateCodeStr == "BERESTRICT") - { - //姝よ处鍙锋棤鏉冪櫥褰� - btnErrorMsg.TextID = R.MyInternationalizationString.ThisAccountHasNoAuthorityToLogin; - } - else if (stateCodeStr == "YOUDATANOISLOCALREGION") - { - //涓嶅湪鏈尯鍩燂紝闇�瑕侀噸瀹氬悜鍖哄煙鍚庡啀娆¤姹傜櫥褰� - var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginLocalRegionRes>(revertObj.ResponseData.ToString()); - CommonPage.RequestHttpsHost = responseDataObj.RegionServer; - if (i_psw != string.Empty) - { - //鍐嶆鐧诲綍 - this.LoginByAccountAndPsw(i_account, i_psw, i_div); - } - } - else - { - btnErrorMsg.TextID = R.MyInternationalizationString.RequestServerFailed; - //鍐橪og - if (pra is SendDataToServer.LoginObj) - { - ((SendDataToServer.LoginObj)pra).Password = "*********"; - IMessageCommon.Current.GetMsgByRequestName("ZigbeeUsers/Login", revertObj, pra); - } - else - { - IMessageCommon.Current.GetMsgByRequestName("ZigbeeUsers/LoginValidCode", revertObj, pra); - } - } + //閿欒娑堟伅 + btnErrorMsg.Text = HdlMessageLogic.Current.TranslateHttpCode(revertObj.Code); }); } @@ -1234,6 +1106,8 @@ /// <returns></returns> private bool CheckPrivacyPolicy() { + Config.Instance.AcceiptPolicy = isAgreePrivacyPolicy; + if (isAgreePrivacyPolicy == false) { //璇峰厛闃呰骞跺悓鎰忋�婇殣绉佹潈鏀跨瓥銆嬪拰銆婃湇鍔℃潯娆俱�� @@ -1245,5 +1119,30 @@ } #endregion + + #region 鈻� 缁撴瀯浣揰____________________________ + + private class AuthUserRes + { + ///<summary> + /// 绗笁鏂箃oken + /// </summary> + public string access_token; + /// <summary> + /// 鍒锋柊token + /// </summary> + public string refresh_token; + /// <summary> + ///绗笁鏂圭敤鎴峰敮涓�鏍囪瘑 + /// </summary> + public string openid; + + public int expires_in; + public string scope; + public string unionid; + + } + + #endregion } } -- Gitblit v1.8.0