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