using Microsoft.AspNetCore.Mvc;
using QYZH.InteractiveMagazine.IService;
using QYZH.InteractiveMagazine.Models.Dto;
using QYZH.InteractiveMagazine.Models.Dto.Material;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.WebApi.Controllers;
///
/// 资料管理控制器
///
[Route("api/[controller]")]
[ApiController]
[ApiExplorerSettings(GroupName = nameof(ApiVersionEnum.Platform))]
public class MaterialController(IMaterialService materialService) : BaseController
{
///
/// 创建资料
///
/// 资料信息
/// 创建后的资料信息
[HttpPost]
public async Task> CreateAsync([FromBody] MaterialInput input)
{
var result = await materialService.CreateAsync(input);
return Success(result, "创建资料成功");
}
///
/// 更新资料
///
/// 资料ID
/// 资料信息
/// 更新后的资料信息
[HttpPut("{id}")]
public async Task> UpdateAsync(long id, [FromBody] MaterialInput input)
{
var result = await materialService.UpdateAsync(id, input);
return Success(result, "更新资料成功");
}
///
/// 删除资料
///
/// 资料ID
/// 操作结果
[HttpDelete("{id}")]
public async Task> DeleteAsync(long id)
{
await materialService.DeleteAsync(id);
return Success(new object(), "删除资料成功");
}
///
/// 根据ID获取资料
///
/// 资料ID
/// 资料信息
[HttpGet("{id}")]
public async Task> GetByIdAsync(long id)
{
var result = await materialService.GetByIdAsync(id);
return Success(result);
}
///
/// 分页查询资料列表
///
/// 查询条件
/// 分页结果
[HttpPost("list")]
public async Task>> GetListAsync([FromBody] MaterialQueryInput input)
{
var result = await materialService.GetListAsync(input);
return Success(result);
}
///
/// 更新资料启用/禁用状态
///
/// 资料ID
/// 操作结果
[HttpPut("{id}/status")]
public async Task> UpdateStatusAsync(long id)
{
var result = await materialService.UpdateStatusAsync(id);
return Success(result, "更新资料状态成功");
}
}