结构调整
Some checks failed
Docker Build & Deploy / Build Docker Image (push) Failing after 14s
Docker Build & Deploy / Deploy to Production (push) Has been skipped

This commit is contained in:
2026-01-01 12:32:08 +08:00
parent c1aa4df4f3
commit 8dfe7f1688
15 changed files with 152 additions and 150 deletions

View File

@@ -31,10 +31,10 @@ public class TransactionPeriodicService(
try
{
logger.LogInformation("开始执行周期性账单检查...");
var pendingBills = await periodicRepository.GetPendingPeriodicBillsAsync();
var billsList = pendingBills.ToList();
logger.LogInformation("找到 {Count} 条需要执行的周期性账单", billsList.Count);
foreach (var bill in billsList)
@@ -61,7 +61,7 @@ public class TransactionPeriodicService(
};
var success = await transactionRepository.AddAsync(transaction);
if (success)
{
logger.LogInformation("成功创建周期性账单交易记录: {Reason}, 金额: {Amount}",
@@ -80,7 +80,7 @@ public class TransactionPeriodicService(
var now = DateTime.Now;
var nextTime = CalculateNextExecuteTime(bill, now);
await periodicRepository.UpdateExecuteTimeAsync(bill.Id, now, nextTime);
logger.LogInformation("周期性账单 {Id} 下次执行时间: {NextTime}",
bill.Id, nextTime?.ToString("yyyy-MM-dd HH:mm:ss") ?? "无");
}
@@ -109,7 +109,7 @@ public class TransactionPeriodicService(
private bool ShouldExecuteToday(TransactionPeriodic bill)
{
var today = DateTime.Today;
// 如果从未执行过,需要执行
if (bill.LastExecuteTime == null)
{
@@ -224,7 +224,7 @@ public class TransactionPeriodicService(
return null;
var currentDayOfWeek = (int)baseTime.DayOfWeek;
// 找下一个执行日
var nextDay = executeDays.FirstOrDefault(d => d > currentDayOfWeek);
if (nextDay > 0)
@@ -232,7 +232,7 @@ public class TransactionPeriodicService(
var daysToAdd = nextDay - currentDayOfWeek;
return baseTime.Date.AddDays(daysToAdd);
}
// 下周的第一个执行日
var firstDay = executeDays.First();
var daysUntilNextWeek = 7 - currentDayOfWeek + firstDay;
@@ -281,7 +281,7 @@ public class TransactionPeriodicService(
var currentQuarterStartMonth = ((baseTime.Month - 1) / 3) * 3 + 1;
var nextQuarterStartMonth = currentQuarterStartMonth + 3;
var nextQuarterYear = baseTime.Year;
if (nextQuarterStartMonth > 12)
{
nextQuarterStartMonth = 1;
@@ -306,7 +306,7 @@ public class TransactionPeriodicService(
// 处理闰年情况
var daysInYear = DateTime.IsLeapYear(nextYear) ? 366 : 365;
var actualDay = Math.Min(dayOfYear, daysInYear);
return new DateTime(nextYear, 1, 1).AddDays(actualDay - 1);
}
}