using Dlhis.Basic.Device.Dtos; using Dlhis.Basic.Device.Filters; using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Response; 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] [Route("api/[controller]")] [ApiController] public class DevicePermissionsController : ControllerBase { private readonly IDevicePermissionService _devicePermissionService; public DevicePermissionsController(IDevicePermissionService devicePermissionService) { _devicePermissionService = devicePermissionService; } /// /// 分配权限 /// /// /// [HttpPost("assign")] [AssignPermissionLimit] [Transactional] [CrossTenant] public async Task AssignAsync(DevicePermissionSaveRequest request) { return await _devicePermissionService.AssignAsync(request); } /// /// 分配权限到设备/设备组/营业点 /// /// [HttpPost("assign-unique")] [AssignPermissionLimit] [Transactional] [CrossTenant] public async Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request) { await _devicePermissionService.AssignToUniqueAsync(request); } /// /// 当前类型的权限分配 /// /// /// [HttpGet("assignments")] public async Task> GetAssignmentsAsync([FromQuery] DeviceGetAssignmentsRequest request) { return await _devicePermissionService.GetAssignmentsAsync(request); } /// /// 当前类型的权限分配 /// /// /// [HttpGet("assignments-unique")] public async Task> GetAssignmentUniqueAsync([FromQuery] DeviceGetAssignmentUniquesRequest request) { return await _devicePermissionService.GetAssignmentUniqueAsync(request); } /// /// 获取设备下人员分页 /// /// /// [HttpGet("gainfos/page")] [CrossTenant] public async Task> GetGainfoPageByDeviceAsync([FromQuery] DeviceWithGainfoRequest request) { return await _devicePermissionService.GetGainfoPageByDeviceAsync(request); } [HttpGet("userPermissionCodes")] [IgnoreTenant] public async Task> GetAssignDeviceCodesAsync(string userCode) { return await _devicePermissionService.GetAssignDeviceCodesAsync(userCode); } [AllowAnonymous] [HttpGet("test")] [IgnoreTenant] public async Task>> GetUserDevicePermissionsAsync(string code) { return await _devicePermissionService.GetUserDevicePermissionsAsync(code); } }