fix: 修复交易时间解析逻辑

- TransactionDate 和 TransactionTime 正确组合
- 移除 else if 改为独立 if,支持日期+时间
- CreateTransactionAsync 返回实际交易时间而非当前时间
This commit is contained in:
OpenClaw Agent 2026-03-24 08:53:47 +00:00
parent 7bf687323d
commit 0579e2f47a

View File

@ -657,15 +657,15 @@ public class PortfolioService : IPortfolioService
{ {
if (DateTime.TryParse(request.TransactionDate, out var parsedDate)) if (DateTime.TryParse(request.TransactionDate, out var parsedDate))
{ {
// 如果只传了日期,时间部分默认用当前时间 transactionTime = parsedDate.Date;
transactionTime = parsedDate.Date + DateTime.Now.TimeOfDay;
} }
} }
else if (!string.IsNullOrEmpty(request.TransactionTime)) // 组合时间部分
if (!string.IsNullOrEmpty(request.TransactionTime))
{ {
if (DateTime.TryParse(request.TransactionTime, out var parsedTime)) if (TimeSpan.TryParse(request.TransactionTime, out var parsedTime))
{ {
transactionTime = parsedTime; transactionTime = transactionTime.Date + parsedTime;
} }
} }
@ -821,12 +821,16 @@ public class PortfolioService : IPortfolioService
request.PortfolioId = portfolioId; request.PortfolioId = portfolioId;
var response = await CreateTransaction(request, userId); var response = await CreateTransaction(request, userId);
// 使用实际交易时间
var transactionDate = request.TransactionDate ?? DateTime.Now.ToString("yyyy-MM-dd");
var transactionTime = request.TransactionTime ?? DateTime.Now.ToString("HH:mm");
return new TransactionItem return new TransactionItem
{ {
Id = response.Id, Id = response.Id,
PortfolioId = portfolioId, PortfolioId = portfolioId,
Date = DateTime.Now.ToString("yyyy-MM-dd"), Date = transactionDate,
Time = DateTime.Now.ToString("HH:mm:ss"), Time = transactionTime,
Type = request.Type, Type = request.Type,
StockCode = request.StockCode, StockCode = request.StockCode,
Amount = response.TotalAmount, Amount = response.TotalAmount,