using Microsoft.AspNetCore.Mvc; using QYZH.InteractiveMagazine.Infrastructure.Middleware; 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 { /// /// 创建资料 /// /// 资料信息 /// 创建后的资料信息 [OperationLog(OperationLogActionType.Create, OperationLogTargetType.Material)] [HttpPost] public async Task> CreateAsync([FromBody] MaterialInput input) { var result = await materialService.CreateAsync(input); return Success(result, "创建资料成功"); } /// /// 更新资料 /// /// 资料ID /// 资料信息 /// 更新后的资料信息 [OperationLog(OperationLogActionType.Update, OperationLogTargetType.Material)] [HttpPut("{id}")] public async Task> UpdateAsync(long id, [FromBody] MaterialInput input) { var result = await materialService.UpdateAsync(id, input); return Success(result, "更新资料成功"); } /// /// 删除资料 /// /// 资料ID /// 操作结果 [OperationLog(OperationLogActionType.Delete, OperationLogTargetType.Material)] [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 /// 操作结果 [OperationLog(OperationLogActionType.StatusChange, OperationLogTargetType.Material)] [HttpPut("{id}/status")] public async Task> UpdateStatusAsync(long id) { var result = await materialService.UpdateStatusAsync(id); return Success(result, "更新资料状态成功"); } }