From b800fbdf874cdc75ddc137ea2c22ac2c25d8b45c Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期二, 26 十一月 2019 10:10:37 +0800
Subject: [PATCH] 2019.11.26

---
 ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs |  187 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 169 insertions(+), 18 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs b/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs
index ddb9ce1..1f1d719 100644
--- a/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs
@@ -1,14 +1,7 @@
 锘縰sing System;
-using System.Collections.Generic;
-using System.Net;
-using System.Text;
-using uPLibrary.Networking.M2Mqtt;
 using Shared.Common;
-using Shared.IO;
 using Shared.Phone.UserView;
-using System.Net.Http;
 using Shared.Phone.Device.CommonForm;
-using Com.Tencent.MM.Sdk.Openapi;
 
 namespace Shared.Phone.Device.Account
 {
@@ -268,7 +261,8 @@
                 Y = Application.GetRealHeight(1737),
                 Width = Application.GetMinRealAverage(115),
                 Height = Application.GetMinRealAverage(115),
-                UnSelectedImagePath = "Account/Wechat.png"
+                UnSelectedImagePath = "Account/Wechat.png",
+                Gravity=Gravity.CenterHorizontal
             };
             midFrameLayout.AddChidren(wechatBtn);
 
@@ -280,7 +274,7 @@
                 Height = Application.GetMinRealAverage(115),
                 UnSelectedImagePath = "Account/QQ.png"
             };
-            midFrameLayout.AddChidren(qqBtn);
+            //midFrameLayout.AddChidren(qqBtn);
 
             #endregion
 
@@ -330,7 +324,7 @@
             }
             else
             {
-                Login(phoneRow.AccountET.Text.Trim(), pwdRow.PasswrodET.Text.Trim());
+                Login(emailRow.AccountET.Text.Trim(), pwdRow.PasswrodET.Text.Trim());
             }
 
         }
@@ -373,9 +367,8 @@
                         {
                             return;
                         }
-                        this.RemoveFromParent();
 
-                        UserPage.Instance.Fresh();
+                        HomePage.Instance.ShowLoginLoadView();
 
                         new System.Threading.Thread(async () =>
                         {
@@ -404,12 +397,13 @@
                             var homes = await House.GetHomeLists();
                             //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
                             await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
-                            Shared.Common.Room.CanInitAllRoom = true;
                             Shared.Common.Room.InitAllRoom();
                             Application.RunOnMainThread(() =>
                             {
-                                UserPage.Instance.Fresh();
                                 CommonPage.Loading.Hide();
+                                this.RemoveFromParent();
+                                CommonPage.Instance.RemoveViewByTag("Login");
+                                UserPage.Instance.Fresh();
                             });
                         })
                         { IsBackground = true }.Start();
@@ -483,16 +477,125 @@
             CommonPage.Instance.AddChidren(loginByCodePage);
             loginByCodePage.Show();
         }
-        IWXAPI api;
+
         /// <summary>
         /// wechat鐧诲綍
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="mouseEventArgs"></param>
-        private void LoginByWechat(object sender,MouseEventArgs mouseEventArgs)
+        private void LoginByWechat(object sender, MouseEventArgs mouseEventArgs)
         {
-            var req = new SendAuth.Req { Scope = "snsapi_userinfo", State = "ZigbeeApp" };
-            api.SendReq(req);
+#if Android
+            //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP),
+            //    Language.StringByID(R.MyInternationalizationString.LoginByWechat),
+            //    Language.StringByID(R.MyInternationalizationString.Cancel),
+            //    Language.StringByID(R.MyInternationalizationString.Confrim));
+            //alert.Show();
+            //alert.ResultEventHandler += (send, e) =>
+            //{
+                //if (e)
+                //{
+                    com.hdl.home.Application.WXLogin();
+                    com.hdl.home.WXEntryActivity.RespAction = (authStr) =>
+                    {
+                        if (authStr == null)
+                        {
+
+                        }
+                        else
+                        {
+                            new System.Threading.Thread(async () =>
+                            {
+                                var re = await isBindAuthAsync(authStr);
+                                if (re)
+                                {
+                                    //鐩存帴鐧诲綍
+                                    HomePage.Instance.ShowLoginLoadView();
+                                    //鍚姩ZigBee
+                                    ZigBee.Common.Application.Init();
+                                    var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
+                                    var homes = await House.GetHomeLists();
+                                    //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
+                                    await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
+                                    Shared.Common.Room.InitAllRoom();
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        this.RemoveFromParent();
+                                        CommonPage.Instance.RemoveViewByTag("Login");
+                                        UserPage.Instance.Fresh();
+                                    });
+                                }
+                                else
+                                {
+                                    var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        var registerPage = new AccountRegister();
+                                        Shared.Common.CommonPage.Instance.AddChidren(registerPage);
+                                        registerPage.OpenID = authRes.openid;
+                                        registerPage.Show();
+                                    });
+                                }
+                            })
+                            { IsBackground = true }.Start();
+                        }
+                    };
+                //}
+            //};
+#endif
+
+#if iOS
+            GateWay.Ios.AppDelegate.WXLogin();
+            GateWay.Ios.AppDelegate.RespAction = (authStr) =>
+            {
+                if (authStr == null)
+                {
+
+                }
+                else
+                {
+                    new System.Threading.Thread(async () =>
+                    {
+
+                        var re = await isBindAuthAsync(authStr);
+                        if (re)
+                        {
+                            //鐩存帴鐧诲綍
+                            //this.RemoveFromParent();
+
+                            //UserPage.Instance.Fresh();
+                            //鍚姩ZigBee
+                            ZigBee.Common.Application.Init();
+                            var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
+                            var homes = await House.GetHomeLists();
+                            //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
+                            await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
+                            Shared.Common.Room.InitAllRoom();
+                            Application.RunOnMainThread(() =>
+                            {
+                                this.RemoveFromParent();
+                                UserPage.Instance.Fresh();
+                            });
+                        }
+                        else
+                        {
+                            var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
+                            Application.RunOnMainThread(() =>
+                            {
+                                var registerPage = new AccountRegister();
+                                Shared.Common.CommonPage.Instance.AddChidren(registerPage);
+                                registerPage.OpenID = authRes.openid;
+                                registerPage.Show();
+                            });
+                        }
+                    })
+                    { IsBackground = true }.Start();
+                }
+            };
+#endif
+
+
+
         }
 
         /// <summary>
@@ -506,6 +609,54 @@
         }
 
         /// <summary>
+        /// 鏄惁宸茬粦瀹�
+        /// </summary>
+        /// <param name="authStr"></param>
+        /// <returns></returns>
+        private async System.Threading.Tasks.Task<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 requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(auth);
+            var revertObj = await 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.Account = revertData.Account;
+                Config.Instance.MD5PWD = revertData.MD5PWD;
+                Config.Instance.Guid = revertData.Guid;
+                Config.Instance.MqttKey = revertData.MqttKey;
+                Config.Instance.LoginDateTime = DateTime.Now;
+                Config.Instance.ConnectZigbeeMqttBrokerPwd = revertData.ConnectZigbeeMqttBrokerPwd;
+                Config.Instance.ConnectZigbeeMqttClientId = revertData.ConnectZigbeeMqttClientId;
+                Config.Instance.ZigbeeMqttBrokerLoadSubDomain = revertData.ZigbeeMqttBrokerLoadSubDomain;
+                if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null)
+                {
+                    Config.Instance.AccountList.Add(revertData.Account);
+                }
+                Config.Instance.Save();
+                return true;
+            }
+            else 
+            {
+                return false;
+            }
+        }
+
+      
+
+        /// <summary>
         /// phone/email 閫夋嫨
         /// </summary>
         /// <param name="sender"></param>

--
Gitblit v1.8.0