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]
[DataPermission]
[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.GetUserDeviceCodesByNoOrCodeAsync(userCode);
}
[HttpPost("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);
}
}