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(); } }