using Dlhis.Basic.Device.Dtos; using Dlhis.Basic.Device.Filters; using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Services; using Dlhis.Basic.Organization.Dto; using Kurisu.AspNetCore.DataAccess.Dto; using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Dlhis.Basic.Device.Controllers; [Authorize(Roles = "admin,tenant-admin")] [Route("api/[controller]")] [ApiController] public class DevicePermissionsController : ControllerBase { private readonly IDevicePermissionService _devicePermissionService; public DevicePermissionsController(IDevicePermissionService devicePermissionService) { _devicePermissionService = devicePermissionService; } /// /// 分配权限 /// /// /// [HttpPost("assign")] [AssignPermissionLimit] [Transactional] [DataPermission] public async Task AssignAsync(DevicePermissionSaveRequest request) { await _devicePermissionService.AssignAsync(request); } /// /// 分配权限到设备/设备组/营业点 /// /// [HttpPost("assign-unique")] [AssignPermissionLimit] [Transactional] [DataPermission] public async Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request) { await _devicePermissionService.AssignToUniqueAsync(request); } [AllowAnonymous] [HttpPost("assignment-generate")] [Transactional] [IgnoreTenant] public async Task GeneratePermissionsAsync(GeneratePermissionIdRequest request) { await _devicePermissionService.GeneratePermissionsAsync(request.Id); } /// /// 当前类型的权限分配 /// /// /// [DataPermission] [HttpGet("assignments")] public async Task> GetAssignmentsAsync([FromQuery] DeviceGetAssignmentsRequest request) { return await _devicePermissionService.GetAssignmentsAsync(request); } /// /// 当前类型的权限分配 /// /// /// [DataPermission] [HttpGet("assignments-unique")] public async Task> GetAssignmentUniqueAsync([FromQuery] DeviceGetAssignmentUniquesRequest request) { return await _devicePermissionService.GetAssignmentUniqueAsync(request); } /// /// 获取就餐设备唯一号权限 /// /// /// [AllowAnonymous] [HttpGet("canteen/uniqueNos")] [IgnoreTenant] public async Task> GetCanteenDeviceUniqueNosByUserNoAsync(string userNo) { return await _devicePermissionService.GetCanteenDeviceUniqueNosByUserNoAsync(userNo); } /// /// 获取当前所有人的权限code /// /// [AllowAnonymous] [HttpPost("all-permission")] [IgnoreTenant] public async Task GetPermissionUsersInfoAsync(List userNos) { return await _devicePermissionService.GetPermissionUsersInfoAsync(userNos); } /// /// 根据权限code生成下发任务 /// /// /// [AllowAnonymous] [IgnoreTenant] [HttpPost("re-permission")] public async Task ReGeneratePermissionUsersInfoAsync(PermissionUsersInfoDto beforeDto) { return await _devicePermissionService.ReGeneratePermissionUsersInfoAsync(beforeDto); } /// /// 获取设备下人员分页 /// /// /// [HttpGet("gainfos/page")] public async Task> GetGainfoPageByDeviceAsync([FromQuery] DeviceWithGainfoRequest request) { return await _devicePermissionService.GetGainfoPageByDeviceAsync(request); } }