From fff0928a86eee8e50c3f0d234b4c40e6f7fd2028 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 11 Mar 2024 16:31:26 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=B0=83=E6=95=B4=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E8=90=A5=E4=B8=9A=E7=82=B9=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevicePermissionsController.cs | 9 ++ .../GainfoPermissionsController.cs | 47 +++++---- .../Request/GetPlaceByGainfoRequest.cs | 8 -- .../Services/IGainfoPermissions.cs | 14 +-- .../Services/Implements/GainfoPermissions.cs | 96 +++++++------------ .../Response/DeviceUploadLogResponse.cs | 4 +- .../Implements/DeviceUploadLogService.cs | 2 +- 7 files changed, 76 insertions(+), 104 deletions(-) delete mode 100644 Src/Dlhis.Basic/Organization/Request/GetPlaceByGainfoRequest.cs diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs index dba09fd2..7b1ab8ce 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs @@ -69,6 +69,10 @@ public class DevicePermissionsController : ControllerBase return await _devicePermissionService.GetCanteenDeviceUniqueNosByUserNoAsync(userNo); } + /// + /// 获取当前所有人的权限code + /// + /// [AllowAnonymous] [HttpGet("all-permission")] [IgnoreTenant] @@ -77,6 +81,11 @@ public class DevicePermissionsController : ControllerBase return await _devicePermissionService.GetPermissionUsersInfoAsync(); } + /// + /// 根据权限code生成下发任务 + /// + /// + /// [AllowAnonymous] [IgnoreTenant] [HttpPost("re-permission")] diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs index 7725e521..58045b3e 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs @@ -1,34 +1,31 @@ -using Dlhis.Basic.Organization.Request; -using Dlhis.Basic.Organization.Response; +using Dlhis.Basic.Organization.Response; using Dlhis.Basic.Organization.Services; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -namespace Dlhis.Basic.Organization.Controllers +namespace Dlhis.Basic.Organization.Controllers; + +[Authorize] +[Route("api/[controller]")] +[ApiController] +public class GainfoPermissionsController : ControllerBase { - [Authorize] - [Route("api/[controller]")] - [ApiController] - public class GainfoPermissionsController : ControllerBase + private readonly IGainfoPermissions _gainfoPermissions; + + + public GainfoPermissionsController(IGainfoPermissions gainfoPermissions) { - private readonly IGainfoPermissions _gainfoPermissions; + _gainfoPermissions = gainfoPermissions; + } - - public GainfoPermissionsController(IGainfoPermissions gainfoPermissions) - { - _gainfoPermissions = gainfoPermissions; - } - - /// - /// 根据用户查看餐饮点 - /// - /// - /// - [HttpGet("placesByGainfo")] - public async Task> GetPlaceByGainfoAsync([FromQuery]GetPlaceByGainfoRequest request) - { - return await _gainfoPermissions.GetPlaceByGainfoAsync(request); - } + /// + /// 根据用户查看餐饮点 + /// + /// + /// + [HttpGet("placesByGainfo")] + public async Task> GetPlaceByGainfoAsync(string userNo) + { + return await _gainfoPermissions.GetPlaceByGainfoAsync(userNo); } } diff --git a/Src/Dlhis.Basic/Organization/Request/GetPlaceByGainfoRequest.cs b/Src/Dlhis.Basic/Organization/Request/GetPlaceByGainfoRequest.cs deleted file mode 100644 index 234deffe..00000000 --- a/Src/Dlhis.Basic/Organization/Request/GetPlaceByGainfoRequest.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Kurisu.Core.DataAccess.Dto; - -namespace Dlhis.Basic.Organization.Request -{ - public class GetPlaceByGainfoRequest : PageDto - { - } -} diff --git a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs index a98b07c1..91ab4316 100644 --- a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs +++ b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs @@ -1,10 +1,10 @@ -using Dlhis.Basic.Organization.Request; -using Dlhis.Basic.Organization.Response; +using Dlhis.Basic.Organization.Response; -namespace Dlhis.Basic.Organization.Services +namespace Dlhis.Basic.Organization.Services; + +public interface IGainfoPermissions : IScopeDependency { - public interface IGainfoPermissions : IScopeDependency - { - Task> GetPlaceByGainfoAsync(GetPlaceByGainfoRequest request); - } + Task> GetPlaceByGainfoAsync(string userNo); + + //Task GetDevicesUnderGroupByUserNoAsync(string userNo, string deviceGroupCode); } diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs index cef76f14..e8c8589e 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs @@ -1,78 +1,52 @@ -using Dlhis.Basic.Device.Request; -using Dlhis.Basic.Device.Services; -using Dlhis.Basic.Organization.Request; +using Dlhis.Basic.Device.Services; using Dlhis.Basic.Organization.Response; using Dlhis.Entity.Basic.Entity; -using Dlhis.Entity.Basic.Enums; using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Enums; -using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.SqlSugar.Services; -namespace Dlhis.Basic.Organization.Services.Implements +namespace Dlhis.Basic.Organization.Services.Implements; + +public class GainfoPermissions : IGainfoPermissions { - public class GainfoPermissions : IGainfoPermissions + private readonly IGainfoStore _gainfoStore; + private readonly IDevicePermissionService _devicePermissionService; + private readonly IDbContext _dbContext; + + public GainfoPermissions(IGainfoStore gainfoStore, IDevicePermissionService devicePermissionService, IDbContext dbContext) { - private readonly IGainfoStore _gainfoStore; - private readonly IDevicePermissionService _devicePermissionService; - private readonly IDbContext _dbContext; + _gainfoStore = gainfoStore; + _devicePermissionService = devicePermissionService; + _dbContext = dbContext; + } - public GainfoPermissions(IGainfoStore gainfoStore, IDevicePermissionService devicePermissionService, IDbContext dbContext) + public async Task> GetPlaceByGainfoAsync(string userNo) + { + var gainfo = await _gainfoStore.Queryable() + .Where(x => x.No == userNo) + .FirstAsync(); + + if (gainfo == null) { - _gainfoStore = gainfoStore; - _devicePermissionService = devicePermissionService; - _dbContext = dbContext; + return new List(); } - public async Task> GetPlaceByGainfoAsync(GetPlaceByGainfoRequest request) - { - var lst = new List(); - var gainfo = await _gainfoStore.Queryable(GainfoStatusEnumType.Working) - .Where(x => x.No == request.Search || x.Code == request.Search) - .FirstAsync(); - gainfo.ThrowIfNull($"用户不存在!"); + //用户所有deviceCode权限 + var deviceCodes = await _devicePermissionService.GetAssignDeviceCodesAsync(gainfo.No); - var req = new AssigmentByCodeRequest + return await _dbContext.Queryable() + .LeftJoin((x, dr) => x.UniqueNo == dr.DeviceUniqueNo) + .LeftJoin((x, dr, place) => dr.BusinessPlaceCode == place.Code) + .Where(x => x.Type == DeviceTypeEnumType.Meal) + .Where(x => deviceCodes.Contains(x.Code)) + .Where((x, dr) => !string.IsNullOrEmpty(dr.BusinessPlaceCustomCode)) + .Select((x, dr, place) => new GetPlaceByGainfoResponse { - No = gainfo.No - }; - var devices = await _devicePermissionService.GetAssigmentByCodeAsync(req); - if (devices != null) - { - //用户权限设备 - var unids = new List(); - foreach (var item in devices.Data) - { - unids.Add(item.UniqueNo); - } - //餐饮设备 - var ids = await _dbContext.Queryable() - .Where(x => unids.Contains(x.UniqueNo)) - .Where(x => x.Type == DeviceTypeEnumType.Meal) - .Select(x => x.UniqueNo) - .ToListAsync(); + PlaceCode = place.Code, + PlaceName = place.Name + }) + .Distinct() + .ToListAsync(); - var places = await _dbContext.Queryable() - .Where(x => ids.Contains(x.DeviceUniqueNo)) - .Select(x => x.BusinessPlaceCode) - .ToListAsync(); - var bplaces = await _dbContext.Queryable().ToListAsync(); - foreach (var code in places) - { - if(code == null) - { - continue; - } - var res = new GetPlaceByGainfoResponse(); - res.PlaceCode = (Guid)code; - res.PlaceName = bplaces.Where(x => x.Code == code).Select(x => x.Name).FirstOrDefault(); - lst.Add(res); - } - } - - return lst; - } - - } } diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Response/DeviceUploadLogResponse.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Response/DeviceUploadLogResponse.cs index d3955ba0..de4a7a64 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Response/DeviceUploadLogResponse.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Response/DeviceUploadLogResponse.cs @@ -12,9 +12,9 @@ public class DeviceUploadLogResponse public string DeviceUniqueNo { get; set; } /// - /// 设备名称 + /// 设备供应商 /// - public string DeviceName { get; set; } + public string Supplier { get; set; } /// /// 用户档案号 diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs index 55fe6498..ce149e14 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs @@ -38,7 +38,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService .Select((deviceUp, device, ga) => new DeviceUploadLogResponse { OriginUserUniqueNo = deviceUp.UserUniqueNo, - DeviceName = device.Supplier, + Supplier = device.Supplier, DeviceUniqueNo = deviceUp.DeviceUniqueNo, Id = deviceUp.Id, RaiseDateTime = deviceUp.RaiseDateTime,