轮播应用OK
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
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 = "顺序更新成功" });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user