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; } /// /// 获取指定应用的所有轮播项 /// [HttpGet] public async Task>> GetRotatorItems(int applicationId) { var items = await _rotatorItemService.GetByApplicationIdAsync(applicationId); return Ok(items); } /// /// 添加轮播项 /// [HttpPost] public async Task> 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 }); } } /// /// 更新轮播项 /// [HttpPut("{id}")] public async Task> 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); } /// /// 删除轮播项 /// [HttpDelete("{id}")] public async Task DeleteRotatorItem(int id) { var success = await _rotatorItemService.DeleteAsync(id); if (!success) return NotFound(new { success = false, message = "轮播项不存在" }); return Ok(new { success = true, message = "删除成功" }); } /// /// 批量更新轮播项顺序 /// [HttpPost("reorder")] public async Task ReorderRotatorItems(int applicationId, [FromBody] List itemIds) { await _rotatorItemService.ReorderAsync(applicationId, itemIds); return Ok(new { success = true, message = "顺序更新成功" }); } }