1
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 22s
Docker Build & Deploy / Deploy to Production (push) Successful in 6s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 22s
Docker Build & Deploy / Deploy to Production (push) Successful in 6s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
This commit is contained in:
@@ -252,6 +252,48 @@ public class TransactionRecordController(
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取累积余额统计数据(用于余额卡片图表)
|
||||
/// </summary>
|
||||
[HttpGet]
|
||||
public async Task<BaseResponse<List<BalanceStatisticsDto>>> GetBalanceStatisticsAsync(
|
||||
[FromQuery] int year,
|
||||
[FromQuery] int month
|
||||
)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 获取存款分类
|
||||
var savingClassify = await configService.GetConfigByKeyAsync<string>("SavingsCategories");
|
||||
|
||||
// 获取每日统计数据
|
||||
var statistics = await transactionRepository.GetDailyStatisticsAsync(year, month, savingClassify);
|
||||
|
||||
// 按日期排序并计算累积余额
|
||||
var sortedStats = statistics.OrderBy(s => s.Key).ToList();
|
||||
var result = new List<BalanceStatisticsDto>();
|
||||
decimal cumulativeBalance = 0;
|
||||
|
||||
foreach (var item in sortedStats)
|
||||
{
|
||||
decimal dailyBalance = item.Value.income - item.Value.expense;
|
||||
cumulativeBalance += dailyBalance;
|
||||
|
||||
result.Add(new BalanceStatisticsDto(
|
||||
item.Key,
|
||||
cumulativeBalance
|
||||
));
|
||||
}
|
||||
|
||||
return result.Ok();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.LogError(ex, "获取累积余额统计失败,年份: {Year}, 月份: {Month}", year, month);
|
||||
return $"获取累积余额统计失败: {ex.Message}".Fail<List<BalanceStatisticsDto>>();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取指定月份每天的消费统计
|
||||
/// </summary>
|
||||
@@ -311,7 +353,7 @@ public class TransactionRecordController(
|
||||
s.Value.count,
|
||||
s.Value.expense,
|
||||
s.Value.income,
|
||||
s.Value.income - s.Value.expense
|
||||
s.Value.saving
|
||||
)).ToList();
|
||||
|
||||
return result.Ok();
|
||||
@@ -778,6 +820,14 @@ public record DailyStatisticsDto(
|
||||
decimal Balance
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// 累积余额统计DTO
|
||||
/// </summary>
|
||||
public record BalanceStatisticsDto(
|
||||
string Date,
|
||||
decimal CumulativeBalance
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// 智能分类请求DTO
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user