using Dlhis.Basic.Device.Dtos; 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; private readonly IDevicePermissionAnalyzeService _devicePermissionAnalyzeService; public DevicePermissionsController(IDevicePermissionService devicePermissionService, IDevicePermissionAnalyzeService devicePermissionAnalyzeService) { _devicePermissionService = devicePermissionService; _devicePermissionAnalyzeService = devicePermissionAnalyzeService; } /// /// 分配权限 /// /// /// [HttpPost("assign")] [Transactional] [CrossTenant] public async Task AssignAsync(DevicePermissionSaveRequest request) { return await _devicePermissionService.AssignAsync(request); } /// /// 分配权限到设备 /// /// [HttpPost("assign-unique")] [Transactional] [CrossTenant] public async Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request) { return await _devicePermissionService.AssignToUniqueAsync(request); } // [AllowAnonymous] // [HttpPost("assign-unique-import")] // [Transactional] // [IgnoreTenant] // public async Task AssignToUniqueImportAsync(IFormFile file) // { // await _devicePermissionService.AssignToUniqueImportAsync(file); // } /// /// 当前类型的权限分配 /// /// /// [HttpGet("assignments")] public async Task> GetAssignmentsAsync([FromQuery] DeviceGetAssignmentsRequest request) { return await _devicePermissionAnalyzeService.GetAssignmentsAsync(request); } /// /// 当前类型的权限分配 /// /// /// [HttpGet("assignments-unique")] public async Task> GetAssignmentUniqueAsync([FromQuery] DeviceGetAssignmentUniquesRequest request) { return await _devicePermissionAnalyzeService.GetAssignmentUniqueAsync(request); } /// /// 获取设备下人员分页 /// /// /// [HttpGet("gainfos/page")] [CrossTenant] public async Task> GetGainfoPageByDeviceAsync([FromQuery] DeviceWithGainfoRequest request) { return await _devicePermissionService.GetGainfoPageByDeviceAsync(request); } /// /// 设备人员下发重置 /// /// [HttpPost("gainfos/reset")] [CrossTenant] public async Task ResetGainfoPageByDeviceAsync(DeviceGainfoReset request) { await _devicePermissionService.ResetGainfoPageByDeviceAsync(request.Code, request.Search, request.UserType); } /// /// 获取设备下所有人员 /// /// [HttpGet("gainfo-all")] [IgnoreTenant] public async Task> GetDeviceUserCodesAsync(string deviceUniqueNo) { return await _devicePermissionService.GetDeviceUserCodesAsync(deviceUniqueNo); } /// /// 设备其他类型人员 /// /// /// [HttpGet("gainfo/others")] [IgnoreTenant] public async Task ExternalAndManuallyUserNoAsync(string deviceUniqueNo) { return await _devicePermissionService.ExternalAndManuallyUserNoAsync(deviceUniqueNo); } [HttpGet("userPermissionCodes")] [IgnoreTenant] public async Task> GetAssignDeviceCodesAsync(string userCode) { return await _devicePermissionService.GetUserDeviceCodesByNoAsync(userCode); } [HttpGet("temp-userPermissionCodes")] [IgnoreTenant] public async Task GetAssignDeviceCodesAsync(List userCodes) { return await _devicePermissionService.GetUserDeviceCodesByNoAsync(userCodes); } [HttpGet("test-userPermissionCodes")] [IgnoreTenant] public async Task>> GetTestAssignDeviceCodesAsync(string userNo) { return await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(new List { userNo }); } [HttpGet("reset-visitors")] [IgnoreTenant] public async Task ResetVisitorsByDeviceAsync(string deviceUniqueNo) { return await _devicePermissionService.ResetVisitorsByDeviceAsync(deviceUniqueNo); } [HttpGet("exceptUsers")] [IgnoreTenant] public async Task> GetDeviceExceptUsersAsync(string deviceUniqueNo) { return await _devicePermissionService.GetDeviceExceptUsersAsync(deviceUniqueNo); } [HttpGet("notInDeviceUsers")] [IgnoreTenant] public async Task> GetDeviceNotInUsersAsync(string deviceUniqueNo) { return await _devicePermissionService.GetDeviceNotInUsersAsync(deviceUniqueNo); } [HttpPost("removeExceptUsers")] [Transactional] [IgnoreTenant] public async Task GenerateDeleteDeviceTasksAsync(DeviceRemoveExceptUserRequest request) { return await _devicePermissionService.GenerateDeleteDeviceTasksAsync(request.DeviceUniqueNo); } }