From fe3b2466c68b5db70d38e78039703add3b8b1dfe Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 31 十二月 2020 19:29:43 +0800 Subject: [PATCH] 合并了代码 --- ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs | 341 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 221 insertions(+), 120 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs b/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs index 27d86d1..ea8bce7 100755 --- a/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs +++ b/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs @@ -32,9 +32,6 @@ /// <param name="account">鐧婚檰璐﹀彿</param> public void ShowForm(string account = "") { - //閲嶇疆浜戠榛樿鐨勮闂湴鍧�,璐﹀彿鐧婚檰鍚庝細鑷姩鍘昏鍙栬处鍙锋墍鍦ㄧ殑鍖哄煙鍦板潃 - HdlHttpLogic.Current.ResetDefultHttpsHost(); - if (account == string.Empty) { //浣跨敤涓婁竴娆$櫥闄嗙殑璐﹀彿 @@ -175,9 +172,9 @@ //妫�娴嬫槸鍚﹀悓鎰忔湇鍔″崗璁� if (this.CheckPrivacyPolicy() == false) { return; } - var registerPage = new AccountRegisterForm(); + var registerPage = new AccountRegister(); CommonPage.Instance.AddChidren(registerPage); - registerPage.ShowForm(string.Empty); + registerPage.Show(); }; //寰俊鍥炬爣 @@ -211,7 +208,6 @@ btnTiyan.CanClick = false; //鏄剧ず鍚姩椤� - HdlControlLogic.Current.ShowLoginLoadView(); HdlThreadLogic.Current.RunThread(() => { //鍒濆鍖栧叏閮ㄤ綋楠屾暟鎹� @@ -396,9 +392,9 @@ //妫�娴嬫槸鍚﹀悓鎰忔湇鍔″崗璁� if (this.CheckPrivacyPolicy() == false) { return; } - var forgot = new AccountForgotPasswordForm(); + var forgot = new AccountForgetPWD(); CommonPage.Instance.AddChidren(forgot); - forgot.ShowForm(); + forgot.Show(); }; //鐧婚檰鎸夐挳 @@ -584,7 +580,7 @@ return; } //鍙戦�侀獙璇佺爜 - hadSendCode = this.SendVerCode(btnSendCode, nowInputAccount); + hadSendCode = this.SendVerCode(btnSendCode, nowInputAccount, i_div); }; //搴曠嚎 @@ -621,9 +617,9 @@ //妫�娴嬫槸鍚﹀悓鎰忔湇鍔″崗璁� if (this.CheckPrivacyPolicy() == false) { return; } - var forgot = new AccountForgotPasswordForm(); + var forgot = new AccountForgetPWD(); CommonPage.Instance.AddChidren(forgot); - forgot.ShowForm(); + forgot.Show(); }; //鐧婚檰鎸夐挳 @@ -636,7 +632,7 @@ btnLogin.ButtonClickEvent += (sender, e) => { //楠岃瘉鐮佺櫥闄� - this.LoginByVerCode(nowInputAccount, txtVerCode.Text.Trim()); + this.LoginByVerCode(nowInputAccount, txtVerCode.Text.Trim(), i_div); }; return frameBack; } @@ -661,7 +657,7 @@ int btnWidth = 0; //鐗规畩鐨勮宸�� - int speceilValue = HdlControlResourse.TwoTextSpace; + int speceilValue = ControlCommonResourse.TwoTextSpace; //鎴戝凡闃呰骞跺悓鎰� var btnMsg1 = new NormalViewControl(100, 90, true); @@ -735,14 +731,11 @@ 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); @@ -782,10 +775,17 @@ HdlThreadLogic.Current.RunThread(() => { - //鐧婚檰 - var result = HdlAccountLogic.Current.LoginByPassword(i_account, i_psw); + //鐧婚檰鍙傛暟 + 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)); + //澶勭悊鐧婚檰鎴愬姛鐨勬暟鎹� - this.AdjustLoginSuccessData(result); + this.AdjustLoginSuccessData(result, pra, i_account, i_psw, i_div); }); } @@ -801,7 +801,13 @@ if (i_div == 1) { //妫�娴嬫墜鏈� - if (HdlCheckLogic.Current.CheckPhoneNumber(i_account, i_areaCode) == false) + 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) { btnErrorMsg.TextID = R.MyInternationalizationString.ThePhoneError; return false; @@ -810,7 +816,7 @@ else { //妫�娴嬮偖绠� - if (HdlCheckLogic.Current.CheckEmail(i_account) == false) + if (AccountLogic.Instance.CheckEmail(i_account) == false) { btnErrorMsg.TextID = R.MyInternationalizationString.TheEmailError; return false; @@ -852,9 +858,10 @@ { ProgressBar.Show(Language.StringByID(R.MyInternationalizationString.Logining)); - var resultRegID = HdlAccountLogic.Current.PushDeviceIdToDB(); + var resultRegID = Shared.Common.CommonPage.Instance.PushRegID(); + var homes = HdlResidenceLogic.Current.GetHomeListsFromDb(false); //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ - bool result = HdlUserCenterLogic.Current.InitUserCenterMenmoryAndThread(true); + bool result = UserCenterLogic.InitUserCenterMenmoryAndThread(); //鍚姩ZigBee ZigBee.Common.Application.Init(); @@ -873,12 +880,13 @@ } else { - var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AuthUserRes>(authStr); + var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr); HdlThreadLogic.Current.RunMain(() => { - var registerPage = new AccountRegisterForm(); + var registerPage = new AccountRegister(); CommonPage.Instance.AddChidren(registerPage); - registerPage.ShowForm(authRes.openid); + registerPage.OpenID = authRes.openid; + registerPage.Show(); }); } }); @@ -892,50 +900,49 @@ /// <returns></returns> private bool isBindAuthAsync(string authStr) { - //鈽嗐優銉笺偗鈽� 缁戝畾寰俊 - 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 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; - //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; - //} + 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; + } } #endregion @@ -947,7 +954,8 @@ /// </summary> /// <param name="i_account">璐﹀彿</param> /// <param name="i_verCode">楠岃瘉鐮�</param> - private void LoginByVerCode(string i_account, string i_verCode) + /// <param name="i_div">1:鎵嬫満鍙� 2:閭</param> + private void LoginByVerCode(string i_account, string i_verCode, int i_div) { //妫�娴嬫槸鍚﹀悓鎰忔湇鍔″崗璁� if (this.CheckPrivacyPolicy() == false) { return; } @@ -956,10 +964,16 @@ HdlThreadLogic.Current.RunThread(() => { - //楠岃瘉鐮佺櫥闄� - var result = HdlAccountLogic.Current.LoginByVerifyCode(i_account, i_verCode); + var pra = new SendDataToServer.LoginValidCodeOBJ() + { + Account = i_account, + Code = i_verCode, + Language = CommonPage.ZigBeeLanguage, + AreaCode = int.Parse(CommonPage.PhoneZoneStr) + }; + var result = CommonFormResouce.LoginByCode(pra); //澶勭悊鐧婚檰鎴愬姛鐨勬暟鎹� - this.AdjustLoginSuccessData(result); + this.AdjustLoginSuccessData(result, pra, i_account, string.Empty, i_div); }); } @@ -968,29 +982,65 @@ /// </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) + private bool SendVerCode(NormalViewControl btnSendCode, string account, int i_div) { //涓嶈兘鍐嶇偣鍑� btnSendCode.CanClick = false; - var errorMsg = string.Empty; - if (account.Contains("@") == true) + int companyInt = 0; + if (CommonPage.PhoneZoneStr == "86" || i_div == 2) { - //閭 - errorMsg = HdlAccountLogic.Current.SendVeriCodeToEmail(account, VerCodeType.A鐧婚檰); + companyInt = CommonPage.Company; } else { - errorMsg = HdlAccountLogic.Current.SendVeriCodeToPhone("86", account, VerCodeType.A鐧婚檰); + companyInt = CommonPage.CompanyForINTERNETION; } - if (errorMsg == null) + 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") { //寮�鍚彂閫侀獙璇佺爜鐨勫�掕鏃� this.StartSendVerCodeTimeOutThread(btnSendCode); return true; } - this.btnErrorMsg.Text = errorMsg; + 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); + } HdlThreadLogic.Current.RunThread(() => { @@ -1045,31 +1095,46 @@ /// 澶勭悊鐧婚檰鎴愬姛鐨勬暟鎹� /// </summary> /// <param name="revertObj">浜戠杩斿洖鐨勬暟鎹�</param> - private void AdjustLoginSuccessData(ResponsePack revertObj) + /// <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) { if (revertObj == null) { HdlThreadLogic.Current.RunMain(() => { //璇锋眰鏈嶅姟鍣ㄥけ璐� - HdlMessageLogic.Current.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.RequestServerFailed)); + CommonPage.Instance.FailureToServer(); CommonPage.Loading.Hide(); }); HdlLogLogic.Current.WriteLog(-1, "鐧婚檰鏃�,娌$綉缁�"); return; } + var stateCodeStr = revertObj.StateCode.ToUpper(); //Error 涓嶈兘鐩存帴浠庢湇鍔″櫒鍙栵紝鍙兘鏍规嵁鐘舵�佺爜閫愪竴鍒ゆ柇 - if (revertObj.Code == HttpMessageEnum.A鎴愬姛) + if (stateCodeStr == "SUCCESS") { - HdlThreadLogic.Current.RunMain(() => - { - //鏄剧ず鍚姩椤� - HdlControlLogic.Current.ShowLoginLoadView(); - }); + //瀛樺偍鏁版嵁 + 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(); - var resultRegID = HdlAccountLogic.Current.PushDeviceIdToDB(); + var resultRegID = CommonPage.Instance.PushRegID(); + var homes = HdlResidenceLogic.Current.GetHomeListsFromDb(false); //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ - bool result = HdlUserCenterLogic.Current.InitUserCenterMenmoryAndThread(true); + bool result = UserCenterLogic.InitUserCenterMenmoryAndThread(); //鍚姩ZigBee ZigBee.Common.Application.Init(); @@ -1091,8 +1156,71 @@ HdlThreadLogic.Current.RunMain(() => { CommonPage.Loading.Hide(); - //閿欒娑堟伅 - btnErrorMsg.Text = HdlMessageLogic.Current.TranslateHttpCode(revertObj.Code); + 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); + } + } }); } @@ -1106,8 +1234,6 @@ /// <returns></returns> private bool CheckPrivacyPolicy() { - Config.Instance.AcceiptPolicy = isAgreePrivacyPolicy; - if (isAgreePrivacyPolicy == false) { //璇峰厛闃呰骞跺悓鎰忋�婇殣绉佹潈鏀跨瓥銆嬪拰銆婃湇鍔℃潯娆俱�� @@ -1116,31 +1242,6 @@ return false; } return true; - } - - #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