From c4aff6eac0f709ed8e2b0eee724941745b5b8a0d Mon Sep 17 00:00:00 2001 From: yanghongwei Date: Thu, 26 Jun 2025 00:10:27 +0800 Subject: [PATCH] =?UTF-8?q?websocket=E8=BF=94=E5=9B=9E=E7=99=BD=E5=90=8D?= =?UTF-8?q?=E5=8D=95id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Alarm.cs | 6 ++++++ Service/AlarmService.cs | 19 ++++++++++++------- appsettings.json | 2 +- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Model/Alarm.cs b/Model/Alarm.cs index 64d9b0e..900dec7 100644 --- a/Model/Alarm.cs +++ b/Model/Alarm.cs @@ -51,6 +51,12 @@ namespace LY.App.Model [SugarColumn(ColumnName = "is_whitelist", ColumnDescription = "是否白名单")] public bool IsWhitelist { get; set; } /// + /// 白名单id + /// + [JsonConverter(typeof(ValueToStringConverter))] + [SugarColumn(IsIgnore = true)] + public long WhiteListId { get; set; } + /// /// ,#东向速度 /// public double speed_E { get; set; } diff --git a/Service/AlarmService.cs b/Service/AlarmService.cs index 1b90e74..4d2ed51 100644 --- a/Service/AlarmService.cs +++ b/Service/AlarmService.cs @@ -7,6 +7,7 @@ using Mapster; using NetTopologySuite.Geometries; using NetTopologySuite.IO; using SqlSugar; +using System.ComponentModel.DataAnnotations; namespace LY.App.Service { @@ -67,7 +68,9 @@ namespace LY.App.Service item.PostionName = deviceinfo.PositionName; item.Time = input.time; item.distance = GisHelper.HaversineDistance(item.drone_lat, item.drone_lon, item.app_lat, item.app_lon); - item.IsWhitelist = await Iswhitlist(item.serial_number, item.drone_lat, item.drone_lon); + var temp = await Iswhitlist(item.serial_number, item.drone_lat, item.drone_lon); + item.IsWhitelist = temp.Item1; + item.WhiteListId = temp.Item2; item.alarmLevel = item.IsWhitelist == true ? 0 : await GetAlarmLevel(deviceinfo.PositionId, item.drone_lon, item.drone_lat); item.centerdistance = await GetCenterDistance(item.drone_lat, item.drone_lon, item.positionId); } @@ -131,11 +134,11 @@ namespace LY.App.Service /// /// /// - private async Task Iswhitlist(string serial_number, double lat, double lon) + private async Task> Iswhitlist(string serial_number, double lat, double lon) { string key = RedisKeyList.white_list(serial_number); if (!await _redisService.ExistsAsync(key)) - return false; + return new Tuple(false, 0); else { var entity = await _redisService.GetAsync(key); @@ -153,19 +156,21 @@ namespace LY.App.Service //判断时间是否在区在 if (entity.allDay) { - return true; + return new Tuple(false, entity.Id); } else { - return entity.startTime <= DateTime.Now && DateTime.Now <= entity.endTime; + var has = entity.startTime <= DateTime.Now && DateTime.Now <= entity.endTime; + return new Tuple(has, has ? entity.Id : 0); + } + } } } } } - } - return false; + return new Tuple(false, 0); ; } static bool IsPointInGeoJson(double latitude, double longitude, string geoJson) diff --git a/appsettings.json b/appsettings.json index 4b49c56..979b578 100644 --- a/appsettings.json +++ b/appsettings.json @@ -8,7 +8,7 @@ "log2db": true, //是否记录 "AllowedHosts": "*", "ConnectionStrings": { - "DefaultConnection": "server=114.66.57.139;port=13306;database=lyapp;user=root;password=dklymysql;Pooling=true;" + "DefaultConnection": "server=114.66.57.139;port=23306;database=lyapp;user=root;password=dklymysql;Pooling=true;" }, "Token": { "SecretKey": "HWLSNPM+OhlFe4wwEV/teSWsxGjrWbxKnHonxW5Z+mFlQq3zonv5",