From bbc74a6dae2e90a811b2507c5896fe89aa29ccc0 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 08 一月 2020 11:30:46 +0800
Subject: [PATCH] 2020-01-08 1.替换新服务器接口。

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

diff --git a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
index 7f96fc6..04a2de8 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
@@ -105,7 +105,7 @@
 
                                         if (aesDecryptTopic == $"NotifyBusGateWayInfoChagne/{CurRemoteMACInfo.md5_mac_string}") {//缃戝叧涓婄嚎锛岄渶瑕佹洿鏂癮eskey
                                                                                                                                  //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
-                                            var gatewayListUrl = $"{MainPage.RequestHttpsHost}/Center/Center/GetGatewayPagger"; //App銆丅uspro杞欢鐧诲綍鍚庤幏鍙栫綉鍏冲垪琛� http 璇锋眰
+                                            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_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttRemoteInfo> (gatewayListRequestResult.ResponseData.ToString ());
@@ -139,7 +139,7 @@
                                                 //});
                                                 break;
                                             case "Success":
-                                                MainPage.AddTip (UserConfig.Instance.CurrentRegion.RegionName + ":" + Language.StringByID (Shared.SimpleControl.R.MyInternationalizationString.LinkSuccess));
+                                                MainPage.AddTip (UserConfig.Instance.CurrentRegion.Name + ":" + Language.StringByID (Shared.SimpleControl.R.MyInternationalizationString.LinkSuccess));
                                                 MainPage.WiFiStatus = "CrabtreeAdd/CloudLink.png";
                                                 break;
                                             default:
@@ -189,8 +189,11 @@
                                     //});
                                     Shared.SimpleControl.Phone.UserMiddle.ReadAllDeviceStatus ();
                                     System.Console.WriteLine ($"杩滅▼杩炴帴鎴愬姛");
-                                    MainPage.WiFiStatus = "CrabtreeAdd/CloudLink.png";
-                                    UserMiddle.btnLinkStatus.UnSelectedImagePath = MainPage.WiFiStatus;
+
+                                    Utlis.ShowAppLinkStatus (AppLinkStatus.CloudLink);
+
+                                    //MainPage.WiFiStatus = "CrabtreeAdd/CloudLink.png";
+                                    //UserMiddle.btnLinkStatus.UnSelectedImagePath = MainPage.WiFiStatus;
                                     if (CurRemoteMACInfo != null) {
                                         if (CurRemoteMACInfo.isValid == "InValid") {
                                             MainPage.AddTip ("Remote failed,gateway offline");
@@ -217,9 +220,9 @@
                         try {
                             try {
                                 //鏂紑鍚庨噸鏂伴摼鎺ラ渶瑕侀噸鏂扮櫥褰曡幏鍙栬繛鎺ョ殑瀵嗙爜
-                                var requestObj = new LoginObj () { Account = MainPage.LoginUser.AccountString.ToLower (), Password = MainPage.LoginUser.Password, Company = MainPage.SoftSmsType };
+                                var requestObj = new LoginObj () { Account = MainPage.LoginUser.AccountString.ToLower (), Password = MainPage.LoginUser.Password };
                                 var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
-                                var tempResult = MainPage.RequestHttps ("Login", requestJson, false);
+                                var tempResult = MainPage.RequestHttps (API.Login, requestJson, false);
                                 if (tempResult == null) {
                                     Application.RunOnMainThread (() => {
                                         MainPage.Loading.Hide ();
@@ -242,17 +245,28 @@
                                     return;
                                 }
 
-                                var requestObj3 = new GatewayByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.RegionID };
+                                var requestObj3 = new GetSingleHomeGatewayPaggerObj ();
+                                requestObj3.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
+                                requestObj3.ReqDto.HomeId = UserConfig.Instance.CurrentRegion.Id;
+                                requestObj3.ReqDto.PageSetting.Page = 1;
+                                requestObj3.ReqDto.PageSetting.PageSize = 999;
+
+                                //var requestObj3 = new GatewayByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id };
                                 var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3);
-                                var revertObj3 = MainPage.RequestHttps ("GatewayByRegionList", requestJson3, true, false);
-                                if (revertObj3.StateCode == "SUCCESS") {
-                                    var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GatewayRes>> (revertObj3.ResponseData.ToString ());
-                                    var gatewayList = responseDataObj;
+                                var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3);
+                                if (revertObj3.StateCode.ToUpper() == "SUCCESS") {
+                                    var infoResult = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ());
+                                    var gatewayList = infoResult.PageData;
                                     if (gatewayList != null && gatewayList.Count > 0) {
-                                        UserConfig.Instance.CurrentRegion.MAC = gatewayList [0].MAC;
-                                        UserConfig.Instance.SaveUserConfig ();
-                                        Console.WriteLine ("Remote mqtt get Region MAC : " + gatewayList [0].MAC);
+                                        if (UserConfig.Instance.CheckHomeGateways ()) {
+                                            UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId = gatewayList [0].GatewayUniqueId;
+                                            UserConfig.Instance.SaveUserConfig ();
+                                            Console.WriteLine ("Remote mqtt get Region MAC : " + gatewayList [0].GatewayUniqueId);
+                                        }
                                     }
+                                } else {
+                                    //鎻愮ず閿欒
+                                    //GetSingleHomeGatewayPagger
                                 }
 
                                 if (tempResult == null) {
@@ -264,8 +278,8 @@
                                 }
                                 try {
                                     //--绗竴姝ワ細鑾峰彇mqtt閾炬帴鍙傛暟
-                                    var mqttInfoUrl = $"{MainPage.RequestHttpsHost}/Center/Center/GetConnMqttInfo";//鑾峰彇杩炴帴杩滅▼浜戠Emq Mqtt 鏈嶅姟鍣ㄨ繛鎺ヤ俊鎭�
-                                    var mqttInfoRequestPar = new RemoteRequestParameters () { LoginAccessToken = mqttRequestParToken, RequestVersion = MainPage.CodeIDString, RequestProtocolType = 0, RequestSource = 1 };
+                                    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);
                                     if (mqttInfoRequestResult != null && mqttInfoRequestResult.ResponseData != null) {
                                         var mqttInfoRequestResult_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttInfo> (mqttInfoRequestResult.ResponseData.ToString ());
@@ -275,30 +289,33 @@
                                             username = mqttInfoRequestResult_Obj.connEmqUserName;
                                             passwordRemote = mqttInfoRequestResult_Obj.connEmqPwd;
                                             //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
-                                            var gatewayListUrl = $"{MainPage.RequestHttpsHost}/Center/Center/GetGatewayPagger"; //App銆丅uspro杞欢鐧诲綍鍚庤幏鍙栫綉鍏冲垪琛� http 璇锋眰
+                                            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_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttRemoteInfo> (gatewayListRequestResult.ResponseData.ToString ());
                                             //--鎵惧嚭鏄惁瀛樺湪鍖归厤褰撳墠浣忓畢鐨刴ac锛屽瓨鍦ㄥ啀杩涜杩滅▼銆�
-                                            CurRemoteMACInfo = gatewayListRequestResult_Obj.pageData.Find ((obj) => obj.mac == UserConfig.Instance.CurrentRegion.MAC);
-                                            CurRemoteMACInfo = gatewayListRequestResult_Obj.pageData [0];
-                                            if (CurRemoteMACInfo != null) {
-                                                CurRemoteMACInfo.LoginAccessToken = mqttRequestPar.Token;
-                                                mqttEncryptKey = CurRemoteMACInfo.aesKey;
-                                                var options1 = new MQTTnet.Client.Options.MqttClientOptionsBuilder ()
-                                                                    .WithClientId (clientId)
-                                                                    .WithTcpServer (url.Split (':') [1].Substring ("//".Length), int.Parse (url.Split (':') [2]))
-                                                                    .WithCredentials (username, passwordRemote)
-                                                                    .WithCleanSession ()
-                                                                    .WithCommunicationTimeout (new TimeSpan (0, 0, 20))
-                                                                    .Build ();
+                                            if (UserConfig.Instance.CheckHomeGateways ()) {
+                                                CurRemoteMACInfo = gatewayListRequestResult_Obj.pageData.Find ((obj) => obj.mac == UserConfig.Instance.CurrentRegion.HomeGateways[0].GatewayUniqueId);
+                                                CurRemoteMACInfo = gatewayListRequestResult_Obj.pageData [0];
+                                                if (CurRemoteMACInfo != null) {
+                                                    CurRemoteMACInfo.LoginAccessToken = mqttRequestPar.Token;
+                                                    mqttEncryptKey = CurRemoteMACInfo.aesKey;
+                                                    var options1 = new MQTTnet.Client.Options.MqttClientOptionsBuilder ()
+                                                                        .WithClientId (clientId)
+                                                                        .WithTcpServer (url.Split (':') [1].Substring ("//".Length), int.Parse (url.Split (':') [2]))
+                                                                        .WithCredentials (username, passwordRemote)
+                                                                        .WithCleanSession ()
+                                                                        .WithCommunicationTimeout (new TimeSpan (0, 0, 20))
+                                                                        .Build ();
 
-                                                await DisConnectRemoteMqttClient ("StartRemoteMqtt");
-                                                await RemoteMqttClient.ConnectAsync (options1);
-                                                remoteIsConnected = true;
-                                                await MqttRemoteSend (new byte [] { 0 }, 1);
-                                                await MqttRemoteSend (new byte [] { 0 }, 2);
+                                                    await DisConnectRemoteMqttClient ("StartRemoteMqtt");
+                                                    await RemoteMqttClient.ConnectAsync (options1);
+                                                    remoteIsConnected = true;
+                                                    await MqttRemoteSend (new byte [] { 0 }, 1);
+                                                    await MqttRemoteSend (new byte [] { 0 }, 2);
+                                                }
                                             }
+                                            
                                         }
 
                                     }
@@ -695,7 +712,7 @@
                         var requestObj3 = new GatewayByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.RegionID };
                         var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3);
                         var revertObj3 = MainPage.RequestHttps ("GatewayByRegionList", requestJson3, true, false);
-                        if (revertObj3.StateCode == "SUCCESS") {
+                        if (revertObj3.StateCode.ToUpper() == "SUCCESS") {
                             var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GatewayRes>> (revertObj3.ResponseData.ToString ());
                             var gatewayList = responseDataObj;
                             if (gatewayList != null && gatewayList.Count > 0) {

--
Gitblit v1.8.0