fix: 完全修復快取資料結構不一致問題和互動式單字查詢功能
- 修復快取API回應中sentenceMeaning大小寫不一致問題 - 完善ClickableTextV2組件對快取資料的屬性讀取相容性 - 新增前端快取狀態顯示(💾 快取結果 / 🤖 AI 分析) - 統一JSON序列化設定,使用camelCase命名策略 - 新增getWordProperty輔助函數,支援大小寫屬性名稱 - 修復單字彈窗中所有屬性的讀取邏輯 - 完善語法修正和詞彙分析的資料格式相容性 - 新增詳細的系統功能分析文檔 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
c0edf93c8a
commit
63b1018d97
|
|
@ -536,8 +536,15 @@ public class AIController : ControllerBase
|
|||
{
|
||||
_logger.LogInformation("Using cached analysis for text hash: {TextHash}", cachedAnalysis.InputTextHash);
|
||||
|
||||
// 解析快取的分析結果
|
||||
var cachedResult = System.Text.Json.JsonSerializer.Deserialize<object>(cachedAnalysis.AnalysisResult);
|
||||
// 解析快取的分析結果 - 使用一致的命名策略
|
||||
_logger.LogInformation("Cache raw JSON: {CacheJson}", cachedAnalysis.AnalysisResult);
|
||||
|
||||
var options = new JsonSerializerOptions
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
|
||||
};
|
||||
var cachedResult = System.Text.Json.JsonSerializer.Deserialize<object>(cachedAnalysis.AnalysisResult, options);
|
||||
_logger.LogInformation("Cache deserialized result: {CachedResult}", System.Text.Json.JsonSerializer.Serialize(cachedResult, options));
|
||||
|
||||
return Ok(new
|
||||
{
|
||||
|
|
|
|||
|
|
@ -75,8 +75,12 @@ public class AnalysisCacheService : IAnalysisCacheService
|
|||
|
||||
if (existing != null)
|
||||
{
|
||||
// 更新現有快取
|
||||
existing.AnalysisResult = JsonSerializer.Serialize(analysisResult);
|
||||
// 更新現有快取 - 使用一致的命名策略
|
||||
var options = new JsonSerializerOptions
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
|
||||
};
|
||||
existing.AnalysisResult = JsonSerializer.Serialize(analysisResult, options);
|
||||
existing.ExpiresAt = expiresAt;
|
||||
existing.AccessCount++;
|
||||
existing.LastAccessedAt = DateTime.UtcNow;
|
||||
|
|
@ -89,7 +93,10 @@ public class AnalysisCacheService : IAnalysisCacheService
|
|||
Id = Guid.NewGuid(),
|
||||
InputTextHash = textHash,
|
||||
InputText = inputText,
|
||||
AnalysisResult = JsonSerializer.Serialize(analysisResult),
|
||||
AnalysisResult = JsonSerializer.Serialize(analysisResult, new JsonSerializerOptions
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
|
||||
}),
|
||||
CreatedAt = DateTime.UtcNow,
|
||||
ExpiresAt = expiresAt,
|
||||
AccessCount = 1,
|
||||
|
|
|
|||
Loading…
Reference in New Issue