fix(app): RemoteJournalRepository 创建日记 date 格式修复 — ISO 8601 → NaiveDate
Some checks failed
Main Merge / backend (push) Has been cancelled
Main Merge / frontend (push) Has been cancelled

根因: JournalEntry.toJson() 发送 '2026-06-04T12:00:00.123456',
后端 CreateJournalReq.date 是 chrono::NaiveDate,只接受 '2026-06-04'。
反序列化失败导致创建日记被拒绝,前端静默吞掉错误。

修复: createJournal 发送前将 date 截取为 YYYY-MM-DD 格式。
This commit is contained in:
iven
2026-06-04 10:47:14 +08:00
parent e635557e67
commit c441aa4e34
2 changed files with 5 additions and 4 deletions

View File

@@ -73,7 +73,10 @@ class RemoteJournalRepository implements JournalRepository {
@override
Future<JournalEntry> createJournal(JournalEntry entry) async {
final response = await _api.post('/diary/journals', data: entry.toJson());
// 后端 CreateJournalReq.date 是 NaiveDate只有日期需转换格式
final json = entry.toJson();
json['date'] = entry.date.toIso8601String().substring(0, 10);
final response = await _api.post('/diary/journals', data: json);
final body = response.data as Map<String, dynamic>;
return JournalEntry.fromJson(body['data'] as Map<String, dynamic>);
}

View File

@@ -153,9 +153,7 @@ start_app() {
log_info "编译并启动 Flutter Web..."
cd /g/nj/app
# --web-renderer html: 使用浏览器原生渲染,避免 CanvasKit 从 Google Fonts CDN 加载中文字体
# 面向中国国内市场,不可依赖外部 CDN
D:/flutter/bin/flutter.bat run -d chrome --web-port=$APP_PORT --web-renderer html &
D:/flutter/bin/flutter.bat run -d chrome --web-port=$APP_PORT &
log_info "等待学生端就绪..."
for i in $(seq 1 30); do