From d2b9e683b61c6781d29aed9a710b4efb53fc41ed Mon Sep 17 00:00:00 2001 From: zhangbin <460190368@qq.com> Date: Tue, 1 Apr 2025 08:47:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E8=8E=B7=E5=8F=96=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FireManagement/FireManagementApp.cs | 34 ++++++++++++++++++- .../Response/UserOnLineTypeResp.cs | 21 ++++++++++++ .../FireManagementController.cs | 24 ++++++++++++- 3 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 OpenAuth.App/ServiceApp/FireManagement/Response/UserOnLineTypeResp.cs diff --git a/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs b/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs index 14d3523..02a94b3 100644 --- a/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs +++ b/OpenAuth.App/ServiceApp/FireManagement/FireManagementApp.cs @@ -24,6 +24,7 @@ using Microsoft.AspNetCore.Http; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; +using StackExchange.Redis; namespace OpenAuth.App.ServiceApp.FireManagement { @@ -483,7 +484,7 @@ namespace OpenAuth.App.ServiceApp.FireManagement var chileorg = (await db.SysOrg.AsQueryable().ToChildListAsync(it => it.ParentId, item)).Select(it => it.Id).ToList(); chileorglist.AddRange(chileorg); } - } + } var userInfoQuery = db.User.AsQueryable() .LeftJoin((a, b) => a.Id == b.CreateId) .LeftJoin((a, b, c) => a.Id == c.UserId) @@ -537,5 +538,36 @@ namespace OpenAuth.App.ServiceApp.FireManagement }; } } + + //根据类型获取位置信息 + public async Task>> GetPointByUserType(string unitname, int type) + { + using (var db = base.UnitWork.CreateContext()) + { + var userpoint = await db.FmUserPoint.AsQueryable() + .LeftJoin((a, b) => a.CreateId == b.Id) + .LeftJoin((a, b, c) => b.Id == c.UserId) + .LeftJoin((a, b, c, d) => c.RoleId == d.Id) + .Where((a, b, c, d) => d.Name == "护林员") + .Where((a, b, c, d) => a.CreateTime.AddMinutes(2) > DateTime.Now) + .WhereIF(!string.IsNullOrEmpty(unitname), (a, b, c, d) => b.UnitName.Contains(unitname)) + .Select((a, b, c, d) => new UserOnLineTypeResp + { + CreateId = a.CreateId.ToString(), + Name = b.Name, + Lat = a.Lat, + Lng = a.Lng, + CreateTime = a.CreateTime, + Phone = b.Account, + Type = d.Name, + UnitName = b.UnitName == null ? "" : b.UnitName + }).ToListAsync(); + + return new Response> + { + Result = userpoint + }; + } + } } } diff --git a/OpenAuth.App/ServiceApp/FireManagement/Response/UserOnLineTypeResp.cs b/OpenAuth.App/ServiceApp/FireManagement/Response/UserOnLineTypeResp.cs new file mode 100644 index 0000000..dfe1154 --- /dev/null +++ b/OpenAuth.App/ServiceApp/FireManagement/Response/UserOnLineTypeResp.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OpenAuth.App.ServiceApp.FireManagement.Response +{ + public class UserOnLineTypeResp + { + public string CreateId { get; set; } + public string Name { get; set; } + public DateTime CreateTime { get; set; } + public string Lng { get; set; } + public string Lat { get; set; } + public string Type { get; set; } + public int Identity { get; set; } + public string Phone { get; set; } + public string UnitName { get; set; } + } +} diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs index 23dc020..5cb3812 100644 --- a/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs +++ b/OpenAuth.WebApi/Controllers/ServiceControllers/FireManagement/FireManagementController.cs @@ -203,7 +203,7 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers.FireManagement Response response = new Response(); try { - return _app.FireUserUnitUpload(formFiles); + return _app.FireUserUnitUpload(formFiles); } catch (Exception ex) { @@ -355,5 +355,27 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers.FireManagement } return response; } + /// + /// 根据类型获取位置信息 + /// + /// + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task>> GetPointByUserType(string unitname, int type) + { + Response> response = new Response>(); + try + { + return await _app.GetPointByUserType(unitname, type); + } + catch (Exception ex) + { + response.Code = 500; + response.Message = ex.InnerException?.Message ?? ex.Message; + } + return response; + } } }