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