using Application; using Application.Dto; namespace WebApi.Controllers; [ApiController] [Route("api/[controller]/[action]")] public class BudgetController( IBudgetApplication budgetApplication ) : ControllerBase { /// /// 获取预算列表 /// [HttpGet] public async Task>> GetListAsync([FromQuery] DateTime referenceDate) { var result = await budgetApplication.GetListAsync(referenceDate); return result.Ok(); } /// /// 获取分类统计信息(月度和年度) /// [HttpGet] public async Task> GetCategoryStatsAsync([FromQuery] BudgetCategory category, [FromQuery] DateTime referenceDate) { var result = await budgetApplication.GetCategoryStatsAsync(category, referenceDate); return result.Ok(); } /// /// 获取未被预算覆盖的分类统计信息 /// [HttpGet] public async Task>> GetUncoveredCategoriesAsync([FromQuery] BudgetCategory category, [FromQuery] DateTime? referenceDate = null) { var result = await budgetApplication.GetUncoveredCategoriesAsync(category, referenceDate); return result.Ok(); } /// /// 获取归档总结 /// [HttpGet] public async Task> GetArchiveSummaryAsync([FromQuery] DateTime referenceDate) { var result = await budgetApplication.GetArchiveSummaryAsync(referenceDate); return result.Ok(); } /// /// 获取指定周期的存款预算信息 /// [HttpGet] public async Task> GetSavingsBudgetAsync(int year, int month, BudgetPeriodType type) { var result = await budgetApplication.GetSavingsBudgetAsync(year, month, type); return result.Ok(); } /// /// 删除预算 /// [HttpDelete("{id}")] public async Task DeleteByIdAsync(long id) { await budgetApplication.DeleteByIdAsync(id); return BaseResponse.Done(); } /// /// 创建预算 /// [HttpPost] public async Task> CreateAsync([FromBody] CreateBudgetRequest request) { var budgetId = await budgetApplication.CreateAsync(request); return budgetId.Ok(); } /// /// 更新预算 /// [HttpPost] public async Task UpdateAsync([FromBody] UpdateBudgetRequest request) { await budgetApplication.UpdateAsync(request); return BaseResponse.Done(); } }