Files
jinko.yikatong/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs
2024-05-30 20:44:41 +08:00

85 lines
2.6 KiB
C#

using Dlhis.Basic.Device.Dtos;
using Dlhis.Basic.Device.Request;
using Dlhis.Basic.Device.Services;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Basic.Device.Controllers;
[Authorize(Roles = "admin,tenant-admin")]
[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")]
[Transactional]
[IgnoreTenant]
public async Task AssignAsync(DevicePermissionSaveRequest request)
{
await _devicePermissionService.AssignAsync(request);
}
/// <summary>
/// 当前类型的权限分配
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("assignments")]
public async Task<List<Guid>> GetAssignmentsAsync([FromQuery] DeviceGetAssignmentsRequest request)
{
return await _devicePermissionService.GetAssignmentsAsync(request.UniqueType, request.AssignType, request.AssignValue);
}
/// <summary>
/// 获取就餐设备唯一号权限
/// </summary>
/// <param name="userNo"></param>
/// <returns></returns>
[AllowAnonymous]
[HttpGet("canteen/uniqueNos")]
[IgnoreTenant]
public async Task<List<string>> GetCanteenDeviceUniqueNosByUserNoAsync(string userNo)
{
return await _devicePermissionService.GetCanteenDeviceUniqueNosByUserNoAsync(userNo);
}
/// <summary>
/// 获取当前所有人的权限code
/// </summary>
/// <returns></returns>
[AllowAnonymous]
[HttpPost("all-permission")]
[IgnoreTenant]
public async Task<PermissionUsersInfoDto> GetPermissionUsersInfoAsync(List<string> userNos)
{
return await _devicePermissionService.GetPermissionUsersInfoAsync(userNos);
}
/// <summary>
/// 根据权限code生成下发任务
/// </summary>
/// <param name="beforeDto"></param>
/// <returns></returns>
[AllowAnonymous]
[IgnoreTenant]
[HttpPost("re-permission")]
public async Task<int> ReGeneratePermissionUsersInfoAsync(PermissionUsersInfoDto beforeDto)
{
return await _devicePermissionService.ReGeneratePermissionUsersInfoAsync(beforeDto);
}
}