From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 09:07:13 +0800 Subject: [PATCH] 新云端Ver1.3 --- ZigbeeApp/Shared/Phone/UserCenter/UserMain/MessageManagementForm.cs | 260 +++++++++++++++++++-------------------------------- 1 files changed, 97 insertions(+), 163 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/MessageManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/MessageManagementForm.cs index 7a129f1..5388ddd 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/MessageManagementForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/MessageManagementForm.cs @@ -68,10 +68,10 @@ /// <summary> /// 鍒濆鍖栦腑閮ㄤ俊鎭� /// </summary> - private async void InitMiddleData(bool showReload) + private void InitMiddleData(bool showReload) { //鑾峰彇鏁版嵁 - var dicData = await this.GetMessageData(); + var dicData = this.GetMessageData(); if (dicData == null) { if (showReload == true) @@ -157,7 +157,7 @@ framBack.Name = dateIndex.ToString(); framBack.Height = Application.GetRealHeight(100); framBack.BackgroundColor = UserCenterColor.Current.White; - listView.AddChidrenFrame(framBack); + listView.AddChidren(framBack); //鏃ユ湡 string strMonth = Language.StringByID(R.MyInternationalizationString.Month); @@ -167,9 +167,9 @@ framBack.AddChidren(frameDate); var btnDate = new NormalViewControl(500, 60, true); btnDate.TextSize = 15; - btnDate.X = ControlCommonResourse.XXLeft; + btnDate.X = HdlControlResourse.XXLeft; btnDate.Y = Application.GetRealHeight(35); - btnDate.Text = Convert.ToDateTime(listGroup[0][0].CreatedOnUtc).ToString("MM" + strMonth + "dd" + strDate); + btnDate.Text = HdlCommonLogic.Current.ConvertUtcTimeToLocalTime2(listGroup[0][0].CreateTime).ToString("MM" + strMonth + "dd" + strDate); frameDate.AddChidren(btnDate); } @@ -179,7 +179,7 @@ for (int j = 0; j < listData[i].listMsg.Count; j++) { //璁剧疆宸茶鐨勫垵濮嬪�� - listData[i].ListReading.Add(listData[i].IsReading); + listData[i].ListReading.Add(listData[i].IsRead); //娣诲姞淇℃伅琛� bool addLine = i != listData.Count - 1 || j != listData[i].listMsg.Count - 1; this.AddMsgRowControl(framBack, listData[i], j, addLine); @@ -229,7 +229,7 @@ /// </summary> private void ShowBottomMenu() { - bool authority = UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2; + bool authority = HdlUserCenterResourse.ResidenceOption.AuthorityNo == 1 || HdlUserCenterResourse.ResidenceOption.AuthorityNo == 2; var menuContr = new BottomMenuSelectForm(); menuContr.AddForm(authority == true ? 2 : 1); @@ -279,14 +279,14 @@ var btnMsg = rowControl.frameTable.AddMostRightView(recordInfo.listMsg[msgIndex], 600, 60); btnMsg.TextColor = UserCenterColor.Current.TextGrayColor3; btnMsg.Y = Application.GetRealHeight(5) + rowControl.frameTable.chidrenYaxis; - rowControl.frameTable.AddChidren(btnMsg, ChidrenBindMode.BindEventOnly); + rowControl.frameTable.AddChidren(btnMsg, ChidrenBindMode.BindEvent); //鏃堕棿 var btnTime = rowControl.frameTable.AddMostRightView("", 200, 50); btnTime.TextColor = UserCenterColor.Current.TextGrayColor1; btnTime.Y = btnMsg.Bottom + Application.GetRealHeight(12); - var convertTime = UserCenterLogic.ConvertUtcTimeToLocalTime(recordInfo.CreatedOnUtc); + var convertTime = HdlCommonLogic.Current.ConvertUtcTimeToLocalTime2(recordInfo.CreateTime); btnTime.Text = convertTime.ToString("HH锛歮m"); - rowControl.frameTable.AddChidren(btnTime, ChidrenBindMode.BindEventOnly); + rowControl.frameTable.AddChidren(btnTime, ChidrenBindMode.BindEvent); //搴曠嚎 if (addLine == true) { @@ -312,11 +312,11 @@ btnNewTip.UnSelectedImagePath = "Item/NewVersion.png"; btnNewTip.Y = Application.GetRealHeight(9) + rowControl.frameTable.chidrenYaxis; btnNewTip.X = btnMsgObject.Right + Application.GetRealWidth(10); - rowControl.frameTable.AddChidren(btnNewTip, ChidrenBindMode.BindEventOnly); + rowControl.frameTable.AddChidren(btnNewTip, ChidrenBindMode.BindEvent); } //涓昏涓讳汉鍜岀鐞嗗憳鑳藉鍒犻櫎 - if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2) + if (HdlUserCenterResourse.ResidenceOption.AuthorityNo == 1 || HdlUserCenterResourse.ResidenceOption.AuthorityNo == 2) { //鍒犻櫎 var btnDelete = rowControl.AddDeleteControl(); @@ -324,15 +324,15 @@ { //纭鍒犻櫎娑堟伅? string msg = Language.StringByID(R.MyInternationalizationString.uDeleteMessageMsg); - this.ShowMassage(ShowMsgType.Confirm, msg, async () => + this.ShowMassage(ShowMsgType.Confirm, msg, () => { - await this.DeleteMsg(recordInfo.Id, frameList, rowControl); + this.DeleteMsg(recordInfo.Id, frameList, rowControl); }); }; } //鐐瑰嚮 - rowControl.frameTable.ButtonClickEvent += async (sender, e) => + rowControl.frameTable.ButtonClickEvent += (sender, e) => { if (recordInfo.ListReading[msgIndex] == true) { @@ -348,7 +348,7 @@ if (sender != null) { //鏍囪宸茶(涓嶇瀹冩垚鍔熶笉鎴愬姛) - await this.SetTickIsRead(recordInfo.Id); + this.SetTickIsRead(recordInfo.Id); } }; } @@ -361,13 +361,9 @@ /// 鏍囪宸茶 /// </summary> /// <param name="strId"></param> - private async Task<bool> SetTickIsRead(string strId) + private bool SetTickIsRead(string strId) { - var pra = new MessageReadStatuPra(); - pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - pra.Id = strId; - var result = await UserCenterLogic.GetResultStatuByRequestHttps("MessageCenter/TagMessageMessageCenterItem", true, pra); - return result; + return HdlMessageLogic.Current.SetTickIsRead(strId); } /// <summary> @@ -382,15 +378,13 @@ //纭鏍囪鍏ㄩ儴娑堟伅涓哄凡璇�? this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uUnTipAllMessageMsg), () => { - HdlThreadLogic.Current.RunThread(async () => + HdlThreadLogic.Current.RunThread(() => { //鎵撳紑杩涘害鏉� this.ShowProgressBar(); - var pra = new MessageReadStatuPra(); - pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - pra.TagAllOrClearType = 0; - var result = await UserCenterLogic.GetResultStatuByRequestHttps("MessageCenter/TagAllOrClearMessageCenter", true, pra); + var result = HdlMessageLogic.Current.SetAllTickIsRead(); + //鍏抽棴杩涘害鏉� this.CloseProgressBar(); if (result == false) @@ -420,12 +414,9 @@ /// <param name="strId"></param> /// <param name="frameList"></param> /// <param name="rowContr"></param> - private async Task<bool> DeleteMsg(string strId, FrameListControl frameList, RowLayoutControl rowContr) + private bool DeleteMsg(string strId, FrameListControl frameList, RowLayoutControl rowContr) { - var pra = new MessageReadStatuPra(); - pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - pra.Id = strId; - var result = await UserCenterLogic.GetResultStatuByRequestHttps("MessageCenter/DelMessageCenterItem", true, pra); + var result = HdlMessageLogic.Current.DeleteCloundMessage(strId); if (result == false) { return false; @@ -457,15 +448,12 @@ //纭鍒犻櫎鍏ㄩ儴娑堟伅? this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uDeleteAllMessageMsg), () => { - HdlThreadLogic.Current.RunThread(async () => + HdlThreadLogic.Current.RunThread(() => { //鎵撳紑杩涘害鏉� this.ShowProgressBar(); - var pra = new MessageReadStatuPra(); - pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - pra.TagAllOrClearType = 1; - var result = await UserCenterLogic.GetResultStatuByRequestHttps("MessageCenter/TagAllOrClearMessageCenter", true, pra); + var result = HdlMessageLogic.Current.DeleteAllCloundMessage(); if (result == false) { //鍏抽棴杩涘害鏉� @@ -552,101 +540,33 @@ /// 鑾峰彇娑堟伅璁板綍 /// </summary> /// <returns></returns> - private async Task<Dictionary<string, List<List<MessageRecordInfo>>>> GetMessageData() + private Dictionary<string, List<List<MessageRecordInfo>>> GetMessageData() { this.dicAllRow = new Dictionary<string, RowLayoutControl>(); - var allListData = new List<MessageRecordInfo>(); - - var pra = new MessageInfoPra(); - pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - - //浼犳劅鍣ㄤ笂鎶� - pra.Topic = "/IASInfoReport"; - var dataInfo = await this.GetMessageDataFromDb(pra); - if (dataInfo == null) - { - return null; - } - allListData.AddRange(dataInfo); - - //闂ㄩ攣涓婃姤 - pra.Topic = "/Alarms/SendAlarmInform"; - dataInfo = await this.GetMessageDataFromDb(pra); - if (dataInfo == null) - { - return null; - } - allListData.AddRange(dataInfo); - - //鎾ら槻 - pra.Topic = "/Security/WithdrawMode_Respon"; - dataInfo = await this.GetMessageDataFromDb(pra); - if (dataInfo == null) - { - return null; - } - allListData.AddRange(dataInfo); - - //甯冮槻 - pra.Topic = "/Security/EnableMode_Respon"; - dataInfo = await this.GetMessageDataFromDb(pra); - if (dataInfo == null) - { - return null; - } - allListData.AddRange(dataInfo); - - //閫昏緫瑙﹀彂涓婃姤 - pra.Topic = "/Logic/Execute_Respon"; - dataInfo = await this.GetMessageDataFromDb(pra); - if (dataInfo == null) - { - return null; - } - allListData.AddRange(dataInfo); - - //鍦烘櫙瑙﹀彂涓婃姤 - pra.Topic = "/Scene/Exec_Respon"; - dataInfo = await this.GetMessageDataFromDb(pra); - if (dataInfo == null) - { - return null; - } - allListData.AddRange(dataInfo); - - //鍚堝苟鏁版嵁 - return this.MergeMessageRecordData(allListData); - } - - /// <summary> - /// 浠庝簯绔幏鍙栨暟鎹� - /// </summary> - /// <param name="pra"></param> - /// <returns></returns> - private async Task<List<MessageRecordInfo>> GetMessageDataFromDb(MessageInfoPra pra) - { - var result = await UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", true, pra); - if (result == null) - { - return null; - } - var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result); var listData = new List<MessageRecordInfo>(); - for (int i = 0; i < dataInfo.PageData.Count; i++) + var listMsg = HdlMessageLogic.Current.GetListMessageFromDb(); + if (listMsg == null) + { + return new Dictionary<string, List<List<MessageRecordInfo>>>(); + } + + for (int i = 0; i < listMsg.Count; i++) { try { - var data = dataInfo.PageData[i]; + var data = listMsg[i]; //澶勭悊娑堟伅绫诲瀷 - this.AdjustMsgContent(ref data); - - listData.Add(data); + if (this.AdjustMsgContent(ref data) == true) + { + listData.Add(data); + } } catch { continue; } } - return listData; + //鍚堝苟鏁版嵁 + return this.MergeMessageRecordData(listData); } /// <summary> @@ -663,12 +583,12 @@ var listSortKeys = new List<string>(); foreach (var data in dataInfo) { - if (dicTemp.ContainsKey(data.CreatedOnUtc) == false) + if (dicTemp.ContainsKey(data.CreateTime) == false) { - dicTemp[data.CreatedOnUtc] = new List<MessageRecordInfo>(); - listSortKeys.Add(data.CreatedOnUtc); + dicTemp[data.CreateTime] = new List<MessageRecordInfo>(); + listSortKeys.Add(data.CreateTime); } - dicTemp[data.CreatedOnUtc].Add(data); + dicTemp[data.CreateTime].Add(data); } listSortKeys.Sort(); @@ -678,30 +598,30 @@ var listData = dicTemp[listSortKeys[i]]; foreach (var data2 in listData) { - if (data2.Topic == "/DoorLock/DoorLockOperatingEventNotificationCommand") + try { - //鏆傛椂涓嶅鐞嗚繖涓富棰� - continue; + if (data2.MessageTitle == "/DoorLock/DoorLockOperatingEventNotificationCommand") + { + //鏆傛椂涓嶅鐞嗚繖涓富棰� + continue; + } + string strDay = HdlCommonLogic.Current.ConvertUtcTimeToLocalTime2(data2.CreateTime).ToString("yyyy/MM/dd"); + //鎸夋瘡澶╁垎缁� + if (dicData.ContainsKey(strDay) == false) + { + listGroup = new List<MessageRecordInfo>(); + dicData[strDay] = new List<List<MessageRecordInfo>>(); + dicData[strDay].Add(listGroup); + } + if (listGroup.Count > 20) + { + //姣�20涓竴缁� + listGroup = new List<MessageRecordInfo>(); + dicData[strDay].Add(listGroup); + } + listGroup.Add(data2); } - string[] myArry = data2.CreatedOnUtc.Split(new string[] { "T" }, StringSplitOptions.RemoveEmptyEntries); - if (myArry.Length != 2) - { - continue; - } - string dicKeys = myArry[0];//鏃ユ湡 - if (dicData.ContainsKey(dicKeys) == false) - { - listGroup = new List<MessageRecordInfo>(); - dicData[dicKeys] = new List<List<MessageRecordInfo>>(); - dicData[dicKeys].Add(listGroup); - } - if (listGroup.Count > 20) - { - //姣�20涓竴缁� - listGroup = new List<MessageRecordInfo>(); - dicData[dicKeys].Add(listGroup); - } - listGroup.Add(data2); + catch { } } } return dicData; @@ -715,39 +635,50 @@ /// 澶勭悊娑堟伅绫诲瀷 /// </summary> /// <param name="recordInfo">娑堟伅鏁版嵁</param> - private void AdjustMsgContent(ref MessageRecordInfo recordInfo) + private bool AdjustMsgContent(ref MessageRecordInfo recordInfo) { - var jobject = JObject.Parse(recordInfo.PayloadJson); //浼犳劅鍣ㄤ笂鎶� - if (recordInfo.Topic == "/IASInfoReport") + if (recordInfo.MessageTitle == "/IASInfoReport") { + var jobject = JObject.Parse(recordInfo.MessageExpand); this.SensorDeviceReportPush(jobject, ref recordInfo); } //闂ㄩ攣涓婃姤 - else if (recordInfo.Topic == "/Alarms/SendAlarmInform") + else if (recordInfo.MessageTitle == "/Alarms/SendAlarmInform") { + var jobject = JObject.Parse(recordInfo.MessageExpand); this.DoorLockDeviceReportPush(jobject, ref recordInfo); } //鎾ら槻 - else if (recordInfo.Topic == "/Security/WithdrawMode_Respon") + else if (recordInfo.MessageTitle == "/Security/WithdrawMode_Respon") { + var jobject = JObject.Parse(recordInfo.MessageExpand); this.RemoveSafetyGarrisonPush(jobject, ref recordInfo); } //甯冮槻 - else if (recordInfo.Topic == "/Security/EnableMode_Respon") + else if (recordInfo.MessageTitle == "/Security/EnableMode_Respon") { + var jobject = JObject.Parse(recordInfo.MessageExpand); this.SetSafetyGarrisonPush(jobject, ref recordInfo); } //閫昏緫瑙﹀彂涓婃姤 - else if (recordInfo.Topic == "/Logic/Execute_Respon") + else if (recordInfo.MessageTitle == "/Logic/Execute_Respon") { + var jobject = JObject.Parse(recordInfo.MessageExpand); this.LogicExecutePush(jobject, ref recordInfo); } //鍦烘櫙瑙﹀彂涓婃姤 - else if (recordInfo.Topic == "/Scene/Exec_Respon") + else if (recordInfo.MessageTitle == "/Scene/Exec_Respon") { + var jobject = JObject.Parse(recordInfo.MessageExpand); this.SceneExecPush(jobject, ref recordInfo); } + else + { + //涓嶅鐞嗙殑涓婚 + return false; + } + return true; } #endregion @@ -763,21 +694,22 @@ var ias = new IASZone() { DeviceAddr = receiveData.Value<string>("DeviceAddr"), DeviceEpoint = receiveData.Value<int>("Epoint") }; ias.iASInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.IASInfoData>(receiveData["Data"].ToString()); //鍥炬爣 - var localDevice = Common.LocalDevice.Current.GetDevice(ias.DeviceAddr, ias.DeviceEpoint); + var localDevice = HdlDeviceCommonLogic.Current.GetDevice(ias.DeviceAddr, ias.DeviceEpoint); if (localDevice == null) { recordInfo.IconPath = "Device/Sensor.png"; //娑堟伅绫诲瀷:浼犳劅鍣� - recordInfo.MsgObjectText = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId1200); + var infoContent = HdlDeviceCommonLogic.Current.GetDeviceModelIdNameInfo("A402"); + recordInfo.MsgObjectText = infoContent != null ? infoContent.A瀹樻柟鍚嶅瓧 : string.Empty; } else { string selectPath = string.Empty; string unselecPath = string.Empty; - Common.LocalDevice.Current.GetDeviceIcon(localDevice, ref unselecPath, ref selectPath); + HdlDeviceCommonLogic.Current.GetDeviceIcon(localDevice, ref unselecPath, ref selectPath); recordInfo.IconPath = unselecPath; //娑堟伅绫诲瀷 - recordInfo.MsgObjectText = Common.LocalDevice.Current.GetDeviceEpointName(localDevice); + recordInfo.MsgObjectText = HdlDeviceCommonLogic.Current.GetDeviceEpointName(localDevice); } //娑堟伅 @@ -821,21 +753,22 @@ private void DoorLockDeviceReportPush(JObject receiveData, ref MessageRecordInfo recordInfo) { //鍥炬爣 - var device = Common.LocalDevice.Current.GetDevice(receiveData.Value<string>("DeviceAddr"), receiveData.Value<int>("Epoint")); + var device = HdlDeviceCommonLogic.Current.GetDevice(receiveData.Value<string>("DeviceAddr"), receiveData.Value<int>("Epoint")); if (device == null) { recordInfo.IconPath = "Device/IntelligentLocks.png"; //娑堟伅绫诲瀷:鏅鸿兘闂ㄩ攣 - recordInfo.MsgObjectText = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId2800); + var infoContent = HdlDeviceCommonLogic.Current.GetDeviceModelIdNameInfo("A405"); + recordInfo.MsgObjectText = infoContent != null ? infoContent.A瀹樻柟鍚嶅瓧 : string.Empty; } else { string selectPath = string.Empty; string unselecPath = string.Empty; - Common.LocalDevice.Current.GetDeviceIcon(device, ref unselecPath, ref selectPath); + HdlDeviceCommonLogic.Current.GetDeviceIcon(device, ref unselecPath, ref selectPath); recordInfo.IconPath = unselecPath; //娑堟伅绫诲瀷 - recordInfo.MsgObjectText = Common.LocalDevice.Current.GetDeviceEpointName(device); + recordInfo.MsgObjectText = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device); } //娑堟伅 var msgInfo = HdlAlarmsLogic.Current.GetDoorLockAlarmInfo(receiveData); @@ -964,7 +897,8 @@ /// </summary> public override void CloseFormBefore() { - if (UserCenterResourse.DicActionForm.ContainsKey("UserMainForm") == false) + var userPageForm = UserView.UserPage.Instance.GetNowActionForm(); + if (userPageForm != null && userPageForm.FormID == "UserMainForm") { Common.CommonPage.Instance.IsDrawerLockMode = false; } -- Gitblit v1.8.0