From 5d1b3ad0f748205c3c0dbf8383676dd196288f27 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 11 Jan 2024 16:31:23 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat=20=E8=AE=BE=E5=A4=87=E8=80=83=E5=8B=A4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=80=83=E5=8B=A4=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/IDevicePermissionService.cs | 2 +- .../Implements/DevicePermissionService.cs | 4 +-- .../Device/Entities/DeviceUploadLogEntity.cs | 14 +++++++-- .../Controllers/DeviceUploadLogsController.cs | 11 +++++++ .../Request/DeviceUploadLogUploadRequest.cs | 23 +++++++++++++++ .../Services/IDeviceUploadLogService.cs | 2 ++ .../Implements/DeviceUploadLogService.cs | 29 +++++++++++++++++-- 7 files changed, 77 insertions(+), 8 deletions(-) create mode 100644 Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs index 1b244029..79118133 100644 --- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs @@ -12,5 +12,5 @@ public interface IDevicePermissionService : IScopeDependency /// Task AssignmentAsync(List reuqests); - Task> GetAssignmentsAsync(string userId, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue); + Task> GetAssignmentsAsync(string userNo, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue); } diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 504a19f2..418b2241 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -36,12 +36,12 @@ public class DevicePermissionService : IDevicePermissionService } } - public async Task> GetAssignmentsAsync(string userId, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue) + public async Task> GetAssignmentsAsync(string userNo, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue) { var assignments = await _dbContext.Queryable() .Where(x => x.UniqueType == uniqueType) .WhereIF(uniqueValue.HasValue, x => x.UniqueValue == uniqueValue) - .Where(x => x.UserNo == userId) + .Where(x => x.UserNo == userNo) .Select(x => x.UniqueValue) .ToListAsync(); diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs b/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs index 25d87232..a82b818d 100644 --- a/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs +++ b/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs @@ -1,12 +1,17 @@ using Kurisu.Core.DataAccess.Entity; -using Kurisu.SqlSugar; using SqlSugar; namespace Dlhis.Entity.Device.Entities; [SugarTable(TableName = "DeviceUploadLog", TableDescription = "设备上传记录")] -public class DeviceUploadLogEntity : SugarBaseEntity, ITenantId +public class DeviceUploadLogEntity : ITenantId { + /// + /// id + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public long Id { get; set; } + /// /// 设备号 /// @@ -27,5 +32,10 @@ public class DeviceUploadLogEntity : SugarBaseEntity, ITenantId /// public string Ip { get; set; } + /// + /// 上传时间 + /// + public DateTime UploadTime { get; set; } + public string TenantId { get; set; } } diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs index d7809b21..c98178a5 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs @@ -32,4 +32,15 @@ public class DeviceUploadLogsController : ControllerBase { return await _deviceUploadLogService.GetPageAsync(request); } + + /// + /// 上传记录 + /// + /// + /// + [HttpPost("record")] + public async Task UploadLogAsync(DeviceUploadLogUploadRequest request) + { + await _deviceUploadLogService.UploadLogAsync(request); + } } diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs new file mode 100644 index 00000000..df39165a --- /dev/null +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs @@ -0,0 +1,23 @@ +using System.ComponentModel.DataAnnotations; + +namespace Dlhis.ScheduledTask.DeviceUploadLog.Request; + +public class DeviceUploadLogUploadRequest +{ + /// + /// 设备唯一号 + /// + [Required(ErrorMessage = "设备唯一号不能为空")] + public string DeviceUniqueNo { get; set; } + + /// + /// 用户学工号 + /// + [Required(ErrorMessage = "用户学工号不能为空")] + public string UserCode { get; set; } + + /// + /// 上传时间 + /// + public DateTime UploadTime { get; set; } +} diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs index 8ff42806..b3793541 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs @@ -7,4 +7,6 @@ namespace Dlhis.ScheduledTask.DeviceUploadLog.Services; public interface IDeviceUploadLogService : IScopeDependency { Task> GetPageAsync(DeviceUploadLogPageRequest request); + + Task UploadLogAsync(DeviceUploadLogUploadRequest request); } diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs index 795cd81e..a2411af6 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs @@ -2,7 +2,9 @@ using Dlhis.Entity.Device.Entities; using Dlhis.ScheduledTask.DeviceUploadLog.Request; using Dlhis.ScheduledTask.DeviceUploadLog.Response; +using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.Core.DataAccess.Dto; +using Kurisu.SqlSugar.Attributes; using Kurisu.SqlSugar.Extensions; using Kurisu.SqlSugar.Services; @@ -21,14 +23,14 @@ public class DeviceUploadLogService : IDeviceUploadLogService { var page = await _dbContext.Queryable() .LeftJoin((deviceUp, ga) => deviceUp.UserNo == ga.No) - .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.CreateTime >= request.SearchDateTimePeriod.Start) - .WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.CreateTime <= request.SearchDateTimePeriod.End) + .WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.UploadTime >= request.SearchDateTimePeriod.Start) + .WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.UploadTime <= request.SearchDateTimePeriod.End) .Select((deviceUp, ga) => new DeviceUploadLogResponse { DeviceUniqueNo = deviceUp.DeviceUniqueNo, Id = deviceUp.Id, Ip = deviceUp.Ip, - UploadTime = deviceUp.CreateTime, + UploadTime = deviceUp.UploadTime, UserNo = deviceUp.UserNo, UserCode = deviceUp.UserCode, UserName = ga.Name, @@ -37,4 +39,25 @@ public class DeviceUploadLogService : IDeviceUploadLogService return page; } + + [IgnoreTenant] + public async Task UploadLogAsync(DeviceUploadLogUploadRequest request) + { + var device = await _dbContext.Queryable().Where(x => x.UniqueNo == request.DeviceUniqueNo).SingleAsync(); + device.ThrowIfNull("设备信息不存在"); + + var gainfo = await _dbContext.Queryable().Where(x => x.Code == request.UserCode).FirstAsync(); + device.ThrowIfNull("人员信息不存在"); + + var entity = new DeviceUploadLogEntity + { + DeviceUniqueNo = request.DeviceUniqueNo, + UploadTime = request.UploadTime, + UserCode = request.UserCode, + UserNo = gainfo.No, + TenantId = device.TenantId, + }; + + await _dbContext.InsertAsync(entity); + } } From e03cb26174f7632ecf2992680b18ae39fbcb5209 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 11 Jan 2024 16:37:17 +0800 Subject: [PATCH 2/3] fix userId --> userNo --- Dlis.Jinko.Yikatong.sln | 2 +- Src/Dlhis.Basic/MealUser/Services/IMealUserService.cs | 2 -- .../MealUser/Services/Implements/MealUserService.cs | 8 -------- .../Setting/Controllers/SettingController.cs | 6 +++--- .../Setting/Services/ICanteenSettingService.cs | 4 ++-- .../Setting/Services/Implements/CanteenSettingService.cs | 4 ++-- 6 files changed, 8 insertions(+), 18 deletions(-) diff --git a/Dlis.Jinko.Yikatong.sln b/Dlis.Jinko.Yikatong.sln index 8818e9f3..e0c233c7 100644 --- a/Dlis.Jinko.Yikatong.sln +++ b/Dlis.Jinko.Yikatong.sln @@ -27,7 +27,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Sys", "Src\Dlhis.Sys\ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.Canteen", "Src\Dlhis.Canteen\Dlhis.Canteen.csproj", "{8317C526-3523-4195-9B19-2F17CFD71927}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dlhis.User.Api", "Src\Dlhis.User.Api\Dlhis.User.Api.csproj", "{F294CD7D-0412-48AD-A7E9-E72B9BA0E48E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dlhis.User.Api", "Src\Dlhis.User.Api\Dlhis.User.Api.csproj", "{F294CD7D-0412-48AD-A7E9-E72B9BA0E48E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Src/Dlhis.Basic/MealUser/Services/IMealUserService.cs b/Src/Dlhis.Basic/MealUser/Services/IMealUserService.cs index c444ed33..990a8e98 100644 --- a/Src/Dlhis.Basic/MealUser/Services/IMealUserService.cs +++ b/Src/Dlhis.Basic/MealUser/Services/IMealUserService.cs @@ -9,6 +9,4 @@ public interface IMealUserService : IScopeDependency Task> GetPageAsync(MealUserPageRequest request); Task AddAsync(MealUserAddRequest request); - - Task GetMealUserAsync(string uniqueId); } diff --git a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs index f87d7dba..7c6d1b27 100644 --- a/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs +++ b/Src/Dlhis.Basic/MealUser/Services/Implements/MealUserService.cs @@ -53,12 +53,4 @@ public class MealUserService : IMealUserService }; await _dbContext.InsertAsync(entity); } - - public async Task GetMealUserAsync(string userId) - { - return await _dbContext.Queryable() - .Where(x => x.UserNo == userId) - .Select() - .FirstAsync(); - } } diff --git a/Src/Dlhis.Canteen/Setting/Controllers/SettingController.cs b/Src/Dlhis.Canteen/Setting/Controllers/SettingController.cs index c107d4ef..b7e1772e 100644 --- a/Src/Dlhis.Canteen/Setting/Controllers/SettingController.cs +++ b/Src/Dlhis.Canteen/Setting/Controllers/SettingController.cs @@ -59,11 +59,11 @@ public class SettingController : ControllerBase /// /// 获取用户配置 /// - /// + /// /// [HttpGet("user")] - public async Task> GetUserSettingAsync(string userId) + public async Task> GetUserSettingAsync(string userNo) { - return await _settingService.GetUserSettingAsync(userId); + return await _settingService.GetUserSettingAsync(userNo); } } diff --git a/Src/Dlhis.Canteen/Setting/Services/ICanteenSettingService.cs b/Src/Dlhis.Canteen/Setting/Services/ICanteenSettingService.cs index 27fabb1e..dcf34bac 100644 --- a/Src/Dlhis.Canteen/Setting/Services/ICanteenSettingService.cs +++ b/Src/Dlhis.Canteen/Setting/Services/ICanteenSettingService.cs @@ -16,8 +16,8 @@ public interface ICanteenSettingService : IScopeDependency /// /// 获取人员的就餐配置信息 /// - /// 就餐人员档案号 + /// 就餐人员档案号 /// - Task> GetUserSettingAsync(string userId); + Task> GetUserSettingAsync(string userNo); } diff --git a/Src/Dlhis.Canteen/Setting/Services/Implements/CanteenSettingService.cs b/Src/Dlhis.Canteen/Setting/Services/Implements/CanteenSettingService.cs index af5cc8c2..c8f9d5cc 100644 --- a/Src/Dlhis.Canteen/Setting/Services/Implements/CanteenSettingService.cs +++ b/Src/Dlhis.Canteen/Setting/Services/Implements/CanteenSettingService.cs @@ -72,10 +72,10 @@ public class CanteenSettingService : ICanteenSettingService } - public async Task> GetUserSettingAsync(string userId) + public async Task> GetUserSettingAsync(string userNo) { var setting = await _context.Queryable() - .Where(x => x.UniqueType == CanteenSettingUnqiueEnumType.Person && (x.UniqueValue == userId) || x.UniqueType == CanteenSettingUnqiueEnumType.Tenant) + .Where(x => x.UniqueType == CanteenSettingUnqiueEnumType.Person && (x.UniqueValue == userNo) || x.UniqueType == CanteenSettingUnqiueEnumType.Tenant) .ToListAsync(); //从基地 -> 个人,确保下面循环做到覆盖,并且以个人配置为主 From 0ad79dbb2342d7712371872d01278ca791649cd0 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 11 Jan 2024 16:39:31 +0800 Subject: [PATCH 3/3] fix FromQuery --- .../Device/Controllers/DevicePermissionsController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs index 898fbc86..a97eb4c8 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs @@ -34,7 +34,7 @@ public class DevicePermissionsController : ControllerBase /// /// [HttpGet("assignments")] - public async Task> GetAssignmentsAsync(DeviceGetAssignmentsRequest request) + public async Task> GetAssignmentsAsync([FromQuery] DeviceGetAssignmentsRequest request) { return await _devicePermissionService.GetAssignmentsAsync(request.UserNo, request.UniqueType, request.UniqueValue); }