From 365eadb33ee86b05ac74d408025d102a758c2efd Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 10 一月 2020 15:27:17 +0800
Subject: [PATCH] 2020-01-10 2020-01-10 1.修改切换本地和远程问题。 2.修改判断住宅网关方案。 3.其它优化修改。

---
 Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs |   52 ++++++++++++++++++++++++++++++----------------------
 1 files changed, 30 insertions(+), 22 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
index 04a2de8..ae7399e 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
@@ -68,13 +68,13 @@
         public static async System.Threading.Tasks.Task StartCloudMqtt ()
         {
 
-                Application.RunOnMainThread (() => {
-                    if (5 < (DateTime.Now - dateTime).TotalSeconds) {
-                        return;
-                    }
-                    //MainPage.Loading.Start (Language.StringByID (Shared.SimpleControl.R.MyInternationalizationString.Connecting));
-                    dateTime = DateTime.Now;
-                });
+                //Application.RunOnMainThread (() => {
+                //    if (5 < (DateTime.Now - dateTime).TotalSeconds) {
+                //        return;
+                //    }
+                //    //MainPage.Loading.Start (Language.StringByID (Shared.SimpleControl.R.MyInternationalizationString.Connecting));
+                //    dateTime = DateTime.Now;
+                //});
                 if (!MainPage.LoginUser.IsLogin) {
                     return;
                 }
@@ -104,10 +104,11 @@
                                         //Console.WriteLine ("Topic={0}", aesDecryptTopic);
 
                                         if (aesDecryptTopic == $"NotifyBusGateWayInfoChagne/{CurRemoteMACInfo.md5_mac_string}") {//缃戝叧涓婄嚎锛岄渶瑕佹洿鏂癮eskey
-                                                                                                                                 //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
+                                            Console.WriteLine ("缃戝叧涓婄嚎锛岄渶瑕佹洿鏂癮eskey");
+                                            //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
                                             var gatewayListUrl = $"{MainPage.RequestHttpsHostMqtt}/Center/Center/GetGatewayPagger"; //App銆丅uspro杞欢鐧诲綍鍚庤幏鍙栫綉鍏冲垪琛� http 璇锋眰
                                             var gatewayListRequestPar = new RemoteRequestParameters () { Mac = CurRemoteMACInfo.mac, LoginAccessToken = mqttRequestParToken, RequestVersion = "RequestVersion1", RequestProtocolType = 0, RequestSource = 1 };
-                                            var gatewayListRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListRequestPar), false, false, gatewayListUrl);
+                                            var gatewayListRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListRequestPar),gatewayListUrl);
                                             var gatewayListRequestResult_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttRemoteInfo> (gatewayListRequestResult.ResponseData.ToString ());
                                             if (gatewayListRequestResult_Obj != null && gatewayListRequestResult_Obj.pageData.Count > 0) {
                                                 CurRemoteMACInfo.aesKey = gatewayListRequestResult_Obj.pageData [0].aesKey;
@@ -189,8 +190,9 @@
                                     //});
                                     Shared.SimpleControl.Phone.UserMiddle.ReadAllDeviceStatus ();
                                     System.Console.WriteLine ($"杩滅▼杩炴帴鎴愬姛");
-
-                                    Utlis.ShowAppLinkStatus (AppLinkStatus.CloudLink);
+                                    if (CommonPage.IsRemote) {
+                                        Utlis.ShowAppLinkStatus (AppLinkStatus.CloudLink);
+                                    }
 
                                     //MainPage.WiFiStatus = "CrabtreeAdd/CloudLink.png";
                                     //UserMiddle.btnLinkStatus.UnSelectedImagePath = MainPage.WiFiStatus;
@@ -222,7 +224,7 @@
                                 //鏂紑鍚庨噸鏂伴摼鎺ラ渶瑕侀噸鏂扮櫥褰曡幏鍙栬繛鎺ョ殑瀵嗙爜
                                 var requestObj = new LoginObj () { Account = MainPage.LoginUser.AccountString.ToLower (), Password = MainPage.LoginUser.Password };
                                 var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
-                                var tempResult = MainPage.RequestHttps (API.Login, requestJson, false);
+                                var tempResult = MainPage.RequestHttps (API.Login, requestJson);
                                 if (tempResult == null) {
                                     Application.RunOnMainThread (() => {
                                         MainPage.Loading.Hide ();
@@ -250,10 +252,16 @@
                                 requestObj3.ReqDto.HomeId = UserConfig.Instance.CurrentRegion.Id;
                                 requestObj3.ReqDto.PageSetting.Page = 1;
                                 requestObj3.ReqDto.PageSetting.PageSize = 999;
+                                string urlHead = MainPage.RequestHttpsHost;
+                                if (requestObj3.IsOtherAccountCtrl) {
+                                    urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl;
+                                    requestObj3.ReqDto.LoginAccessToken = UserConfig.Instance.MasterAccountToken;
+                                }
+
 
                                 //var requestObj3 = new GatewayByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
                                 var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3);
-                                var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3);
+                                var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3, urlHead);
                                 if (revertObj3.StateCode.ToUpper() == "SUCCESS") {
                                     var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ());
                                     var gatewayList = infoResult.PageData;
@@ -280,7 +288,7 @@
                                     //--绗竴姝ワ細鑾峰彇mqtt閾炬帴鍙傛暟
                                     var mqttInfoUrl = $"{MainPage.RequestHttpsHostMqtt}/Center/Center/GetConnMqttInfo";//鑾峰彇杩炴帴杩滅▼浜戠Emq Mqtt 鏈嶅姟鍣ㄨ繛鎺ヤ俊鎭�
                                     var mqttInfoRequestPar = new RemoteRequestParameters () { LoginAccessToken = mqttRequestParToken, RequestVersion = MainPage.RequestVersion, RequestProtocolType = 0, RequestSource = 1 };
-                                    var mqttInfoRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (mqttInfoRequestPar), false, false, mqttInfoUrl);
+                                    var mqttInfoRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (mqttInfoRequestPar), mqttInfoUrl);
                                     if (mqttInfoRequestResult != null && mqttInfoRequestResult.ResponseData != null) {
                                         var mqttInfoRequestResult_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttInfo> (mqttInfoRequestResult.ResponseData.ToString ());
                                         if (mqttInfoRequestResult_Obj != null) {
@@ -291,7 +299,7 @@
                                             //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
                                             var gatewayListUrl = $"{MainPage.RequestHttpsHostMqtt}/Center/Center/GetGatewayPagger"; //App銆丅uspro杞欢鐧诲綍鍚庤幏鍙栫綉鍏冲垪琛� http 璇锋眰
                                             var gatewayListRequestPar = new RemoteRequestParameters () { LoginAccessToken = mqttRequestParToken, RequestVersion = "RequestVersion1", RequestProtocolType = 0, RequestSource = 1 };
-                                            var gatewayListRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListRequestPar), false, false, gatewayListUrl);
+                                            var gatewayListRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListRequestPar), gatewayListUrl);
                                             var gatewayListRequestResult_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttRemoteInfo> (gatewayListRequestResult.ResponseData.ToString ());
                                             //--鎵惧嚭鏄惁瀛樺湪鍖归厤褰撳墠浣忓畢鐨刴ac锛屽瓨鍦ㄥ啀杩涜杩滅▼銆�
                                             if (UserConfig.Instance.CheckHomeGateways ()) {
@@ -370,7 +378,7 @@
                     }
                     //base64鍔犲瘑
                     var m = new MqttApplicationMessage { Topic = topicName, Payload = messageSend, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce };
-                    if (remoteIsConnected) {
+                    //if (remoteIsConnected) {
                         try {
                             await RemoteMqttClient.PublishAsync (m);
                         } catch (Exception e) {
@@ -380,11 +388,11 @@
                                 await RemoteMqttClient.PublishAsync (m);
                             }
                         }
-                    }
+                    //}
                     break;
                 case 1:
                     topicName = $"/BusGateWayToClient/{CurRemoteMACInfo.macMark}/Common/#";
-                    if (remoteIsConnected) {
+                    //if (remoteIsConnected) {
                         try {
                             await RemoteMqttClient.SubscribeAsync (topicName);
                         } catch (Exception e) {
@@ -394,7 +402,7 @@
                                 await RemoteMqttClient.SubscribeAsync (topicName);
                             }
                         }
-                    }
+                   // }
                     break;
                 case 2:
                     var macStr = CurRemoteMACInfo.mac.ToUpper ();
@@ -412,7 +420,7 @@
                     }
 
                     topicName = $"/NotifyBusGateWayInfoChagne/{CurRemoteMACInfo.md5_mac_string}";
-                    if (remoteIsConnected) {
+                    //if (remoteIsConnected) {
                         try {
                             await RemoteMqttClient.SubscribeAsync (topicName);
                         } catch (Exception e) {
@@ -422,7 +430,7 @@
                                 await RemoteMqttClient.SubscribeAsync (topicName);
                             }
                         }
-                    }
+                    //}
                     break;
 
                 case 3:
@@ -1111,4 +1119,4 @@
 
     }
 }
-*/
\ No newline at end of file
+*/

--
Gitblit v1.8.0