Files
jinko.yikatong/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs
2024-12-03 16:37:13 +08:00

117 lines
3.6 KiB
C#

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;
}
/// <summary>
/// 分配权限
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("assign")]
[AssignPermissionLimit]
[Transactional]
[CrossTenant]
public async Task<DevicePermissionAssignResponse> AssignAsync(DevicePermissionSaveRequest request)
{
return await _devicePermissionService.AssignAsync(request);
}
/// <summary>
/// 分配权限到设备/设备组/营业点
/// </summary>
/// <param name="request"></param>
[HttpPost("assign-unique")]
[AssignPermissionLimit]
[Transactional]
[CrossTenant]
public async Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request)
{
await _devicePermissionService.AssignToUniqueAsync(request);
}
[AllowAnonymous]
[HttpPost("assign-unique-import")]
[Transactional]
[IgnoreTenant]
public async Task AssignToUniqueImportAsync(IFormFile file)
{
await _devicePermissionService.AssignToUniqueImportAsync(file);
}
/// <summary>
/// 当前类型的权限分配
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("assignments")]
public async Task<List<Guid>> GetAssignmentsAsync([FromQuery] DeviceGetAssignmentsRequest request)
{
return await _devicePermissionService.GetAssignmentsAsync(request);
}
/// <summary>
/// 当前类型的权限分配
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("assignments-unique")]
public async Task<List<GainfoDto>> GetAssignmentUniqueAsync([FromQuery] DeviceGetAssignmentUniquesRequest request)
{
return await _devicePermissionService.GetAssignmentUniqueAsync(request);
}
/// <summary>
/// 获取设备下人员分页
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("gainfos/page")]
[CrossTenant]
public async Task<Pagination<DeviceGainfoResponse>> GetGainfoPageByDeviceAsync([FromQuery] DeviceWithGainfoRequest request)
{
return await _devicePermissionService.GetGainfoPageByDeviceAsync(request);
}
[HttpPost("gainfos/reset")]
[CrossTenant]
public async Task ResetGainfoPageByDeviceAsync(DeviceGainfoReset request)
{
await _devicePermissionService.ResetGainfoPageByDeviceAsync(request);
}
[HttpGet("userPermissionCodes")]
[IgnoreTenant]
public async Task<List<Guid>> GetAssignDeviceCodesAsync(string userCode)
{
return await _devicePermissionService.GetAssignDeviceCodesAsync(userCode);
}
[AllowAnonymous]
[HttpGet("test")]
[IgnoreTenant]
public async Task<Dictionary<string, List<UserTenantDeviceCodeDto>>> GetUserDevicePermissionsAsync(string code)
{
return await _devicePermissionService.GetUserDevicePermissionsAsync(code);
}
}