using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Response; using Dlhis.Basic.Device.Services; using Kurisu.Core.DataAccess.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Dlhis.Basic.Device.Controllers; /// /// 设备控制器 /// [Authorize] [Route("api/[controller]")] [ApiController] public class DevicesController : ControllerBase { private readonly IDeviceService _deviceService; private readonly IDeviceTemplateService _deviceTemplateService; private readonly IDeviceConnectService _deviceConnectService; public DevicesController(IDeviceService deviceService, IDeviceTemplateService deviceTemplateService, IDeviceConnectService deviceConnectService) { _deviceService = deviceService; _deviceTemplateService = deviceTemplateService; _deviceConnectService = deviceConnectService; } /// /// 设备模板分页 /// /// /// [HttpGet("template/page")] public async Task> GetTemplatePageAsync([FromQuery] DeviceTemplatePageRequest request) { return await _deviceTemplateService.GetPageAsync(request); } /// /// 设备模板保存 /// /// /// [HttpPost("template")] public async Task SaveTemplateAsync(DeviceTemplateSaveRequest request) { await _deviceTemplateService.SaveTemplateAsync(request); } /// /// 设备分页 /// /// /// [HttpGet("page")] public async Task> GetPageAsync([FromQuery] DevicePageRequest request) { return await _deviceService.GetPageAsync(request); } /// /// 设备保存 /// /// /// [HttpPost("save")] public async Task SaveAsync(DeviceSaveRequest request) { await _deviceService.SaveAsync(request); } /// /// 设备注册 /// /// /// [HttpPost("resigter")] public async Task ResigterAsync(DeviceResigterRequest request) { return await _deviceConnectService.ResigterAsync(request); } /// /// 获取尚未设置营业点的设备 /// /// [HttpGet("businessplaces/incompletion")] public async Task> GetNotSetBusinessPlaceDevicesAsync() { return await _deviceConnectService.GetNotSetBusinessPlaceDevicesAsync(); } /// /// 设置设备营业点 /// /// /// [HttpPost("businessplaces")] public async Task SetResigterBusinessPlaceAsync(DeviceSetResigterBusinessPlaceRequest request) { await _deviceConnectService.SetResigterBusinessPlaceAsync(request); } /// /// 设备心跳 /// /// /// [HttpPost("heartbeat")] public async Task HeartbeatAsync(DeviceHeartbeatRequest request) { await _deviceConnectService.HeartbeatAsync(request); } }