Files
DRS9.Dashboard/src/DRS9.Dashboard.Server/Controllers/RotatorItemsController.cs

86 lines
2.8 KiB
C#
Raw Normal View History

2026-01-13 17:57:48 +08:00
using DRS9.Dashboard.Application.DTOs;
using DRS9.Dashboard.Application.Services;
using Microsoft.AspNetCore.Mvc;
namespace DRS9.Dashboard.Server.Controllers;
[ApiController]
[Route("api/admin/applications/{applicationId}/rotator-items")]
// [Authorize] - 暂时禁用认证以便测试
public class RotatorItemsController : ControllerBase
{
private readonly RotatorItemService _rotatorItemService;
public RotatorItemsController(RotatorItemService rotatorItemService)
{
_rotatorItemService = rotatorItemService;
}
/// <summary>
/// 获取指定应用的所有轮播项
/// </summary>
[HttpGet]
public async Task<ActionResult<List<RotatorItemDto>>> GetRotatorItems(int applicationId)
{
var items = await _rotatorItemService.GetByApplicationIdAsync(applicationId);
return Ok(items);
}
/// <summary>
/// 添加轮播项
/// </summary>
[HttpPost]
public async Task<ActionResult<RotatorItemDto>> CreateRotatorItem(int applicationId, [FromBody] RotatorItemCreateRequest request)
{
try
{
var item = await _rotatorItemService.CreateAsync(applicationId, request);
if (item == null)
return BadRequest(new { success = false, message = "应用不存在或类型不是轮播" });
return Ok(item);
}
catch (InvalidOperationException ex)
{
return BadRequest(new { success = false, message = ex.Message });
}
catch (Exception ex)
{
return BadRequest(new { success = false, message = ex.Message + " | " + ex.StackTrace });
}
}
/// <summary>
/// 更新轮播项
/// </summary>
[HttpPut("{id}")]
public async Task<ActionResult<RotatorItemDto>> UpdateRotatorItem(int id, [FromBody] RotatorItemUpdateRequest request)
{
var item = await _rotatorItemService.UpdateAsync(id, request);
if (item == null)
return NotFound(new { success = false, message = "轮播项不存在" });
return Ok(item);
}
/// <summary>
/// 删除轮播项
/// </summary>
[HttpDelete("{id}")]
public async Task<ActionResult> DeleteRotatorItem(int id)
{
var success = await _rotatorItemService.DeleteAsync(id);
if (!success)
return NotFound(new { success = false, message = "轮播项不存在" });
return Ok(new { success = true, message = "删除成功" });
}
/// <summary>
/// 批量更新轮播项顺序
/// </summary>
[HttpPost("reorder")]
public async Task<ActionResult> ReorderRotatorItems(int applicationId, [FromBody] List<int> itemIds)
{
await _rotatorItemService.ReorderAsync(applicationId, itemIds);
return Ok(new { success = true, message = "顺序更新成功" });
}
}