using Dlhis.Basic.WorkGrids.Request;
using Dlhis.Basic.WorkGrids.Response;
using Dlhis.Basic.WorkGrids.Services;
using Kurisu.AspNetCore.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Basic.WorkGrids.Controllers;
///
/// 电子围栏操作
///
[Authorize]
[Route("api/[controller]")]
[ApiController]
public class EFenceController : ControllerBase
{
private readonly IEFenceService _eFenceService;
public EFenceController(IEFenceService eFenceService)
{
_eFenceService = eFenceService;
}
///
/// 保存电子围栏(新增或更新)
///
[HttpPost("save")]
public async Task SaveAsync([FromBody] EFenceSaveRequest request)
{
await _eFenceService.SaveAsync(request);
}
///
/// 获取电子围栏分页
///
///
///
[HttpGet("page")]
public async Task> GetEFencePageAsync([FromQuery] EFencePageRequest request)
{
return await _eFenceService.GetEFencePageAsync(request);
}
///
/// 获取围栏下的房间
///
///
///
[HttpGet("rooms")]
public async Task> GetRoomsAsync(Guid eFenceCode)
{
return await _eFenceService.GetRoomsAsync(eFenceCode);
}
///
/// 获取房间人员
///
///
///
[HttpGet("room-persons")]
public async Task> GetRoomPersonsAsync(string roomId)
{
return await _eFenceService.GetRoomPersonsAsync(roomId);
}
///
/// 向围栏添加设备
///
[HttpPost("devices/add")]
public async Task AddDevicesAsync(EFenceDevicesRequest request)
{
await _eFenceService.AddDevicesAsync(request.FenceId, request.DeviceCodes);
}
///
/// 从围栏移除设备
///
[HttpPost("devices/remove")]
public async Task RemoveDevicesAsync(EFenceDevicesRequest request)
{
await _eFenceService.RemoveDevicesAsync(request.FenceId, request.DeviceCodes);
}
///
/// 获取设备列表
///
///
///
[HttpGet("devices")]
public async Task> GetDevicesByFenceIdAsync(long fenceId)
{
return await _eFenceService.GetDevicesByFenceIdAsync(fenceId);
}
}