using Dlhis.Basic.Device.Request;
using Dlhis.Basic.Device.Response;
using Dlhis.Basic.Device.Services;
using Kurisu.AspNetCore.DataAccess.Dto;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Kurisu.AspNetCore.UnifyResultAndValidation.Aop;
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;
private readonly IConfiguration _configuration;
public DevicesController(IDeviceService deviceService,
IDeviceTemplateService deviceTemplateService,
IDeviceConnectService deviceConnectService, IConfiguration configuration)
{
_deviceService = deviceService;
_deviceTemplateService = deviceTemplateService;
_deviceConnectService = deviceConnectService;
_configuration = configuration;
}
///
/// 设备模板分页
///
///
///
[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);
}
///
/// 设备心跳
///
///
///
[DisableApiLog]
[Obsolete("迁移到DeviceConnect")]
[HttpPost("heartbeat")]
[IgnoreTenant]
public async Task HeartbeatAsync(DeviceHeartbeatRequest request)
{
await _deviceConnectService.HeartbeatAsync(request);
}
///
/// 设备注册
///
///
///
[Obsolete("迁移到DeviceConnect")]
[HttpPost("resigter")]
[IgnoreTenant]
public async Task RegisterAsync(DeviceRegisterRequest request)
{
return await _deviceConnectService.RegisterAsync(request);
}
///
/// 获取激活码
///
///
[HttpPost("resigter-code")]
public object GetRegisterCode()
{
return new
{
AppId = _configuration.GetSection("RegisterAppId").Value,
Key = _configuration.GetSection("RegisterCode").Value
};
}
///
/// 设备分页
///
///
///
[HttpGet("page")]
[DataPermission]
public async Task> GetPageAsync([FromQuery] DevicePageRequest request)
{
return await _deviceService.GetPageAsync(request);
}
///
/// 设备保存
///
///
///
[HttpPost("save")]
[Transactional]
public async Task SaveAsync(DeviceSaveRequest request)
{
await _deviceService.SaveAsync(request);
}
///
/// 获取尚未设置营业点的设备
///
///
[HttpGet("businessplaces/incompletion")]
public async Task> GetNotSetBusinessPlaceDevicesAsync()
{
return await _deviceConnectService.GetNotSetBusinessPlaceDevicesAsync();
}
///
/// 设置设备营业点
///
///
///
[HttpPost("businessplaces")]
public async Task SetRegisterBusinessPlaceAsync(DeviceSetResigterBusinessPlaceRequest request)
{
await _deviceConnectService.SetRegisterBusinessPlaceAsync(request);
}
///
/// 获取考勤在线/离线设备详情列表
///
///
[HttpGet("onlineStatus/page")]
public async Task> GetOnlineStatusPageAsync([FromQuery] DeviceOnlineAndOfflineRequest request)
{
return await _deviceService.GetOnlineStatusPageAsync(request);
}
///
/// 批量导入设备信息
///
///
///
[HttpPost("import")]
public async Task Import(List request)
{
await _deviceService.ImportAsync(request);
}
}