using Dlhis.Basic.Device.Dtos; using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Response; using Dlhis.Basic.Device.Services; using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop; using Kurisu.Core.DataAccess.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Dlhis.Basic.Device.Controllers; [Authorize] [Route("api/[controller]")] [ApiController] public class DevicePermissionsController : ControllerBase { private readonly IDevicePermissionService _devicePermissionService; public DevicePermissionsController(IDevicePermissionService devicePermissionService) { _devicePermissionService = devicePermissionService; } /// /// 分配权限 /// /// /// [HttpPost("assign")] [Transactional] [IgnoreTenant] public async Task AssignAsync(DevicePermissionSaveReuqest request) { await _devicePermissionService.AssignAsync(request); } /// /// 当前类型的权限分配 /// /// /// [HttpGet("assignments")] public async Task> GetAssignmentsAsync([FromQuery] DeviceGetAssignmentsRequest request) { return await _devicePermissionService.GetAssignmentsAsync(request.UniqueType, request.AssignType, request.AssignValue); } /// /// 获取用户权限设备 /// /// /// [HttpGet("assignmentsbyno")] public async Task> GetAssigmentByCodeAsync([FromQuery] AssigmentByCodeRequest request) { return await _devicePermissionService.GetAssigmentByCodeAsync(request); } /// /// 获取就餐设备唯一号权限 /// /// /// [HttpGet("canteen/uniqueNos")] [IgnoreTenant] public async Task> GetCanteenDeviceUniqueNosByUserNoAsync(string userNo) { return await _devicePermissionService.GetCanteenDeviceUniqueNosByUserNoAsync(userNo); } /// /// 获取当前所有人的权限code /// /// [AllowAnonymous] [HttpGet("all-permission")] [IgnoreTenant] public async Task GetPermissionUsersInfoAsync() { return await _devicePermissionService.GetPermissionUsersInfoAsync(); } /// /// 根据权限code生成下发任务 /// /// /// [AllowAnonymous] [IgnoreTenant] [HttpPost("re-permission")] public async Task ReGeneratePermissionUsersInfoAsync(PermissionUsersInfoDto beforeDto) { return await _devicePermissionService.ReGeneratePermissionUsersInfoAsync(beforeDto); } }