LMS.service/LMS.service/Controllers/MachineController.cs

151 lines
5.3 KiB
C#

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
/// <summary>
/// 获取指定机器码的状态
/// </summary>
/// <param name="machineId"></param>
/// <returns></returns>
[HttpGet("{machineId}")]
public async Task<ActionResult<APIResponseModel<MachineStatusResponse>>> GetMachineStatus(string machineId)
{
return await _machineService.GetMachineStatus(machineId);
}
#endregion
#region
/// <summary>
/// 修改当前机器码
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("{id}")]
[Authorize]
public async Task<ActionResult<APIResponseModel<string>>> ModifyMachine(string id, [FromBody] MachineModel request)
{
if (!ModelState.IsValid)
{
return APIResponseModel<string>.CreateErrorResponseModel(ResponseCode.ParameterError);
}
long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _machineService.ModifyMachine(id, request, userId);
}
#endregion
#region
/// <summary>
/// 添加机器码
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Authorize]
public async Task<ActionResult<APIResponseModel<string>>> AddMachine([FromBody] MachineModel request)
{
if (!ModelState.IsValid)
{
return APIResponseModel<string>.CreateErrorResponseModel(ResponseCode.ParameterError);
}
long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _machineService.AddMachine(request, userId);
}
#endregion
#region
/// <summary>
/// 通过查询条件获取机器码列表
/// </summary>
/// <param name="page"></param>
/// <param name="pageSize"></param>
/// <param name="machineId"></param>
/// <param name="CreatedUserName"></param>
/// <param name="status"></param>
/// <param name="useStatus"></param>
/// <param name="Remark"></param>
/// <param name="ownUserName"></param>
/// <returns></returns>
[HttpGet]
[Authorize]
public async Task<ActionResult<APIResponseModel<CollectionResponse<Machine>>>> 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<ActionResult<APIResponseModel<MachineDetailDto>>> 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<ActionResult<APIResponseModel<string>>> 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<ActionResult<APIResponseModel<string>>> UpgradeMachine(string Id)
{
long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _machineService.UpgradeMachine(Id, userId);
}
#endregion
#region
/// <summary>
/// 删除机器码
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpDelete("{id}")]
[Authorize]
public async Task<ActionResult<APIResponseModel<object>>> DeleteMachine(string id)
{
long userId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _machineService.DeleteMachine(id, userId);
}
#endregion
}
}