using LMS.Repository.DTO; using LMS.Repository.Models.DB; using LMS.Repository.Models.Machine; using LMS.service.Service; using LMS.Tools.Extensions; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.ComponentModel.DataAnnotations; using static LMS.Common.Enums.MachineEnum; using static LMS.Common.Enums.ResponseCodeEnum; using static LMS.Repository.DTO.MachineResponse.MachineDto; namespace LMS.service.Controllers { [Route("lms/[controller]/[action]")] [ApiController] public class MachineController(MachineService machineService) : ControllerBase { private readonly MachineService _machineService = machineService; #region 获取指定机器码的状态 /// /// 获取指定机器码的状态 /// /// /// [HttpGet("{machineId}")] public async Task>> GetMachineStatus(string machineId) { return await _machineService.GetMachineStatus(machineId); } #endregion #region 修改机器码数据 /// /// 修改当前机器码 /// /// /// [HttpPost("{id}")] [Authorize] public async Task>> ModifyMachine(string id, [FromBody] MachineModel request) { if (!ModelState.IsValid) { return APIResponseModel.CreateErrorResponseModel(ResponseCode.ParameterError); } long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0); return await _machineService.ModifyMachine(id, request, userId); } #endregion #region 添加机器码 /// /// 添加机器码 /// /// /// [HttpPost] [Authorize] public async Task>> AddMachine([FromBody] MachineModel request) { if (!ModelState.IsValid) { return APIResponseModel.CreateErrorResponseModel(ResponseCode.ParameterError); } long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0); return await _machineService.AddMachine(request, userId); } #endregion #region 获取机器码列表 /// /// 通过查询条件获取机器码列表 /// /// /// /// /// /// /// /// /// /// [HttpGet] [Authorize] public async Task>>> QueryMachineCollection([Required] int page, [Required] int pageSize, string? machineId, string? createdUserName, MachineStatus? status, MachineUseStatus? useStatus, string? remark, string? ownUserName) { long requestUserId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0); return await _machineService.QueryMachineCollection(page, pageSize, machineId, createdUserName, status, useStatus, remark, ownUserName, requestUserId); } #endregion #region 获取指定的机器码详情 [HttpGet("{Id}")] [Authorize] public async Task>> GetMachineDetail(string Id) { long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0); return await _machineService.GetMachineDetail(Id, userId); } #endregion #region 将机器码停用 [HttpPost("{Id}")] [Authorize] public async Task>> DeactivateMachine(string Id) { long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0); return await _machineService.DeactivateMachine(Id, userId); } #endregion #region 将机器码升级 [HttpPost("{Id}")] [Authorize] public async Task>> UpgradeMachine(string Id) { long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0); return await _machineService.UpgradeMachine(Id, userId); } #endregion #region 删除机器码 /// /// 删除机器码 /// /// /// [HttpDelete("{id}")] [Authorize] public async Task>> DeleteMachine(string id) { long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0); return await _machineService.DeleteMachine(id, userId); } #endregion } }