From f71e74b5f0d2716fbf05da016cdaa18d64e09f80 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 31 十二月 2020 17:01:18 +0800
Subject: [PATCH] 又换完成最新门锁。空气质量传感器完成数据和基本配置功能。开发图表和自动化的同事可下载此代码

---
 ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs |  318 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 318 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs
new file mode 100755
index 0000000..686de8b
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs
@@ -0,0 +1,318 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Shared.Phone.UserCenter.OtherParty
+{
+    /// <summary>
+    /// 绗笁鏂硅处鍙风殑鑿滃崟鐣岄潰
+    /// </summary>
+    public class OtherPartyAccountMenuForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 缁戝畾鐨勬柟寮�
+        /// </summary>
+        private Dictionary<string, OtherPartyResult> dicBindData = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uOtherPartyAccount));
+
+            //鍒濆鍖栦腑閮ㄦ暟鎹�
+            this.InitMiddleData();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄦ暟鎹�
+        /// </summary>
+        private void InitMiddleData()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鎵撳紑杩涘害鏉�
+                this.ShowProgressBar();
+                //鑾峰彇缁戝畾鏁版嵁
+                var result = this.GetBingData();
+                if (result == false)
+                {
+                    //鍏抽棴杩涘害鏉�
+                    this.CloseProgressBar(ShowReLoadMode.YES);
+                    return;
+                }
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
+
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍒濆鍖栦腑閮ㄤ俊鎭�
+                    this.InitMiddleFrame();
+                });
+            });
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            var listView = new VerticalListControl(12);
+            listView.Height = Application.GetRealHeight(317);
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(listView);
+
+            //鏈巿鏉�
+            string bindNameText = Language.StringByID(R.MyInternationalizationString.uNotAuthentication);
+            //璇风粦瀹�
+            string bindTipText= Language.StringByID(R.MyInternationalizationString.uPleaseBind);
+            if (dicBindData.ContainsKey("Wechat") == true)
+            {
+                //瑙i櫎缁戝畾
+                bindTipText = Language.StringByID(R.MyInternationalizationString.uUnBinded);
+                bindNameText = dicBindData["Wechat"].UserName;
+            }
+            var rowChat = new FrameRowControl(listView.rowSpace / 2);
+            rowChat.Y = Application.GetRealHeight(11);
+            listView.AddChidren(rowChat);
+            //寰俊
+            var btnChat = rowChat.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uWebChat), 400, 60);
+            btnChat.Y = Application.GetRealHeight(12) + rowChat.chidrenYaxis;
+            btnChat.TextSize = 15;
+            rowChat.AddChidren(btnChat, ChidrenBindMode.BindEvent);
+            //鏈巿鏉�  OR  鍚嶅瓧
+            var btnTip1 = rowChat.AddLeftCaption(bindNameText == null ? string.Empty : bindNameText, 400, 50);
+            btnTip1.Y = Application.GetRealHeight(72) + rowChat.chidrenYaxis;
+            btnTip1.TextSize = 12;
+            btnTip1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            rowChat.AddChidren(btnTip1, ChidrenBindMode.BindEvent);
+            //鍚戝彸鍥炬爣
+            rowChat.AddRightArrow();
+            //搴曠嚎
+            //rowChat.AddBottomLine();
+            //璇风粦瀹�  OR  瑙i櫎缁戝畾
+            rowChat.AddMostRightView(bindTipText, 400);
+            rowChat.ButtonClickEvent += (sender, e) =>
+            {
+                if (dicBindData.ContainsKey("Wechat") == true)
+                {
+                    //纭畾瑕佽В闄ょ粦瀹氬井淇★紵
+                    string msg = Language.StringByID(R.MyInternationalizationString.uComfirmUnBindedMsg);
+                    msg = msg.Replace("{0}", Language.StringByID(R.MyInternationalizationString.uWebChat));
+                    this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+                    {
+                        //瑙i櫎缁戝畾
+                        this.UnBindOtherParty(dicBindData["Wechat"]);
+                    });
+                }
+                else
+                {
+                    //婵�娲诲井淇pp
+                    this.ActionWechatApp();
+                }
+            };
+
+
+            ////鏈巿鏉�
+            //bindNameText = Language.StringByID(R.MyInternationalizationString.uNotAuthentication);
+            ////璇风粦瀹�
+            //bindTipText = Language.StringByID(R.MyInternationalizationString.uPleaseBind);
+            //if (dicBindData.ContainsKey("QQ") == true)
+            //{
+            //    //瑙i櫎缁戝畾
+            //    bindTipText = Language.StringByID(R.MyInternationalizationString.uUnBinded);
+            //    bindNameText = "QQ";
+            //}
+            //var rowQQ = new FrameRowControl(listView.rowSpace / 2);
+            //listView.AddChidren(rowQQ);
+            ////寰俊
+            //var btnQQ = rowQQ.AddLeftCaption("QQ", 400, 60);
+            //btnQQ.Y = Application.GetRealHeight(12) + rowQQ.chidrenYaxis;
+            //btnQQ.TextSize = 15;
+            //rowQQ.AddChidren(btnQQ, ChidrenBindMode.BindEvent);
+            ////鏈巿鏉�  OR  鍚嶅瓧
+            //var btnTip2 = rowQQ.AddLeftCaption(bindNameText, 400, 49);
+            //btnTip2.Y = Application.GetRealHeight(72) + rowQQ.chidrenYaxis;
+            //btnTip2.TextSize = 12;
+            //btnTip2.TextColor = UserCenterColor.Current.TextGrayColor1;
+            //rowQQ.AddChidren(btnTip2, ChidrenBindMode.BindEvent);
+            ////鍚戝彸鍥炬爣
+            //rowQQ.AddRightArrow();
+            ////璇风粦瀹�  OR  瑙i櫎缁戝畾
+            //rowQQ.AddMostRightView(bindTipText, 400);
+            //rowQQ.ButtonClickEvent += (sender, e) =>
+            //{
+            //    if (dicBindData.ContainsKey("QQ") == true)
+            //    {
+            //    }
+            //    else
+            //    {
+            //    }
+            //};
+            //璋冩暣鐪熷疄楂樺害
+            listView.AdjustRealHeight(Application.GetRealHeight(23));
+        }
+
+        #endregion
+
+        #region 鈻� 鑾峰彇缁戝畾鏁版嵁_______________________
+
+        /// <summary>
+        /// 鑾峰彇缁戝畾鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        private bool GetBingData()
+        {
+            this.dicBindData = new Dictionary<string, OtherPartyResult>();
+
+            var result = UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetUserAuthItem", false, "");
+            if (string.IsNullOrEmpty(result) == true)
+            {
+                return false;
+            }
+            var data = Newtonsoft.Json.JsonConvert.DeserializeObject<List<OtherPartyResult>>(result);
+            foreach (var info in data)
+            {
+                this.dicBindData[info.Platform] = info;
+            }
+
+            return true;
+        }
+
+        #endregion
+
+        #region 鈻� 缁戝畾寰俊___________________________
+
+        /// <summary>
+        /// 婵�娲诲井淇pp
+        /// </summary>
+        private void ActionWechatApp()
+        {
+#if Android
+            com.hdl.home.Application.WXLogin();
+            com.hdl.home.WXEntryActivity.RespAction = (authStr) =>
+#endif
+#if iOS
+            Home.IOS.AppDelegate.WXLogin();
+            Home.IOS.AppDelegate.RespAction = (authStr) =>
+#endif
+            {
+                if (string.IsNullOrEmpty(authStr) == true)
+                {
+                    return;
+                }
+                var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
+                //缁戝畾寰俊
+                this.BindWechat(authRes.access_token, authRes.refresh_token, authRes.openid);
+            };
+        }
+
+        /// <summary>
+        /// 缁戝畾寰俊
+        /// </summary>
+        /// <param name="infoData"></param>
+        private void BindWechat(string accessToken, string refreshToken, string openID)
+        {
+            //鑾峰彇寰俊鏄电О
+            var strUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + accessToken;
+            strUrl += "&openid=" + openID;
+            var byteData = Common.CommonPage.Instance.DoRequestZigbeeHttpsInterface(strUrl, null, null, "GET");
+            if (byteData == null)
+            {
+                return;
+            }
+            var receipData = System.Text.Encoding.UTF8.GetString(byteData);
+            var nickData = Newtonsoft.Json.JsonConvert.DeserializeObject<NicknameInfo>(receipData);
+
+            //鍏堜笂浼犲井淇¤祫鏂�
+            var pra = new { AccessToken = accessToken, RefreshToken = refreshToken, OpenID = openID, UserName = nickData.nickname };
+            var listNotShow = new List<string>() { "UserNoBindAccount" };
+            var result = UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/InsertOrUpdateAuthUser", false, pra, listNotShow);
+            if (result == false)
+            {
+                return;
+            }
+
+            //鍐嶆墽琛岀粦瀹�
+            var pra2 = new { AccountGuid = Common.Config.Instance.Guid, OpenID = openID };
+            result = UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/BindAuthUserToAccount", false, pra2);
+            if (result == true)
+            {
+                //缁戝畾鎴愬姛锛佷笅娆′綘鍙互鐢ㄥ井淇0}璐﹀彿蹇�熺櫥褰曞暒
+                string msg = Language.StringByID(R.MyInternationalizationString.uBindWebchatSuccessMsg);
+                msg = msg.Replace("{0}", "\r\n");
+                this.ShowMassage(ShowMsgType.Normal, msg, null, Language.StringByID(R.MyInternationalizationString.uWell));
+                //閲嶆柊鍒锋柊鐣岄潰
+                this.InitMiddleData();
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 瑙i櫎缁戝畾___________________________
+
+        /// <summary>
+        /// 瑙i櫎缁戝畾
+        /// </summary>
+        /// <param name="infoData"></param>
+        private void UnBindOtherParty(OtherPartyResult infoData)
+        {
+            var pra = new { DistributedMark = infoData.Id };
+            var result = UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/UnBindUserAuth", false, pra);
+            if (result == true)
+            {
+                //閲嶆柊鍒锋柊鐣岄潰
+                this.InitMiddleData();
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰____________________________
+
+        /// <summary>
+        /// 鑾峰彇绗笁鏂圭粨鏋滀俊鎭�
+        /// </summary>
+        private class OtherPartyResult
+        {
+            /// <summary>
+            /// 杩欎釜鏄敤鏉ュ垹闄ょ粦瀹氱殑
+            /// </summary>
+            public string Id = string.Empty;
+            /// <summary>
+            /// OpenID
+            /// </summary>
+            public string OpenID = string.Empty;
+            /// <summary>
+            /// AccessToken
+            /// </summary>
+            public string AccessToken = string.Empty;
+            /// <summary>
+            /// RefreshToken
+            /// </summary>
+            public string RefreshToken = string.Empty;
+            /// <summary>
+            /// Wechat  鎴栬�� QQ
+            /// </summary>
+            public string Platform = string.Empty;
+            /// <summary>
+            /// 鏄电О
+            /// </summary>
+            public string UserName = string.Empty;
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0