84 lines
2.3 KiB
C#
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();
|
|
}
|
|
}
|