From 9cfd22c2c308adc7a7ce38cf96be04a70048de01 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 20 七月 2020 15:57:57 +0800
Subject: [PATCH] 2020-07-20-1
---
ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs | 301 +++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 261 insertions(+), 40 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs
index e6fc37c..7ccbfb4 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/OtherParty/OtherPartyAccountMenuForm.cs
@@ -1,6 +1,7 @@
锘縰sing System;
using System.Collections.Generic;
using System.Text;
+using System.Threading.Tasks;
namespace Shared.Phone.UserCenter.OtherParty
{
@@ -10,6 +11,11 @@
public class OtherPartyAccountMenuForm : EditorCommonForm
{
#region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 缁戝畾鐨勬柟寮�
+ /// </summary>
+ private Dictionary<string, OtherPartyResult> dicBindData = null;
#endregion
@@ -23,8 +29,39 @@
//璁剧疆澶撮儴淇℃伅
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uOtherPartyAccount));
- //鍒濆鍖栦腑閮ㄤ俊鎭�
- this.InitMiddleFrame();
+ //鍒濆鍖栦腑閮ㄦ暟鎹�
+ this.InitMiddleData();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄦ暟鎹�
+ /// </summary>
+ private void InitMiddleData()
+ {
+ //娓呯┖bodyFrame
+ this.ClearBodyFrame();
+
+ HdlThreadLogic.Current.RunThread(async () =>
+ {
+ //鎵撳紑杩涘害鏉�
+ this.ShowProgressBar();
+ //鑾峰彇缁戝畾鏁版嵁
+ var result = await this.GetBingData();
+ if (result == false)
+ {
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar(ShowReLoadMode.YES);
+ return;
+ }
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar();
+
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+ });
+ });
}
/// <summary>
@@ -32,65 +69,249 @@
/// </summary>
private void InitMiddleFrame()
{
- //娓呯┖bodyFrame
- this.ClearBodyFrame();
+ var listView = new VerticalListControl(12);
+ listView.Height = Application.GetRealHeight(317);
+ listView.BackgroundColor = UserCenterColor.Current.White;
+ bodyFrameLayout.AddChidren(listView);
- var frameBack = new FrameListControl(12);
- frameBack.Height = Application.GetRealHeight(317);
- frameBack.BackgroundColor = UserCenterColor.Current.White;
- bodyFrameLayout.AddChidren(frameBack);
-
- var rowChat = new FrameRowControl(frameBack.rowSpace / 2);
+ //鏈巿鏉�
+ 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);
- frameBack.AddChidren(rowChat);
+ 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.BindEventOnly);
- //鏈巿鏉�
- var btnTip1 = rowChat.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNotAuthentication), 400, 49);
+ 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.BindEventOnly);
+ rowChat.AddChidren(btnTip1, ChidrenBindMode.BindEvent);
//鍚戝彸鍥炬爣
rowChat.AddRightArrow();
//搴曠嚎
- rowChat.AddBottomLine();
- //璇风粦瀹�
- rowChat.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uPleaseBind), 400);
+ //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();
+ }
};
- var rowQQ = new FrameRowControl(frameBack.rowSpace / 2);
- frameBack.AddChidren(rowQQ);
- //寰俊
- var btnQQ = rowQQ.AddLeftCaption("QQ", 400, 60);
- btnQQ.Y = Application.GetRealHeight(12) + rowQQ.chidrenYaxis;
- btnQQ.TextSize = 15;
- rowQQ.AddChidren(btnQQ, ChidrenBindMode.BindEventOnly);
- //鏈巿鏉�
- var btnTip2 = rowQQ.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNotAuthentication), 400, 49);
- btnTip2.Y = Application.GetRealHeight(72) + rowQQ.chidrenYaxis;
- btnTip2.TextSize = 12;
- btnTip2.TextColor = UserCenterColor.Current.TextGrayColor1;
- rowQQ.AddChidren(btnTip2, ChidrenBindMode.BindEventOnly);
- //鍚戝彸鍥炬爣
- rowQQ.AddRightArrow();
- //璇风粦瀹�
- rowQQ.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uPleaseBind), 400);
- rowQQ.ButtonClickEvent += (sender, e) =>
- {
- };
+ ////鏈巿鏉�
+ //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 鈻� 涓�鑸柟娉昣__________________________
+ #region 鈻� 鑾峰彇缁戝畾鏁版嵁_______________________
+
+ /// <summary>
+ /// 鑾峰彇缁戝畾鏁版嵁
+ /// </summary>
+ /// <returns></returns>
+ private async Task<bool> GetBingData()
+ {
+ this.dicBindData = new Dictionary<string, OtherPartyResult>();
+
+ var result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetUserAuthItem", false, "");
+ if (result == null)
+ {
+ 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 async 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 = await 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 = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/InsertOrUpdateAuthUser", false, pra, listNotShow);
+ if (result == false)
+ {
+ return;
+ }
+
+ //鍐嶆墽琛岀粦瀹�
+ var pra2 = new { AccountGuid = Common.Config.Instance.Guid, OpenID = openID };
+ result = await 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 async void UnBindOtherParty(OtherPartyResult infoData)
+ {
+ var pra = new { DistributedMark = infoData.Id };
+ var result = await 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