diff --git a/internal/app/app_xiaodian_report_export.go b/internal/app/app_xiaodian_report_export.go index 048cb79..baebb24 100644 --- a/internal/app/app_xiaodian_report_export.go +++ b/internal/app/app_xiaodian_report_export.go @@ -289,7 +289,7 @@ func xiaodianSummaryRow(sequence int, report types.XiaodianRunReport, item xiaod exportText(account.Status), exportText(account.FailureReason), exportText(selectedRecordVerification(item)), - exportText(orderStatusText(recordStatus(matched))), + exportText(selectedRecordStatus(item, matched)), account.Attempts, exportText(remarks), exportText(formatReportTime(report.StartedAt)), @@ -403,11 +403,14 @@ func selectedRecordVerification(item xiaodianReportExportData) string { return "未发现订单" } -func recordStatus(record *types.XiaodianExchangeRecord) string { - if record == nil { - return "" +func selectedRecordStatus(item xiaodianReportExportData, record *types.XiaodianExchangeRecord) string { + if item.RecordError != "" { + return "查询失败" } - return record.Status + if record == nil { + return "无订单" + } + return orderStatusText(record.Status) } func orderStatusText(status string) string { @@ -425,7 +428,7 @@ func orderStatusText(status string) string { case "5": return "已退款" case "": - return "-" + return "状态未知" default: return "状态 " + status } diff --git a/internal/app/app_xiaodian_report_export_test.go b/internal/app/app_xiaodian_report_export_test.go index 6044bec..d940533 100644 --- a/internal/app/app_xiaodian_report_export_test.go +++ b/internal/app/app_xiaodian_report_export_test.go @@ -83,3 +83,15 @@ func TestWriteXiaodianReportCSVZip(t *testing.T) { t.Fatalf("summary CSV content invalid: %q, err=%v", content, err) } } + +func TestSelectedRecordStatus(t *testing.T) { + if got := selectedRecordStatus(xiaodianReportExportData{}, nil); got != "无订单" { + t.Fatalf("selectedRecordStatus(no record) = %q", got) + } + if got := selectedRecordStatus(xiaodianReportExportData{RecordError: "network error"}, nil); got != "查询失败" { + t.Fatalf("selectedRecordStatus(query error) = %q", got) + } + if got := orderStatusText(""); got != "状态未知" { + t.Fatalf("orderStatusText(empty) = %q", got) + } +}