From e90209beae6a4e822cecb18e6889f8bda23f630e Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 14 十二月 2020 11:16:06 +0800
Subject: [PATCH] 合并了晾衣架(非新云端)
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs | 366 ++++++++++++++++++++++++---------------------------
1 files changed, 172 insertions(+), 194 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Common/Logic/HdlResidenceLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs
similarity index 67%
rename from ZigbeeApp/Shared/Phone/Common/Logic/HdlResidenceLogic.cs
rename to ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs
index 1e746c4..c27635b 100644
--- a/ZigbeeApp/Shared/Phone/Common/Logic/HdlResidenceLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs
@@ -3,7 +3,7 @@
using System.Collections.Generic;
using System.Text;
-namespace Shared.Phone
+namespace Shared.Phone.UserCenter
{
/// <summary>
/// 浣忓畢瀵硅薄鐨勯�昏緫
@@ -41,20 +41,20 @@
/// <param name="residenceName">浣忓畢鍚嶇О</param>
public string CreatNewResidence(string residenceName)
{
- var pra = new { homeId = 0, homeName = residenceName, homeType = "ZIGBEE" };
+ var Pra = new AddResidencePra();
+ Pra.Name = residenceName;
//娣诲姞浣忓畢
- var result = HdlHttpLogic.Current.RequestResponseFromZigbeeHttps("home-wisdom/home/add", RestSharp.Method.POST, pra);
- //妫�娴嬬姸鎬佺爜
- if (HdlCheckLogic.Current.CheckNetCode(result, ShowNetCodeMode.YES) == false)
+ string resultData = UserCenterLogic.GetResponseDataByRequestHttps("App/AddHome", false, Pra);
+ if (string.IsNullOrEmpty(resultData) == true)
{
return null;
}
- var newInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<NewResidenceInfo>(result.Data.ToString());
+ var newInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<NewResidenceInfo>>(resultData);
//娣诲姞浣忓畢鍒扮紦瀛�
- this.AddHouseToMemmory(newInfo.Id, residenceName);
+ this.AddHouseToMemmory(newInfo[0].Id, residenceName);
- return newInfo.Id;
+ return newInfo[0].Id;
}
/// <summary>
@@ -70,7 +70,7 @@
var home = new Common.House();
home.Id = houseId;
home.Name = houseName;
- home.IsOtherShare = isOthreShare;
+ home.IsOthreShare = isOthreShare;
home.AccountType = accountType;
//鍒涘缓鏂囦欢澶�
@@ -106,7 +106,7 @@
Config.Instance.Home = this.GetHouseByHouseId(residenceId);
Config.Instance.Save();
//鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
- bool result = HdlUserCenterLogic.Current.InitUserCenterMenmoryAndThread(false);
+ bool result = UserCenterLogic.InitUserCenterMenmoryAndThread(false);
//鍏抽棴杩涘害鏉�
ProgressBar.Close();
@@ -126,18 +126,20 @@
/// <returns></returns>
public bool EditorResidenceName(string residenceId, string residenceName)
{
- var pra = new { homeId = Config.Instance.Home.Id, homeType = "ZIGBEE", homeName = residenceName };
- var result = HdlHttpLogic.Current.RequestResponseFromZigbeeHttps("home-wisdom/home/update", RestSharp.Method.POST, pra, null, null, CheckMode.A璐﹀彿鏉冮檺);
- //妫�娴嬬姸鎬佺爜
- if (HdlCheckLogic.Current.CheckNetCode(result, ShowNetCodeMode.YES) == false)
+ var Pra = new EditorResidencePra();
+ Pra.HomeId = residenceId;
+ Pra.Name = residenceName;
+ Pra.IsOtherAccountCtrl = false;
+ Pra.LoginAccessToken = Config.Instance.Token;
+
+ //缂栬緫浣忓畢
+ bool flage = UserCenterLogic.GetResultStatuByRequestHttps("App/EditHome", false, Pra);
+ if (flage == true)
{
- return false;
+ //鍒锋柊鍐呭瓨鐨勪綇瀹呭悕
+ this.EditorHouseByHouseId(residenceId, residenceName);
}
-
- //鍒锋柊鍐呭瓨鐨勪綇瀹呭悕
- this.EditorHouseByHouseId(residenceId, residenceName);
-
- return true;
+ return flage;
}
/// <summary>
@@ -163,55 +165,6 @@
UserView.UserPage.Instance.RefreshAllForm = true;
}
-
- #endregion
-
- #region 鈻� 缂栬緫浣忓畢缁忕含搴____________________
-
- /// <summary>
- /// 缂栬緫浣忓畢缁忕含搴�
- /// </summary>
- /// <param name="i_latitude">绾害</param>
- /// <param name="i_longitude">缁忓害</param>
- /// <param name="i_addresName">浣嶇疆鍚嶇О</param>
- /// <param name="mode">澶辫触鏃舵槸鍚︽樉绀簍ip娑堟伅</param>
- /// <returns></returns>
- public bool EditorResidenceLongitudeAndLatitude(double i_latitude, double i_longitude, string i_addresName, ShowNetCodeMode mode = ShowNetCodeMode.YES)
- {
- //濡傛灉涓嶆槸铏氭嫙浣忓畢,鎵嶆洿鏂颁簯绔�
- if (Config.Instance.Home.IsVirtually == true)
- {
- //淇濆瓨缂撳瓨
- Config.Instance.Home.Longitude = i_longitude;
- Config.Instance.Home.Latitude = i_latitude;
- Config.Instance.Home.ResidenceAddressName = i_addresName;
- Config.Instance.Home.Save();
- return true;
- }
-
- var pra = new { homeId = Config.Instance.Home.Id, homeType = "ZIGBEE", latitude = i_latitude, longitude = i_longitude };
- var result = HdlHttpLogic.Current.RequestResponseFromZigbeeHttps("home-wisdom/home/update", RestSharp.Method.POST, pra, null, null, CheckMode.A璐﹀彿鏉冮檺);
- //妫�娴嬬姸鎬佺爜
- if (HdlCheckLogic.Current.CheckNetCode(result, mode) == false)
- {
- return false;
- }
- //淇濆瓨缂撳瓨
- Config.Instance.Home.Longitude = i_longitude;
- Config.Instance.Home.Latitude = i_latitude;
- Config.Instance.Home.ResidenceAddressName = i_addresName;
- Config.Instance.Home.Save();
-
- //璁剧疆鍏ㄩ儴缃戝叧鐨勪綇瀹呭湴鍧�
- var listGateway = HdlGatewayLogic.Current.GetAllLocalGateway();
- foreach (var gateway in listGateway)
- {
- //涓嶅垽鏂槸鍚﹀け璐�
- HdlGatewayLogic.Current.SetGatewaySite(gateway.GwId, i_longitude, i_latitude, ShowErrorMode.NO);
- }
-
- return true;
- }
#endregion
@@ -252,120 +205,105 @@
#endregion
#region 鈻� 鑾峰彇浜戠浣忓畢鍒楄〃___________________
-
- /// <summary>
- /// 鐧婚檰鐨勬椂鍊�,鑾峰彇浜戠浣忓畢鍒楄〃(0:褰撳墠娌℃湁缃戠粶鐨勬儏鍐典笅鍔犺浇鏈湴浣忓畢 1:閫氳繃鑱旂綉鍔犺浇鍙婃牎楠屾湰鍦颁綇瀹�)
- /// </summary>
- /// <param name="mode">澶辫触鏃舵槸鍚︽樉绀簍ip娑堟伅</param>
- /// <returns></returns>
- public int GetHomeListsFromDbOnLogin(ShowNetCodeMode mode = ShowNetCodeMode.YES)
- {
- //鑾峰彇浜戠浣忓畢鏁版嵁
- var listHouseData = this.GetHomeListsFromDb(mode);
- if (listHouseData == null)
- {
- return 0;
- }
-
- //娓呯┖褰撳墠浣忓畢鍒楄〃
- Config.Instance.HomeFilePathList.Clear();
- var listHouse = new List<House>();
- foreach (var residence in listHouseData)
- {
- //鍒锋柊浣忓畢瀵硅薄鐨勭紦瀛�
- var house = this.RefreshResidenceMemory(residence);
-
- listHouse.Add(house);
- }
-
- //妫�娴嬫湰鍦扮殑浣忓畢鏂囦欢鏄惁鍚堟硶
- var listLocal = this.GetAllLocalResidenceListByDirectory();
- foreach (var myHouse in listLocal)
- {
- //濡傛灉鏈湴瀛樺湪涓嶅睘浜庝粬鐨勪綇瀹呮枃浠�,鍒欏垹闄�
- if (myHouse.HouseDataDiv == 1 && Config.Instance.HomeFilePathList.Contains(myHouse.FileName) == false)
- {
- string housePath = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, myHouse.Id);
- HdlFileLogic.Current.DeleteDirectory(housePath);
- }
- }
-
- //濡傛灉鍒囨崲浜嗚处鍙�,鎴栬�呭師鏉ョ殑id涓嶅瓨鍦�,鍒欓噸缃綇瀹匢D
- if (Config.Instance.TheSameLoginAccount == false ||
- Config.Instance.HomeFilePathList.Find((obj) => obj == $"House_{Config.Instance.HomeId}.json") == null)
- {
- Config.Instance.HomeId = listHouse.Count > 0 ? listHouse[0].Id : string.Empty;
- foreach (var house in listHouse)
- {
- //鍒濆閫夋嫨瀹冭嚜宸辩殑浣忓畢
- if (house.IsOtherShare == false)
- {
- Config.Instance.HomeId = house.Id;
- Config.Instance.Home = GetHouseByHouseId(house.Id);
- break;
- }
- }
- }
- Config.Instance.Save();
- return 1;
- }
-
/// <summary>
/// 鑾峰彇浜戠浣忓畢鍒楄〃
/// </summary>
- /// <param name="mode">澶辫触鏃舵槸鍚︽樉绀簍ip娑堟伅</param>
+ /// <param name="checkNetwork">鏄惁妫�娴嬬綉缁�,濡傛灉璁剧疆妫�娴嬬殑璇�,褰撲笉鑳借仈缃戞椂,鐩存帴杩斿洖鏈湴浣忓畢</param>
/// <returns></returns>
- public List<ResidenceInformation> GetHomeListsFromDb(ShowNetCodeMode mode = ShowNetCodeMode.YES)
+ public List<string> GetHomeListsFromDb(bool checkNetwork)
{
- var pra = new { homeType = "ZIGBEE" };
-
- var result = HdlHttpLogic.Current.RequestResponseFromZigbeeHttps("home-wisdom/home/list", RestSharp.Method.POST, pra);
- //妫�娴嬬姸鎬佺爜
- if (HdlCheckLogic.Current.CheckNetCode(result, mode) == false)
+ if (checkNetwork == true && HdlWifiLogic.Current.CanAccessHttp == false)
{
- return null;
+ //褰撳墠鏃犳硶鑱旂綉
+ return Config.Instance.HomeFilePathList;
}
- var listTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceInformation>>(result.Data.ToString());
- var listData = new List<ResidenceInformation>();
- foreach (var data in listTemp)
+ var requestObj = new SendDataToServer.ResidenceListReqDto()
{
- if (data.HomeType == "ZIGBEE")
+ RequestVersion = CommonPage.RequestVersion,
+ ReqDto = new SendDataToServer.ResidenceListObj()
{
- listData.Add(data);
+ LoginAccessToken = Config.Instance.Token,
+ PageSetting = new SendDataToServer.ResidenceListPageSettingObj { PageSize = 999 }
+ }
+ };
+ try
+ {
+ var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
+ var revertObj = CommonPage.Instance.RequestHttpsZigbeeAsync("App/GetHomePager", System.Text.Encoding.UTF8.GetBytes(requestJson), 5);
+ if (revertObj == null)
+ {
+ return null;
+ }
+ if (revertObj.StateCode.ToUpper() == "SUCCESS")
+ {
+ var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.ResidenceRes>(revertObj.ResponseData.ToString());
+ if (responseDataObj.TotalCount > 0)
+ {
+ //娓呯┖褰撳墠浣忓畢鍒楄〃
+ Config.Instance.HomeFilePathList.Clear();
+ var listHouse = new List<House>();
+ foreach (var residence in responseDataObj.PageData)
+ {
+ Config.Instance.HomeFilePathList.Add($"House_{residence.Id}.json");
+ var house = GetHouseByHouseId(residence.Id);
+ if (house == null)
+ {
+ house = new House
+ {
+ Id = residence.Id,
+ Name = residence.Name,
+ IsOthreShare = residence.IsOthreShare,
+ AccountType = residence.AccountType,
+ MainUserDistributedMark = residence.MainUserDistributedMark,
+ Longitude = residence.Longitude,
+ Latitude = residence.Latitude
+ };
+ }
+ else
+ {
+ house.Id = residence.Id;
+ house.Name = residence.Name;
+ house.IsOthreShare = residence.IsOthreShare;
+ house.AccountType = residence.AccountType;
+ house.MainUserDistributedMark = residence.MainUserDistributedMark;
+ house.Longitude = residence.Longitude;
+ house.Latitude = residence.Latitude;
+ }
+ Global.CreateHomeDirectory(residence.Id);
+ house.Save(false);
+ listHouse.Add(house);
+ }
+ //妫�娴嬫湰鍦扮殑浣忓畢鏂囦欢鏄惁鍚堟硶
+ var listLocal = this.GetAllLocalResidenceListByDirectory();
+ foreach (var myHouse in listLocal)
+ {
+ //濡傛灉鏈湴瀛樺湪涓嶅睘浜庝粬鐨勪綇瀹呮枃浠�,鍒欏垹闄�
+ if (myHouse.HouseDataDiv == 1 && Config.Instance.HomeFilePathList.Contains(myHouse.FileName) == false)
+ {
+ string housePath = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, myHouse.Id);
+ HdlFileLogic.Current.DeleteDirectory(housePath);
+ }
+ }
+ //濡傛灉鍒囨崲浜嗚处鍙�,鎴栬�呭師鏉ョ殑id涓嶅瓨鍦�,鍒欓噸缃綇瀹匢D
+ if (Config.Instance.TheSameLoginAccount == false ||
+ Config.Instance.HomeFilePathList.Contains($"House_{Config.Instance.HomeId}.json") == false)
+ {
+ Config.Instance.HomeId = listHouse[0].Id;
+ if (listHouse.Count > 0)
+ {
+ Config.Instance.HomeId = listHouse[0].Id;
+ Config.Instance.Home = GetHouseByHouseId(listHouse[0].Id);
+ }
+ }
+ Config.Instance.Save();
+ }
}
}
- return this.SortHouse(listData);
- }
-
- /// <summary>
- /// 鍒锋柊浣忓畢瀵硅薄鐨勭紦瀛�
- /// </summary>
- /// <param name="i_residence">浜戠杩斿洖鐨勬暟鎹浆鎹㈡垚鐨勬暟鎹�</param>
- public House RefreshResidenceMemory(ResidenceInformation i_residence)
- {
- string fileName = $"House_{i_residence.Id}.json";
- if (Config.Instance.HomeFilePathList.Contains(fileName) == false)
+ catch (Exception ex)
{
- Config.Instance.HomeFilePathList.Add(fileName);
+ HdlLogLogic.Current.WriteLog(ex);
}
- var house = this.GetHouseByHouseId(i_residence.Id);
- if (house == null)
- {
- house = new House();
- }
- house.Id = i_residence.Id;
- house.Name = i_residence.HomeName;
- house.IsOtherShare = i_residence.IsOtherShare;
- house.AccountType = i_residence.AccountType == "ADMIN" ? 1 : 0;
- house.Longitude = i_residence.Longitude;
- house.Latitude = i_residence.Latitude;
- house.IsRemoteControl = i_residence.IsRemoteControl;
-
- Global.CreateHomeDirectory(i_residence.Id);
-
- house.Save(false);
-
- return house;
+ return Config.Instance.HomeFilePathList;
}
#endregion
@@ -451,7 +389,7 @@
{
listName.Add(house.Name);
}
- int numberLength = HdlCommonLogic.Current.GetNumberMaxLength(listName);
+ int numberLength = this.GetNumberMaxLength(listName);
var listSort = new List<string[]>();
var dicHouse = new Dictionary<string, House>();
@@ -510,18 +448,18 @@
/// </summary>
/// <param name="i_listData"></param>
/// <returns></returns>
- public List<ResidenceInformation> SortHouse(List<ResidenceInformation> i_listData)
+ public List<Common.ResponseEntity.ResidenceObj> SortHouse(List<Common.ResponseEntity.ResidenceObj> i_listData)
{
//浠庝竴鍫嗘枃瀛椾腑,鑾峰彇杩欎竴鍫嗘枃瀛楅噷闈㈡暟瀛楀瓧绗︿覆鐨勬渶闀块暱搴�
var listName = new List<string>();
foreach (var house in i_listData)
{
- listName.Add(house.HomeName);
+ listName.Add(house.Name);
}
- int numberLength = HdlCommonLogic.Current.GetNumberMaxLength(listName);
+ int numberLength = this.GetNumberMaxLength(listName);
var listSort = new List<string[]>();
- var dicHouse = new Dictionary<string, ResidenceInformation>();
+ var dicHouse = new Dictionary<string, Common.ResponseEntity.ResidenceObj>();
foreach (var house in i_listData)
{
//涓存椂缂撳瓨
@@ -532,7 +470,7 @@
strArry[1] = string.Empty;
string value = string.Empty;
- foreach (var c in house.HomeName)
+ foreach (var c in house.Name)
{
if (char.IsNumber(c) == true)
{
@@ -564,7 +502,7 @@
}
return -1;
});
- var listSortHouse = new List<ResidenceInformation>();
+ var listSortHouse = new List<Common.ResponseEntity.ResidenceObj>();
foreach (var strArry in listSort)
{
listSortHouse.Add(dicHouse[strArry[0]]);
@@ -572,26 +510,47 @@
return listSortHouse;
}
+ /// <summary>
+ /// 浠庝竴鍫嗘枃瀛椾腑,鑾峰彇杩欎竴鍫嗘枃瀛楅噷闈㈡暟瀛楀瓧绗︿覆鐨勬渶闀块暱搴�
+ /// </summary>
+ /// <param name="listText"></param>
+ /// <returns></returns>
+ private int GetNumberMaxLength(List<string> listText)
+ {
+ int maxLength = 0;
+ foreach (var text in listText)
+ {
+ string value = string.Empty;
+ foreach (var c in text)
+ {
+ if (char.IsNumber(c) == true)
+ {
+ //鏁板瓧
+ value += c.ToString();
+ continue;
+ }
+ else if (value != string.Empty)
+ {
+ //鍒ゆ柇鏁板瓧闀垮害
+ if (maxLength <= value.Length)
+ {
+ maxLength = value.Length;
+ }
+ value = string.Empty;
+ }
+ }
+ //鍒ゆ柇鏁板瓧闀垮害
+ if (maxLength <= value.Length)
+ {
+ maxLength = value.Length;
+ }
+ }
+ return maxLength;
+ }
+
#endregion
#region 鈻� 鍒犻櫎浣忓畢___________________________
-
- /// <summary>
- /// 鍒犻櫎浜戠浣忓畢
- /// </summary>
- /// <param name="houseId">鍒犻櫎鎸囧畾浣忓畢</param>
- /// <returns></returns>
- public bool DeleteCloundHouse(string houseId)
- {
- var pra = new { homeId = houseId };
- var result = HdlHttpLogic.Current.RequestResponseFromZigbeeHttps("home-wisdom/home/delete", RestSharp.Method.POST, pra);
- //妫�娴嬬姸鎬佺爜
- if (HdlCheckLogic.Current.CheckNetCode(result, ShowNetCodeMode.YES) == false)
- {
- return false;
- }
- return true;
- }
/// <summary>
/// 鍒犻櫎浣忓畢
@@ -694,6 +653,25 @@
#region 鈻� 缁撴瀯浣揰____________________________
/// <summary>
+ /// 娣诲姞浣忓畢鐨勫惎鍔ㄥ弬鏁�
+ /// </summary>
+ private class AddResidencePra : IfacePraCommon
+ {
+ /// <summary>
+ /// RequestVersion
+ /// </summary>
+ public string RequestVersion = Common.CommonPage.RequestVersion;
+ /// <summary>
+ /// LoginAccessToken
+ /// </summary>
+ public string LoginAccessToken = Common.Config.Instance.Token;
+ /// <summary>
+ /// Name
+ /// </summary>
+ public string Name = string.Empty;
+ }
+
+ /// <summary>
/// 鏂颁綇瀹呯殑淇℃伅
/// </summary>
private class NewResidenceInfo
--
Gitblit v1.8.0