From d616b67bd6ea95562af73a00bf0aab38eec935df Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期五, 11 十二月 2020 13:37:26 +0800
Subject: [PATCH] 2020-12-11 1.取消屏幕常亮。2.优化iOS接收推送处理。

---
 HDL_ON/Entity/Room.cs |  212 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 147 insertions(+), 65 deletions(-)

diff --git a/HDL_ON/Entity/Room.cs b/HDL_ON/Entity/Room.cs
index 91e78cd..82f16c8 100644
--- a/HDL_ON/Entity/Room.cs
+++ b/HDL_ON/Entity/Room.cs
@@ -1,6 +1,7 @@
 锘縰sing System;
 using System.Collections.Generic;
 using HDL_ON.DAL.Server;
+using Shared;
 
 namespace HDL_ON.Entity
 {
@@ -50,35 +51,38 @@
 
         public string roomId = "";
         public string roomName = "";
-        public string roomImage = "";
+        //public string roomImage = "";
+        public string roomImage = "Classification/Room/Roombg.png";
         public string roomType = "";
         public string parentId = "";
         public string uid = Guid.NewGuid().ToString();
         public string createTime = "";
         public string modifyTime = "";
-        /// <summary>
-        /// 鍒犻櫎鏍囪
-        /// 闇�瑕佸垹闄ゆ暟鎹椂锛屾爣璁颁负锛歵rue
-        /// 鐢变簯绔垹闄ゆ垚鍔熶箣鍚庯紝杩斿洖鏁版嵁鍐嶆竻闄ゆ湰鍦版暟鎹�
-        /// </summary>
-        public bool DeleteSign = false;
+        ///// <summary>
+        ///// 鍒犻櫎鏍囪 20201208锛氬彲娆�:APP鐨勫湪绾垮拰绂荤嚎闂锛屽垰鍒氱‘瀹氫簡锛岀绾挎棤娉曠紪杈戯紝鍙兘鎺у埗
+        ///// 闇�瑕佸垹闄ゆ暟鎹椂锛屾爣璁颁负锛歵rue
+        ///// 鐢变簯绔垹闄ゆ垚鍔熶箣鍚庯紝杩斿洖鏁版嵁鍐嶆竻闄ゆ湰鍦版暟鎹�
+        ///// </summary>
+        //public bool DeleteSign = false;
 
 
-        protected void SaveSpatialInfo()
+        protected ResponsePackNew SaveSpatialInfo()
         {
             var pm = new HttpServerRequest();
+            var revPack = new ResponsePackNew();
             if (string.IsNullOrEmpty(createTime) && string.IsNullOrEmpty(modifyTime))
             {
-                pm.AddRoom(new List<SpatialInfo>() { this });
+                revPack = pm.AddRoom(new List<SpatialInfo>() { this });
             }
             else if (string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime))
             {
-                pm.DeleteRoom(new List<string>() { roomId });
+                revPack = pm.DeleteRoom(new List<string>() { roomId });
             }
             else if (!string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime))
             {
-                pm.UpdateRoom(new List<SpatialInfo>() { this });
+                revPack = pm.UpdateRoom(new List<SpatialInfo>() { this });
             }
+            return revPack;
         }
 
         /// <summary>
@@ -125,15 +129,18 @@
                         var localRoom = CurrentSpatial.RoomList.Find((obj) => obj.roomId == updateTemp.roomId);
                         if (localRoom != null)
                         {
-                            localRoom.roomName = updateTemp.roomName;
-                            localRoom.roomImage = updateTemp.roomImage;
-                            localRoom.parentId = updateTemp.parentId;
-                            localRoom.createTime = updateTemp.createTime;
-                            localRoom.modifyTime = updateTemp.modifyTime;
-                            localRoom.SaveRoomData();
+                            if (localRoom.modifyTime != updateTemp.modifyTime)
+                            {
+                                localRoom.roomName = updateTemp.roomName;
+                                localRoom.roomImage = updateTemp.roomImage;
+                                localRoom.parentId = updateTemp.parentId;
+                                localRoom.createTime = updateTemp.createTime;
+                                localRoom.modifyTime = updateTemp.modifyTime;
+                                localRoom.SaveRoomData(false);
+                            }
                         }else
                         {
-                            updateTemp.SaveRoomData();
+                            updateTemp.SaveRoomData(false);
                         }
                     }
                 }
@@ -142,7 +149,9 @@
                     CurrentSpatial.DeleteAllRoom();
                     foreach(var newRoom in roomUpdateList)
                     {
-                        newRoom.SaveRoomData();
+                        newRoom.SaveRoomData(false);
+                        RoomList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Room>(
+                            Newtonsoft.Json.JsonConvert.SerializeObject(newRoom)));
                     }
                 }
             }
@@ -163,7 +172,6 @@
                             localFloor = updateTemp;
                         }
                     }
-                    CurrentSpatial.SaveFloorData();
                 }
                 if(optionType == OptionType.Cover)
                 {
@@ -172,9 +180,9 @@
                     {
                         FloorList.Add(updateTemp);
                     }
-                    var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList));
-                    FileUtils.WriteFileByBytes(dataSavePath, ssd);
                 }
+                var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList));
+                FileUtils.WriteFileByBytes(dataSavePath, ssd);
             }
         }
 
@@ -194,16 +202,16 @@
                 {
                     try
                     {
-                        var floorsDataBytes = FileUtils.ReadFile(dataSavePath);
+                        var floorsDataBytes = FileUtils.ReadFile("FloorsData");
                         if (floorsDataBytes != null)
                         {
                             var floorsDataString = System.Text.Encoding.UTF8.GetString(floorsDataBytes);
                             MainPage.Log(floorsDataString);
                             floors = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SpatialInfo>>(floorsDataString);
-                            if (floors == null)
-                            {
-                                floors = new List<SpatialInfo>();
-                            }
+                        }
+                        if (floors == null)
+                        {
+                            floors = new List<SpatialInfo>();
                         }
                     }
                     catch (Exception ex)
@@ -241,8 +249,13 @@
         /// <param name="floor"></param>
         public void AddFloor(SpatialInfo floor)
         {
-            FloorList.Add(floor);
-            SaveFloorData();
+            if (floor.SaveFloorData() == StateCode.SUCCESS)
+            {
+                FloorList.Add(floor);
+                var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList));
+                FileUtils.WriteFileByBytes(dataSavePath, ssd);
+                MainPage.Log($"Save floor Data");
+            }
         }
         /// <summary>
         /// 鏇存柊妤煎眰淇℃伅
@@ -250,7 +263,12 @@
         /// <param name="floor"></param>
         public void UpdateFloor()
         {
-            SaveFloorData();
+            if(SaveFloorData() == StateCode.SUCCESS)
+            {
+                var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList));
+                FileUtils.WriteFileByBytes(dataSavePath, ssd);
+                MainPage.Log($"Save floor Data");
+            }
         }
         /// <summary>
         /// 鍒犻櫎妤煎眰
@@ -258,36 +276,44 @@
         /// <param name="floor"></param>
         public void DelFloor(SpatialInfo floor)
         {
-            var tRoom = FloorList.Find((obj) => obj.uid == floor.uid);
-            if (tRoom != null)
+            if (floor == null)
+                return;
+            var pm = new HttpServerRequest();
+            var code = pm.DeleteRoom(new List<string>() { floor.roomId }).Code;
+            if (code == StateCode.SUCCESS)
             {
-                FloorList.Remove(floor);
-                floor.modifyTime = "";
+                var tRoom = FloorList.Find((obj) => obj.roomId == floor.roomId);
+                if (tRoom != null)
+                {
+                    FloorList.Remove(floor);
+                }
+                var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList));
+                FileUtils.WriteFileByBytes(dataSavePath, ssd);
+                MainPage.Log($"Save floor Data");
             }
-            SaveFloorData();
+            else
+            {
+                Utlis.ShowTip(Language.StringByID(StringId.DeleteFloorFail) + "Code:" + code);
+            }
         }
 
         /// <summary>
         /// 淇濆瓨妤煎眰鏁版嵁
         /// </summary>
-        void SaveFloorData()
+        string SaveFloorData()
         {
-            var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FloorList));
-            FileUtils.WriteFileByBytes(dataSavePath, ssd);
-            MainPage.Log($"Save floor Data");
-            SaveSpatialInfo();
+            var pack = SaveSpatialInfo();
+            if (pack.Code == StateCode.SUCCESS)
+            {
+            }
+            else
+            {
+                Utlis.ShowTip(Language.StringByID(StringId.EditRoomInfoFail) + "Code:" + pack.Code);
+            }
+            return pack.Code;
         }
 
-        /// <summary>
-        /// 淇濆瓨鎴块棿鏁版嵁
-        /// </summary>
-        public void SaveRoomData()
-        {
-            var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
-            FileUtils.WriteFileByBytes(dataSavePath, ssd);
-            MainPage.Log($"Save Room Data {roomName} : {uid}");
-            SaveSpatialInfo();
-        }
+
         #endregion
 
         #region 鎴块棿鍒楄〃
@@ -337,8 +363,10 @@
         /// <param name="room"></param>
         public void AddRoom(Room room)
         {
-            RoomList.Add(room);
-            room.SaveRoomData();
+            if (room.SaveRoomData() == StateCode.SUCCESS)
+            {
+                RoomList.Add(room);
+            }
         }
         /// <summary>
         /// 鍒犻櫎鎴块棿
@@ -346,14 +374,21 @@
         /// <param name="room"></param>
         public void DelRoom(Room room)
         {
-            var tRoom = RoomList.Find((obj) => obj.uid == room.uid);
-            if (tRoom != null)
+            new System.Threading.Thread(() =>
             {
-                FileUtils.DeleteFile(room.dataSavePath);
-                RoomList.Remove(room);
-                room.DeleteSign = true;
-            }
-            room.SaveRoomData();
+                var pm = new HttpServerRequest();
+                var pack = pm.DeleteRoom(new List<string>() { room.roomId });
+                if (pack.Code == StateCode.SUCCESS)
+                {
+                    var tRoom = RoomList.Find((obj) => obj.roomId == room.roomId);
+                    if (tRoom != null)
+                    {
+                        RoomList.Remove(room);
+                    }
+                    FileUtils.DeleteFile(room.dataSavePath);
+                }
+            })
+            { IsBackground = true }.Start();
         }
         /// <summary>
         /// 鍒犻櫎鎵�鏈夋埧闂�
@@ -390,7 +425,25 @@
             { IsBackground = true }.Start();
         }
 
-
+        /// <summary>
+        /// 淇濆瓨鎴块棿鏁版嵁
+        /// </summary>
+        public string SaveRoomData(bool upServer = true)
+        {
+            var packCode = StateCode.SUCCESS;
+            bool needSave = true;
+            if (upServer)
+            {
+                packCode = SaveSpatialInfo().Code;
+            }
+            if (needSave)
+            {
+                var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
+                FileUtils.WriteFileByBytes(dataSavePath, ssd);
+                MainPage.Log($"Save Room Data {dataSavePath}");
+            }
+            return packCode;
+        }
         #endregion
 
     }
@@ -405,7 +458,26 @@
             roomType = "ROOM";
             roomName = "Room";
         }
-        public string backgroundImage = "Classification/Room/Roombg.png";
+        //public string backgroundImage = "Classification/Room/Roombg.png";
+        public string backgroundImage
+        {
+            get
+            {
+                if (string.IsNullOrEmpty(roomImage))
+                {
+                    return "Classification/Room/Roombg.png";
+                }
+                else
+                {
+                    return roomImage;
+                }
+            }
+            set
+            {
+                roomImage = value;
+            }
+        }
+
 
         /// <summary>
         /// 妤煎眰
@@ -415,12 +487,22 @@
         {
             get
             {
-                if (FloorList.Count > 0)
+                if (CurrentSpatial.FloorList.Count > 0)
                 {
-                    var f = FloorList.Find((obj) => obj.uid == parentId);
+                    var f = CurrentSpatial.FloorList.Find((obj) => obj.uid == parentId);
                     if (f != null)
                     {
                         return f.roomName + " ";
+                    }
+                    else
+                    {
+                        foreach(var f1 in CurrentSpatial.FloorList)
+                        {
+                            if(f1.uid == parentId)
+                            {
+                                return f.roomName + " ";
+                            }
+                        }
                     }
                 }
                 return "";
@@ -444,7 +526,7 @@
             {
                 foreach (var f in DB_ResidenceData.functionList.GetAllFunction())
                 {
-                    if (f.roomIds.Contains(uid) && uid != null)
+                    if (f.roomIds.Contains(roomId) && roomId != null)
                     {
                         functions.Add(f);
                     }
@@ -486,7 +568,7 @@
             {
                 foreach (var s in DB_ResidenceData.functionList.scenes)
                 {
-                    if (s.roomIds.Contains(uid) && uid != null)
+                    if (s.roomIds.Contains(roomId) && roomId != null)
                     {
                         scenes.Add(s);
                     }

--
Gitblit v1.8.0