61 lines
1.6 KiB
C#
61 lines
1.6 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
||
using Microsoft.AspNetCore.Mvc;
|
||
using Microsoft.EntityFrameworkCore;
|
||
using VendingMachine.Infrastructure.Data;
|
||
|
||
namespace VendingMachine.Api.Controllers;
|
||
|
||
/// <summary>
|
||
/// 管理后台 - 入口图片管理控制器
|
||
/// </summary>
|
||
[ApiController]
|
||
[Route("api/admin/entry")]
|
||
[Authorize]
|
||
public class AdminEntryController : ControllerBase
|
||
{
|
||
private readonly AppDbContext _db;
|
||
|
||
public AdminEntryController(AppDbContext db)
|
||
{
|
||
_db = db;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取所有入口图片
|
||
/// </summary>
|
||
[HttpGet]
|
||
public async Task<IActionResult> GetAll()
|
||
{
|
||
var entries = await _db.HomeEntries.ToListAsync();
|
||
return Ok(new { success = true, data = entries });
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新入口图片(按 ID)
|
||
/// </summary>
|
||
[HttpPut("{id}")]
|
||
public async Task<IActionResult> Update(string id, [FromBody] EntryUpdateRequest request)
|
||
{
|
||
var entry = await _db.HomeEntries.FindAsync(id);
|
||
if (entry == null)
|
||
return NotFound(new { success = false, message = "入口不存在" });
|
||
|
||
entry.ImageUrlZhCn = request.ImageUrlZhCn;
|
||
entry.ImageUrlZhTw = request.ImageUrlZhTw;
|
||
entry.ImageUrlEn = request.ImageUrlEn;
|
||
|
||
await _db.SaveChangesAsync();
|
||
return Ok(new { success = true, data = entry });
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 入口图片更新请求体
|
||
/// </summary>
|
||
public class EntryUpdateRequest
|
||
{
|
||
public string ImageUrlZhCn { get; set; } = string.Empty;
|
||
public string ImageUrlZhTw { get; set; } = string.Empty;
|
||
public string ImageUrlEn { get; set; } = string.Empty;
|
||
}
|