using Dlhis.Basic.Device.Request;
using Dlhis.Basic.Device.Response;
using Dlhis.Basic.Device.Services;
using Dlhis.Entity.Device.Enums;
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 DeviceGroupsController : ControllerBase
{
private readonly IDeviceGroupService _deviceGroupService;
public DeviceGroupsController(IDeviceGroupService deviceGroupService)
{
_deviceGroupService = deviceGroupService;
}
///
/// 获取设备组树
///
/// 是否显示设备
/// 分组类型
///
[HttpGet("tree")]
[IgnoreTenant]
public async Task> GetTreeAsync(bool showDevices, DeviceTypeEnumType? type)
{
return await _deviceGroupService.GetTreeAsync(showDevices, type);
}
///
/// 设备分组保存
///
///
///
[HttpPost("save")]
[IgnoreTenant]
public async Task SaveAsync(DeviceGroupSaveRequest request)
{
await _deviceGroupService.SaveAsync(request);
}
///
/// 获取分组下的设备
///
///
///
[HttpGet("devices")]
public async Task> GetDevicesAsync(Guid code)
{
return await _deviceGroupService.GetDevicesAsync(code);
}
///
/// 分配设备
///
///
///
[HttpPost("assign")]
[IgnoreTenant]
[Transactional]
public async Task AssignDevicesAsync(DeviceAssignRequest request)
{
await _deviceGroupService.AssignDevicesAsync(request);
}
///
/// 获取用于预约的设备组
///
///
[HttpGet("type/appointment")]
public async Task> GetAppointmentGroupsAsync()
{
return await _deviceGroupService.GetAppointmentGroupsAsync();
}
}