From a93c11fbfecaa6f561fe2b58ab6135949a667dd0 Mon Sep 17 00:00:00 2001 From: TianMaiCheng <746290578@qq.com> Date: Tue, 17 Mar 2026 15:58:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E7=9A=84=20=E6=97=A5=E5=BF=97=E7=9B=91?= =?UTF-8?q?=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CRICS_V3_1124.suo | Bin 12780544 -> 12780544 bytes Common/Tools.cs | 16 +++++++ CommonEntity/Kafka_XinTiao.cs | 20 +++++++++ .../Implement/UpdateHostCompletedReceiver.cs | 39 ++++++++++++++++++ RCUHost/Implement/UpdateHostReceiver.cs | 23 +++++++++++ WebSite/Controllers/RoomTypeController.cs | 5 +++ WebSite/Scripts/room-type-index.js | 3 ++ WebSite/Views/RoomType/Edit.ascx | 4 +- 8 files changed, 108 insertions(+), 2 deletions(-) diff --git a/CRICS_V3_1124.suo b/CRICS_V3_1124.suo index 4407d5ee33c3119e94a6c7a72753ee33abc5a319..75a686d52288a5c113c0fc75a9532cdc08660179 100644 GIT binary patch delta 8931 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 delta 8669 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 j$lFK', ',', '.', '?', '/', '`', '~' + }; + + // 判断是否包含空白字符(空格、制表符、换行符等) + bool hasWhiteSpace = input.Any(char.IsWhiteSpace); + return input.Any(c => specialChars.Contains(c))&&hasWhiteSpace; + } + /// /// 把int32类型的数据转存到2个字节的byte数组中:小端 /// diff --git a/CommonEntity/Kafka_XinTiao.cs b/CommonEntity/Kafka_XinTiao.cs index d66fd5e..7f76023 100644 --- a/CommonEntity/Kafka_XinTiao.cs +++ b/CommonEntity/Kafka_XinTiao.cs @@ -13,4 +13,24 @@ namespace CommonEntity public string device_id { get; set; } public string room_id { get; set; } } + public struct ShengJi_Log + { + public string hotel_id { get; set; } + public string device_id { get; set; } + public string room_id { get; set; } + public long ts_ms { get; set; } + + public int is_send { get; set; } + public byte[] udp_raw { get; set; } + public object extra { get; set; } + + public string remote_endpoint { get; set; } + + public string md5 { get; set; } + public int partition { get; set; } + public int file_type { get; set; } + public string file_path { get; set; } + public int upgrade_state { get; set; } + public string app_version { get; set; } + } } diff --git a/RCUHost/Implement/UpdateHostCompletedReceiver.cs b/RCUHost/Implement/UpdateHostCompletedReceiver.cs index 3282635..77db855 100644 --- a/RCUHost/Implement/UpdateHostCompletedReceiver.cs +++ b/RCUHost/Implement/UpdateHostCompletedReceiver.cs @@ -10,6 +10,7 @@ using Common; using Dao; using Domain; using RCUHost.Protocols; +using CommonEntity; namespace RCUHost.Implement { @@ -30,6 +31,7 @@ namespace RCUHost.Implement public override void Process(ReceiverContext context) { int startIndex = StructConverter.SizeOf(context.SystemHeader); + var endpoint = context.RemoteEndPoint.ToString(); UpdateHostPacketReply? reply = DecodeUpdateHostPacketReply(context.Data, startIndex); if (reply.HasValue) { @@ -67,6 +69,25 @@ namespace RCUHost.Implement break; } + var host = updateHostWorker.Host; + ShengJi_Log s1 = new ShengJi_Log(); + s1.hotel_id = host.SysHotel.Code; + s1.room_id = host.RoomNumber; + s1.device_id = host.HostNumber; + + s1.is_send = 0; + s1.udp_raw = context.Data; + s1.remote_endpoint = endpoint; + s1.md5 = ""; + s1.partition = 0; + s1.file_type = 0; + s1.file_path = ""; + s1.upgrade_state = reply.Value.Status; + s1.app_version = reply.Value.Version; + + CSRedisCacheHelper.Publish("redis-up", Newtonsoft.Json.JsonConvert.SerializeObject(s1)); + + BarData bbb = new BarData(); bbb.HostID = updateHostWorker.Host.ID; bbb.Upgrade_status = Upgrade_Status; @@ -97,6 +118,24 @@ namespace RCUHost.Implement Upgrade_Status = "升级失败"; break; } + + + ShengJi_Log s1 = new ShengJi_Log(); + s1.hotel_id = host.SysHotel.Code; + s1.room_id = host.RoomNumber; + s1.device_id = host.HostNumber; + + s1.is_send = 0; + s1.udp_raw = context.Data; + s1.remote_endpoint = endpoint; + s1.md5 = ""; + s1.partition = 0; + s1.file_type = 0; + s1.file_path = ""; + s1.upgrade_state = reply.Value.Status; + s1.app_version = reply.Value.Version; + CSRedisCacheHelper.Publish("redis-up", Newtonsoft.Json.JsonConvert.SerializeObject(s1)); + BarData bbb = new BarData(); bbb.HostID = host.ID; bbb.Upgrade_status = Upgrade_Status; diff --git a/RCUHost/Implement/UpdateHostReceiver.cs b/RCUHost/Implement/UpdateHostReceiver.cs index 76d1715..278dca2 100644 --- a/RCUHost/Implement/UpdateHostReceiver.cs +++ b/RCUHost/Implement/UpdateHostReceiver.cs @@ -10,6 +10,7 @@ using Common; using Dao; using Domain; using RCUHost.Protocols; +using CommonEntity; namespace RCUHost.Implement { @@ -221,6 +222,28 @@ namespace RCUHost.Implement byte[] data = CreateUpdateRequestPacket(updateFileMd5, blockNum, fileType, fileName); logger.Error("升级HostNumber为:" + host.HostNumber); logger.Error("升级指令为:" + Tools.ByteToString(data)); + + + ShengJi_Log s1 = new ShengJi_Log(); + s1.hotel_id = host.SysHotel.Code; + s1.room_id = host.RoomNumber; + s1.device_id = host.HostNumber; + + s1.is_send = 1; + s1.udp_raw = data; + string ipAndPort = CSRedisCacheHelper.Get(host.HostNumber, host.MAC); + if (!string.IsNullOrEmpty(ipAndPort)) + { + s1.remote_endpoint = ipAndPort; + } + s1.md5 = updateFileMd5; + s1.partition = blockNum; + s1.file_type = fileType; + s1.file_path = fileName; + s1.upgrade_state = 0; + s1.app_version = host.Version; + CSRedisCacheHelper.Publish("redis-up", Newtonsoft.Json.JsonConvert.SerializeObject(s1)); + Send(data, host.HostNumber, host.MAC);// host.IP, host.Port); } /// diff --git a/WebSite/Controllers/RoomTypeController.cs b/WebSite/Controllers/RoomTypeController.cs index 0a9ffd5..5726fb8 100644 --- a/WebSite/Controllers/RoomTypeController.cs +++ b/WebSite/Controllers/RoomTypeController.cs @@ -1086,6 +1086,11 @@ namespace WebSite.Controllers public ActionResult Save(string jsonData) { RoomType entity = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonData); + + if (Tools.ContainsSpecialChars(entity.Name) || Tools.ContainsSpecialChars(entity.HostName)) + { + return Json(new { IsSuccess = false, Message = "房型名称不得包含特殊符号、空格,命名字数不得超过 N 个文字"}); + } RoomType existRoomType = RoomTypeManager.GetByCode(entity.Code, CurrentHotelID); if (existRoomType != null) { diff --git a/WebSite/Scripts/room-type-index.js b/WebSite/Scripts/room-type-index.js index fcc7718..3bcfc98 100644 --- a/WebSite/Scripts/room-type-index.js +++ b/WebSite/Scripts/room-type-index.js @@ -104,6 +104,9 @@ function delProgramFile() { } //保存房型 function save() { + var a1= $("#txtHostName").val(); + var a2 = $("#txtName").val(); + console.log(a1+"#########"+a2); var form = $('#dialog').find('form'); if (form.form('enableValidation').form('validate')) { var entry = form.serializeJson(); diff --git a/WebSite/Views/RoomType/Edit.ascx b/WebSite/Views/RoomType/Edit.ascx index a0e594f..67caff8 100644 --- a/WebSite/Views/RoomType/Edit.ascx +++ b/WebSite/Views/RoomType/Edit.ascx @@ -32,13 +32,13 @@ - + - + <%--