Commit a52c778d a52c778d621c3cf661d7369ccb509ad417a20546 by 沈秋雨

fix(review): 修正同词不同曲合并逻辑和状态显示

1 parent c8ead117
...@@ -1359,11 +1359,15 @@ ...@@ -1359,11 +1359,15 @@
1359 <span style="flex:1"> 1359 <span style="flex:1">
1360 <b>${esc(query.review_status === 'approved_import' && query.staging_status === 'imported' 1360 <b>${esc(query.review_status === 'approved_import' && query.staging_status === 'imported'
1361 ? '确认不重复(已入库)' 1361 ? '确认不重复(已入库)'
1362 : query.merge_diff_type 1362 : query.merge_diff_type === 'diff_lyric_same_melody' && query.staging_status === 'imported'
1363 ? `${_DB_REVIEW_LABELS[query.merge_diff_type] || query.merge_diff_type}` 1363 ? '同曲不同词(已入库)'
1364 : query.review_status === 'rejected_duplicate' && query.staging_status === 'skipped' 1364 : query.merge_diff_type === 'same_lyric_diff_melody' && query.staging_status === 'skipped'
1365 ? '确认重复(作者已合并)' 1365 ? '同词不同曲(已合并)'
1366 : (_DB_REVIEW_LABELS[query.review_status] || query.review_status))}</b> 1366 : query.merge_diff_type
1367 ? `${_DB_REVIEW_LABELS[query.merge_diff_type] || query.merge_diff_type}`
1368 : query.review_status === 'rejected_duplicate' && query.staging_status === 'skipped'
1369 ? '确认重复(作者已合并)'
1370 : (_DB_REVIEW_LABELS[query.review_status] || query.review_status))}</b>
1367 ${query.reviewed_by ? ` · 审核人 ${esc(query.reviewed_by)}` : ''} 1371 ${query.reviewed_by ? ` · 审核人 ${esc(query.reviewed_by)}` : ''}
1368 ${query.reviewed_at ? ` · ${esc(query.reviewed_at)}` : ''} 1372 ${query.reviewed_at ? ` · ${esc(query.reviewed_at)}` : ''}
1369 ${query.review_note ? ` · 备注: ${esc(query.review_note)}` : ''} 1373 ${query.review_note ? ` · 备注: ${esc(query.review_note)}` : ''}
......
...@@ -894,7 +894,7 @@ def _import_approved_staging(source_ids: list[str] | None = None) -> dict[str, o ...@@ -894,7 +894,7 @@ def _import_approved_staging(source_ids: list[str] | None = None) -> dict[str, o
894 str(exc), 894 str(exc),
895 ) from exc 895 ) from exc
896 inserted_count = cursor.rowcount 896 inserted_count = cursor.rowcount
897 source_placeholders = ",".join(["%s"] * len(approved_source_ids)) 897 source_placeholders = ",".join(["%s"] * len(all_import_source_ids))
898 cursor.execute( 898 cursor.execute(
899 f""" 899 f"""
900 SELECT source_song_id, id AS target_id 900 SELECT source_song_id, id AS target_id
...@@ -933,8 +933,12 @@ def _import_approved_staging(source_ids: list[str] | None = None) -> dict[str, o ...@@ -933,8 +933,12 @@ def _import_approved_staging(source_ids: list[str] | None = None) -> dict[str, o
933 target = cursor.fetchone() 933 target = cursor.fetchone()
934 if not target: 934 if not target:
935 raise RuntimeError(f"重复目标已失效: target_id={target_id}") 935 raise RuntimeError(f"重复目标已失效: target_id={target_id}")
936 merged_lyricist = _merge_author_field(target.get("lyricist"), duplicate_row.get("lyricist")) 936 merge_diff = duplicate_row.get("merge_diff_type") or ""
937 merged_composer = _merge_author_field(target.get("composer"), duplicate_row.get("composer")) 937 # 同词不同曲:仅合并词作者,不合并曲作者(旋律不同)
938 merge_lyricist = True
939 merge_composer = merge_diff != "same_lyric_diff_melody"
940 merged_lyricist = _merge_author_field(target.get("lyricist"), duplicate_row.get("lyricist")) if merge_lyricist else ""
941 merged_composer = _merge_author_field(target.get("composer"), duplicate_row.get("composer")) if merge_composer else ""
938 changed = False 942 changed = False
939 if merged_lyricist: 943 if merged_lyricist:
940 cursor.execute( 944 cursor.execute(
...@@ -1502,6 +1506,14 @@ class Handler(BaseHTTPRequestHandler): ...@@ -1502,6 +1506,14 @@ class Handler(BaseHTTPRequestHandler):
1502 finalized.extend( 1506 finalized.extend(
1503 { 1507 {
1504 "source_id": source_id, 1508 "source_id": source_id,
1509 "review_decision": "import",
1510 "review_note": "同曲不同词,已入库",
1511 }
1512 for source_id in result.get("diff_lyric_source_ids", [])
1513 )
1514 finalized.extend(
1515 {
1516 "source_id": source_id,
1505 "review_decision": "duplicate_merged", 1517 "review_decision": "duplicate_merged",
1506 "review_note": "确认重复,词/曲作者已增量合并到已有记录", 1518 "review_note": "确认重复,词/曲作者已增量合并到已有记录",
1507 } 1519 }
......