fix
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 22s
Docker Build & Deploy / Deploy to Production (push) Successful in 5s
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 5s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
This commit is contained in:
@@ -32,7 +32,8 @@ public class BudgetService(
|
||||
IOpenAiService openAiService,
|
||||
IMessageService messageService,
|
||||
ILogger<BudgetService> logger,
|
||||
IBudgetSavingsService budgetSavingsService
|
||||
IBudgetSavingsService budgetSavingsService,
|
||||
IDateTimeProvider dateTimeProvider
|
||||
) : IBudgetService
|
||||
{
|
||||
public async Task<List<BudgetResult>> GetListAsync(DateTime referenceDate)
|
||||
@@ -40,8 +41,8 @@ public class BudgetService(
|
||||
var year = referenceDate.Year;
|
||||
var month = referenceDate.Month;
|
||||
|
||||
var isArchive = year < DateTime.Now.Year
|
||||
|| (year == DateTime.Now.Year && month < DateTime.Now.Month);
|
||||
var isArchive = year < dateTimeProvider.Now.Year
|
||||
|| (year == dateTimeProvider.Now.Year && month < dateTimeProvider.Now.Month);
|
||||
|
||||
if (isArchive)
|
||||
{
|
||||
@@ -49,7 +50,7 @@ public class BudgetService(
|
||||
|
||||
if (archive != null)
|
||||
{
|
||||
var (start, end) = GetPeriodRange(DateTime.Now, BudgetPeriodType.Month, referenceDate);
|
||||
var (start, end) = GetPeriodRange(dateTimeProvider.Now, BudgetPeriodType.Month, referenceDate);
|
||||
return [.. archive.Content.Select(c => new BudgetResult
|
||||
{
|
||||
Id = c.Id,
|
||||
@@ -123,7 +124,7 @@ public class BudgetService(
|
||||
|
||||
public async Task<List<UncoveredCategoryDetail>> GetUncoveredCategoriesAsync(BudgetCategory category, DateTime? referenceDate = null)
|
||||
{
|
||||
var date = referenceDate ?? DateTime.Now;
|
||||
var date = referenceDate ?? dateTimeProvider.Now;
|
||||
var transactionType = category switch
|
||||
{
|
||||
BudgetCategory.Expense => TransactionType.Expense,
|
||||
@@ -282,7 +283,7 @@ public class BudgetService(
|
||||
groupByMonth);
|
||||
|
||||
decimal accumulated = 0;
|
||||
var now = DateTime.Now;
|
||||
var now = dateTimeProvider.Now;
|
||||
|
||||
if (statType == BudgetPeriodType.Month)
|
||||
{
|
||||
@@ -360,7 +361,7 @@ public class BudgetService(
|
||||
if (archive != null)
|
||||
{
|
||||
archive.Content = content;
|
||||
archive.ArchiveDate = DateTime.Now;
|
||||
archive.ArchiveDate = dateTimeProvider.Now;
|
||||
archive.ExpenseSurplus = expenseSurplus;
|
||||
archive.IncomeSurplus = incomeSurplus;
|
||||
if (!await budgetArchiveRepository.UpdateAsync(archive))
|
||||
@@ -375,7 +376,7 @@ public class BudgetService(
|
||||
Year = year,
|
||||
Month = month,
|
||||
Content = content,
|
||||
ArchiveDate = DateTime.Now,
|
||||
ArchiveDate = dateTimeProvider.Now,
|
||||
ExpenseSurplus = expenseSurplus,
|
||||
IncomeSurplus = incomeSurplus
|
||||
};
|
||||
@@ -503,7 +504,7 @@ public class BudgetService(
|
||||
11. 不要使用 div 包裹大段内容
|
||||
|
||||
【系统信息】
|
||||
当前时间:{DateTime.Now:yyyy-MM-dd HH:mm:ss}
|
||||
当前时间:{dateTimeProvider.Now:yyyy-MM-dd HH:mm:ss}
|
||||
预算归档周期:{year}年{month}月
|
||||
|
||||
直接输出纯净 HTML 内容,不要带有 Markdown 代码块包裹。
|
||||
@@ -532,7 +533,7 @@ public class BudgetService(
|
||||
|
||||
private async Task<decimal> CalculateCurrentAmountAsync(BudgetRecord budget, DateTime? now = null)
|
||||
{
|
||||
var referenceDate = now ?? DateTime.Now;
|
||||
var referenceDate = now ?? dateTimeProvider.Now;
|
||||
var (startDate, endDate) = GetPeriodRange(budget.StartDate, budget.Type, referenceDate);
|
||||
|
||||
var actualAmount = await budgetRepository.GetCurrentAmountAsync(budget, startDate, endDate);
|
||||
@@ -541,7 +542,7 @@ public class BudgetService(
|
||||
if (actualAmount == 0
|
||||
&& budget.IsMandatoryExpense
|
||||
&& referenceDate.Year == startDate.Year
|
||||
&& referenceDate.Month == startDate.Month)
|
||||
&& (budget.Type == BudgetPeriodType.Year || referenceDate.Month == startDate.Month))
|
||||
{
|
||||
if (budget.Type == BudgetPeriodType.Month)
|
||||
{
|
||||
@@ -616,11 +617,11 @@ public record BudgetResult
|
||||
|
||||
public static BudgetResult FromEntity(
|
||||
BudgetRecord entity,
|
||||
decimal currentAmount = 0,
|
||||
DateTime? referenceDate = null,
|
||||
decimal currentAmount,
|
||||
DateTime referenceDate,
|
||||
string description = "")
|
||||
{
|
||||
var date = referenceDate ?? DateTime.Now;
|
||||
var date = referenceDate;
|
||||
var (start, end) = BudgetService.GetPeriodRange(entity.StartDate, entity.Type, date);
|
||||
|
||||
return new BudgetResult
|
||||
|
||||
Reference in New Issue
Block a user