using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Response; using Dlhis.Basic.Device.Services; using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop; 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; 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); } /// /// 设备分页 /// /// /// [HttpGet("page")] 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); } /// /// 设备注册 /// /// /// [HttpPost("resigter")] [IgnoreTenant] public async Task ResigterAsync(DeviceResigterRequest request) { return await _deviceConnectService.ResigterAsync(request); } /// /// 获取激活码 /// /// [HttpPost("resigter-code")] public object GetRegisterCode() { return new { AppId = _configuration.GetSection("RegisterAppId").Value, Key = _configuration.GetSection("RegisterCode").Value }; } /// /// 获取尚未设置营业点的设备 /// /// [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")] [IgnoreTenant] public async Task HeartbeatAsync(DeviceHeartbeatRequest request) { await _deviceConnectService.HeartbeatAsync(request); } /// /// 检查设备是否存在 /// /// [HttpGet("exists")] public async Task CheckExistsAsync(string deviceUniqueNo) { return await _deviceService.CheckExistsAsync(deviceUniqueNo); } /// /// 获取设备 /// /// /// [HttpGet] public async Task GetDeviceByNoAsync([FromQuery] DeviceByNoRequest request) { return await _deviceService.GetDeviceByNoAsync(request); } /// /// 获取考勤设备 /// /// [HttpGet("attendances")] public async Task> GetAttendanceDevicesAsync() { return await _deviceService.GetAttendanceDevicesAsync(); } /// /// 获取考勤设备在线、离线及总数 /// /// [HttpGet("devicesnumbers")] public async Task GetDeviceNumberAsync() { return await _deviceService.GetDeviceNumberAsync(); } /// /// 获取考勤设备详情列表 /// /// [HttpGet("attendancestotal")] public async Task> GetAttendanceTotalAsync([FromQuery]AttendanceTotalRequest request) { return await _deviceService.GetAttendanceTotalAsync(request); } /// /// 获取考勤在线/离线设备详情列表 /// /// [HttpGet("attendancesoffline")] public async Task> GetAttendanceOfflineAsync([FromQuery] DeviceOnlineAndofflineRequest request) { return await _deviceService.GetAttendanceOfflineAsync(request); } /// /// 获取门禁在线/离线设备详情列表 /// /// [HttpGet("dooroffline")] public async Task> GetDoorOfflineAsync([FromQuery] GetDoorOfflineRequest request) { return await _deviceService.GetDoorOfflineAsync(request); } /// /// 获取近期30天考勤新增设备数 /// /// [HttpGet("recentnumbers")] public async Task> GetRecentNumbersAsync() { return await _deviceService.GetRecentNumbersAsync(); } /// /// 批量导入设备信息 /// /// /// [HttpPost("bulkUploads")] public async Task> BulkUploadsAsync(ImportListRequest request) { return await _deviceService.BulkUploadsAsync(request); } }