Files
EmailBill/WebApi/Controllers/TransactionPeriodicController.cs
SunCheng d052ae5197 fix
2026-02-10 17:49:19 +08:00

84 lines
2.3 KiB
C#

using Application.Dto.Periodic;
using Application;
namespace WebApi.Controllers;
/// <summary>
/// 周期性账单控制器
/// </summary>
[ApiController]
[Route("api/[controller]/[action]")]
public class TransactionPeriodicController(
ITransactionPeriodicApplication periodicApplication
) : ControllerBase
{
/// <summary>
/// 获取周期性账单列表(分页)
/// </summary>
[HttpGet]
public async Task<PagedResponse<PeriodicResponse>> GetListAsync(
[FromQuery] int pageIndex = 1,
[FromQuery] int pageSize = 20,
[FromQuery] string? searchKeyword = null
)
{
var result = await periodicApplication.GetListAsync(pageIndex, pageSize, searchKeyword);
return new PagedResponse<PeriodicResponse>
{
Success = true,
Data = result.Data,
Total = result.Total
};
}
/// <summary>
/// 根据ID获取周期性账单详情
/// </summary>
[HttpGet("{id}")]
public async Task<BaseResponse<PeriodicResponse>> GetByIdAsync(long id)
{
var periodic = await periodicApplication.GetByIdAsync(id);
return periodic.Ok();
}
/// <summary>
/// 创建周期性账单
/// </summary>
[HttpPost]
public async Task<BaseResponse<PeriodicResponse>> CreateAsync([FromBody] CreatePeriodicRequest request)
{
var periodic = await periodicApplication.CreateAsync(request);
return periodic.Ok("创建成功");
}
/// <summary>
/// 更新周期性账单
/// </summary>
[HttpPost]
public async Task<BaseResponse> UpdateAsync([FromBody] UpdatePeriodicRequest request)
{
await periodicApplication.UpdateAsync(request);
return "更新成功".Ok();
}
/// <summary>
/// 删除周期性账单
/// </summary>
[HttpPost]
public async Task<BaseResponse> DeleteByIdAsync([FromQuery] long id)
{
await periodicApplication.DeleteByIdAsync(id);
return "删除成功".Ok();
}
/// <summary>
/// 启用/禁用周期性账单
/// </summary>
[HttpPost]
public async Task<BaseResponse> ToggleEnabledAsync([FromQuery] long id, [FromQuery] bool enabled)
{
await periodicApplication.ToggleEnabledAsync(id, enabled);
return (enabled ? "已启用" : "已禁用").Ok();
}
}