From 2029e64ec0491f7e511dc15bffaf821bfbabe2de Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 20 七月 2020 14:10:22 +0800 Subject: [PATCH] 上传一个很特别的新版本 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs | 182 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 179 insertions(+), 3 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs index 64b64c5..6187c50 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs @@ -131,7 +131,7 @@ Pra.LoginAccessToken = Config.Instance.Token; //缂栬緫浣忓畢 - bool flage = UserCenterLogic.GetResultStatuByRequestHttps("App/EditHome", false, Pra, new List<string> { "NotCheck" }); + bool flage = UserCenterLogic.GetResultStatuByRequestHttps("App/EditHome", false, Pra); if (flage == true) { //鍒锋柊鍐呭瓨鐨勪綇瀹呭悕 @@ -323,7 +323,7 @@ } listHome.Add(home); } - return listHome; + return this.SortHouse(listHome); } /// <summary> @@ -359,7 +359,183 @@ listHome.Add(myHouse); } } - return listHome; + return this.SortHouse(listHome); + } + + #endregion + + #region 鈻� 浣忓畢鎺掑簭___________________________ + + /// <summary> + /// 浣忓畢鎺掑簭 + /// </summary> + /// <param name="i_listHouse"></param> + /// <returns></returns> + public List<House> SortHouse(List<House> i_listHouse) + { + //浠庝竴鍫嗘枃瀛椾腑,鑾峰彇杩欎竴鍫嗘枃瀛楅噷闈㈡暟瀛楀瓧绗︿覆鐨勬渶闀块暱搴� + var listName = new List<string>(); + foreach (var house in i_listHouse) + { + listName.Add(house.Name); + } + int numberLength = this.GetNumberMaxLength(listName); + + var listSort = new List<string[]>(); + var dicHouse = new Dictionary<string, House>(); + foreach (var house in i_listHouse) + { + //涓存椂缂撳瓨 + dicHouse[house.Id] = house; + + var strArry = new string[2]; + strArry[0] = house.Id; + strArry[1] = string.Empty; + + string value = string.Empty; + foreach (var c in house.Name) + { + if (char.IsNumber(c) == true) + { + //鏁板瓧 + value += c.ToString(); + continue; + } + else if (value != string.Empty) + { + //濡傛灉鎴块棿鍚嶅瓧甯︽湁鏁板瓧鐨勮瘽,鍒欏乏杈瑰姞闆�,鍥犱负杩欓噷鏈変釜鎺掑簭鐨勯棶棰� + strArry[1] += value.PadLeft(numberLength, '0'); + value = string.Empty; + } + strArry[1] += c.ToString(); + } + if (value != string.Empty) + { + //浠ユ暟瀛楃粨灏剧殑璇� + strArry[1] += value.PadLeft(numberLength, '0'); + } + listSort.Add(strArry); + } + //鎺掑簭 + listSort.Sort((obj1, obj2) => + { + if (obj1[1].CompareTo(obj2[1]) > 0) + { + return 1; + } + return -1; + }); + var listSortHouse = new List<House>(); + foreach (var strArry in listSort) + { + listSortHouse.Add(dicHouse[strArry[0]]); + } + return listSortHouse; + } + + /// <summary> + /// 浜戠浣忓畢鎺掑簭 + /// </summary> + /// <param name="i_listData"></param> + /// <returns></returns> + 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.Name); + } + int numberLength = this.GetNumberMaxLength(listName); + + var listSort = new List<string[]>(); + var dicHouse = new Dictionary<string, Common.ResponseEntity.ResidenceObj>(); + foreach (var house in i_listData) + { + //涓存椂缂撳瓨 + dicHouse[house.Id] = house; + + var strArry = new string[2]; + strArry[0] = house.Id; + strArry[1] = string.Empty; + + string value = string.Empty; + foreach (var c in house.Name) + { + if (char.IsNumber(c) == true) + { + //鏁板瓧 + value += c.ToString(); + continue; + } + else if (value != string.Empty) + { + //濡傛灉鎴块棿鍚嶅瓧甯︽湁鏁板瓧鐨勮瘽,鍒欏乏杈瑰姞闆�,鍥犱负杩欓噷鏈変釜鎺掑簭鐨勯棶棰� + strArry[1] += value.PadLeft(numberLength, '0'); + value = string.Empty; + } + strArry[1] += c.ToString(); + } + if (value != string.Empty) + { + //浠ユ暟瀛楃粨灏剧殑璇� + strArry[1] += value.PadLeft(numberLength, '0'); + } + listSort.Add(strArry); + } + //鎺掑簭 + listSort.Sort((obj1, obj2) => + { + if (obj1[1].CompareTo(obj2[1]) > 0) + { + return 1; + } + return -1; + }); + var listSortHouse = new List<Common.ResponseEntity.ResidenceObj>(); + foreach (var strArry in listSort) + { + listSortHouse.Add(dicHouse[strArry[0]]); + } + 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 -- Gitblit v1.8.0