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