diff --git a/Dlhis.Jinko.Face.slnx b/Dlhis.Jinko.Face.slnx index feeb2dfc..84443c8f 100644 --- a/Dlhis.Jinko.Face.slnx +++ b/Dlhis.Jinko.Face.slnx @@ -1,14 +1,14 @@ - + - - + + - + - + @@ -18,16 +18,16 @@ - + - + - + \ No newline at end of file diff --git a/Src/Dlhis.Canteen/Voucher/Controllers/VouchersController.cs b/Src/Dlhis.Canteen/Voucher/Controllers/VouchersController.cs index dfd6a8fe..47333331 100644 --- a/Src/Dlhis.Canteen/Voucher/Controllers/VouchersController.cs +++ b/Src/Dlhis.Canteen/Voucher/Controllers/VouchersController.cs @@ -77,6 +77,28 @@ public class VouchersController : ControllerBase }); } + /// + /// 创建生日券 + /// + /// + [HttpPost("birthday/import")] + public async Task ImportBirthdayVoucherAsync(VoucherByBirthdayRequest request) + { + //判断Begin和End要大于2025年,并且不能大于当前年 + (request.Begin.Year < 2025).ThrowIfTrue("年份必须大于等于2025年,并且小于等于当前年"); + (request.End.Year > DateTime.Now.Year).ThrowIfTrue("年份必须大于等于2025年,并且小于等于当前年"); + + var srv = _namedResolver.GetService(VoucherEnumType.Birthday.ToString() + "VoucherService"); + srv.ThrowIfNull("不支持的券类型"); + await srv.CreateAsync(new Dictionary + { + ["userCodes"] = request.UserCodes, + ["begin"] = request.Begin, + ["end"] = request.End, + ["remark"] = request.Remark + }); + } + /// /// 餐券消费分页 /// diff --git a/Src/Dlhis.Entity/Sys/Entities/DataPermissionEntity.cs b/Src/Dlhis.Entity/Sys/Entities/DataPermissionEntity.cs index 4ac4f94c..53618501 100644 --- a/Src/Dlhis.Entity/Sys/Entities/DataPermissionEntity.cs +++ b/Src/Dlhis.Entity/Sys/Entities/DataPermissionEntity.cs @@ -7,21 +7,36 @@ using SqlSugar.DbConvert; namespace Dlhis.Entity.Sys.Entities; +/// +/// Êý¾ÝȨÏÞ +/// [SugarTable(TableName = "DataPermissions")] public class DataPermissionEntity : SugarBaseEntity, ITenantId { + /// + /// Óû§UserNo + /// [SugarColumn(IsNullable = false)] public string AssignValue { get; set; } + /// + /// »ñȡȨÏ޵ÄÀàÐÍ + /// [SugarColumn(IsNullable = false, ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))] public DataPermissionAssignmentEnumType UniqueType { get; set; } + /// + /// »ñȡȨÏÞÊý¾ÝΨһֵ + /// [SugarColumn(IsNullable = false)] public Guid UniqueValue { get; set; } + /// + /// É豸·ÖÀàÀàÐÍ + /// [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))] public DeviceTypeEnumType? DeviceType { get; set; } - /// + public string TenantId { get; set; } } \ No newline at end of file diff --git a/Src/Dlhis.ScheduledTask/Jobs/AutoConfirmAppointmentJob.cs b/Src/Dlhis.ScheduledTask/Jobs/Visitor/AutoConfirmAppointmentJob.cs similarity index 99% rename from Src/Dlhis.ScheduledTask/Jobs/AutoConfirmAppointmentJob.cs rename to Src/Dlhis.ScheduledTask/Jobs/Visitor/AutoConfirmAppointmentJob.cs index b1a0407c..3a0d8d14 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/AutoConfirmAppointmentJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/Visitor/AutoConfirmAppointmentJob.cs @@ -5,7 +5,7 @@ using Dlhis.Entity.Visitor.Entity; using Dlhis.Entity.Visitor.Enums; using Dlhis.ScheduledTask.Attributes; -namespace Dlhis.ScheduledTask.Jobs; +namespace Dlhis.ScheduledTask.Jobs.Visitor; /// diff --git a/Src/Dlhis.ScheduledTask/Jobs/AutoRemoveAppointmentJob.cs b/Src/Dlhis.ScheduledTask/Jobs/Visitor/AutoRemoveAppointmentJob.cs similarity index 98% rename from Src/Dlhis.ScheduledTask/Jobs/AutoRemoveAppointmentJob.cs rename to Src/Dlhis.ScheduledTask/Jobs/Visitor/AutoRemoveAppointmentJob.cs index 883e0723..ba5fdb0d 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/AutoRemoveAppointmentJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/Visitor/AutoRemoveAppointmentJob.cs @@ -6,7 +6,7 @@ using Dlhis.Entity.Visitor.Enums; using Dlhis.ScheduledTask.Attributes; using Kurisu.AspNetCore.Utils.Extensions; -namespace Dlhis.ScheduledTask.Jobs; +namespace Dlhis.ScheduledTask.Jobs.Visitor; /// /// 访客预约移除 diff --git a/Src/Dlhis.ScheduledTask/Jobs/TipAppointmentExpireJob.cs b/Src/Dlhis.ScheduledTask/Jobs/Visitor/TipAppointmentExpireJob.cs similarity index 98% rename from Src/Dlhis.ScheduledTask/Jobs/TipAppointmentExpireJob.cs rename to Src/Dlhis.ScheduledTask/Jobs/Visitor/TipAppointmentExpireJob.cs index 2d016d0b..cf2c1def 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/TipAppointmentExpireJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/Visitor/TipAppointmentExpireJob.cs @@ -5,7 +5,7 @@ using Dlhis.Entity.Visitor.Enums; using Dlhis.ScheduledTask.Attributes; using Kurisu.AspNetCore.Utils.Extensions; -namespace Dlhis.ScheduledTask.Jobs; +namespace Dlhis.ScheduledTask.Jobs.Visitor; /// /// 每天10点提醒访客预约到期 diff --git a/Src/Dlhis.Sys/DataPermission/Controllers/DataPermissionsController.cs b/Src/Dlhis.Sys/DataPermission/Controllers/DataPermissionsController.cs index 6af302ce..bcb795e1 100644 --- a/Src/Dlhis.Sys/DataPermission/Controllers/DataPermissionsController.cs +++ b/Src/Dlhis.Sys/DataPermission/Controllers/DataPermissionsController.cs @@ -2,6 +2,7 @@ using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Enums; using Dlhis.Sys.DataPermission.Request; +using Dlhis.Sys.DataPermission.Response; using Dlhis.Sys.DataPermission.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -31,10 +32,21 @@ public class DataPermissionsController : ControllerBase [HttpGet("assignments")] - public async Task> GetAssignmentsAsync(string assignValue, + public async Task> GetAssignmentsAsync(string assignValue, [EnumDataType(typeof(DataPermissionAssignmentEnumType))] DataPermissionAssignmentEnumType uniqueType, DeviceTypeEnumType? type) { return await _dataPermissionService.GetAssignmentsAsync(assignValue, uniqueType, type); } + + /// + /// 获取用户的设备数据权限 + /// + /// + /// + [HttpGet("userDevicePermissions")] + public async Task> GetUsersDeviceDataPermissionsAsync(Guid deviceCode) + { + return await _dataPermissionService.GetUsersDeviceDataPermissionsAsync(deviceCode); + } } \ No newline at end of file diff --git a/Src/Dlhis.Sys/DataPermission/Response/GainfoResponse.cs b/Src/Dlhis.Sys/DataPermission/Response/GainfoResponse.cs new file mode 100644 index 00000000..4b8de1eb --- /dev/null +++ b/Src/Dlhis.Sys/DataPermission/Response/GainfoResponse.cs @@ -0,0 +1,7 @@ +namespace Dlhis.Sys.DataPermission.Response; + +public class GainfoResponse +{ + public string UserCode { get; set; } + public string UserName { get; set; } +} diff --git a/Src/Dlhis.Sys/DataPermission/Services/IDataPermissionService.cs b/Src/Dlhis.Sys/DataPermission/Services/IDataPermissionService.cs index 3c89301b..54fa016a 100644 --- a/Src/Dlhis.Sys/DataPermission/Services/IDataPermissionService.cs +++ b/Src/Dlhis.Sys/DataPermission/Services/IDataPermissionService.cs @@ -1,6 +1,7 @@ using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Enums; using Dlhis.Sys.DataPermission.Request; +using Dlhis.Sys.DataPermission.Response; namespace Dlhis.Sys.DataPermission.Services; @@ -9,4 +10,6 @@ public interface IDataPermissionService : IScopeDependency Task SaveAsync(DataPermissionSaveRequest request); Task> GetAssignmentsAsync(string assignValue, DataPermissionAssignmentEnumType uniqueType, DeviceTypeEnumType? type); + + Task> GetUsersDeviceDataPermissionsAsync(Guid deviceCode); } \ No newline at end of file diff --git a/Src/Dlhis.Sys/DataPermission/Services/Implements/DataPermissionService.cs b/Src/Dlhis.Sys/DataPermission/Services/Implements/DataPermissionService.cs index c63ca84c..4353be15 100644 --- a/Src/Dlhis.Sys/DataPermission/Services/Implements/DataPermissionService.cs +++ b/Src/Dlhis.Sys/DataPermission/Services/Implements/DataPermissionService.cs @@ -1,7 +1,10 @@ +using Dlhis.Entity.Basic.Entity; +using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Entities; using Dlhis.Entity.Sys.Enums; using Dlhis.Sys.DataPermission.Request; +using Dlhis.Sys.DataPermission.Response; using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; using Kurisu.AspNetCore.Utils.Extensions; @@ -25,8 +28,8 @@ public class DataPermissionService : IDataPermissionService .WhereIF(request.Type.HasValue, x => x.DeviceType == request.Type) .ToListAsync(); + //¸²¸ÇдÈë await _dbContext.DeleteReallyAsync(data); - if (request.Codes.IsPresent()) { await _dbContext.InsertAsync(request.Codes.Select(x => new DataPermissionEntity @@ -48,4 +51,30 @@ public class DataPermissionService : IDataPermissionService .Select(x => x.UniqueValue) .ToListAsync(); } + + public async Task> GetUsersDeviceDataPermissionsAsync(Guid deviceCode) + { + var deviceGroupCodes = await _dbContext.Queryable() + .Where(x => x.DeviceCode == deviceCode) + .Select(x => x.GroupCode) + .Distinct() + .ToListAsync(); + + var userNos = await _dbContext.Queryable() + .Where(x => (x.UniqueValue == deviceCode && x.UniqueType == DataPermissionAssignmentEnumType.Device) + || (deviceGroupCodes.Contains(x.UniqueValue) && x.UniqueType == DataPermissionAssignmentEnumType.Group) + ) + .Select(x => x.AssignValue) + .ToListAsync(); + + + return await _dbContext.Queryable() + .Where(x => userNos.Contains(x.No)) + .Select(x => new GainfoResponse + { + UserCode = x.Code, + UserName = x.Name + }) + .ToListAsync(); + } } \ No newline at end of file diff --git a/Src/Dlhis.Sys/Dlhis.Sys.csproj b/Src/Dlhis.Sys/Dlhis.Sys.csproj index 00510a43..ff5b9084 100644 --- a/Src/Dlhis.Sys/Dlhis.Sys.csproj +++ b/Src/Dlhis.Sys/Dlhis.Sys.csproj @@ -21,7 +21,6 @@ -