feat(t219): show pending-payment reconciliation
This commit is contained in:
@@ -280,9 +280,91 @@ func taskFromDetail(detail domain.TaskDetail) Task {
|
||||
orderAuthorizationFrom(authorization),
|
||||
)
|
||||
}
|
||||
for _, submission := range detail.OrderSubmissions {
|
||||
task.OrderSubmissions = append(
|
||||
task.OrderSubmissions,
|
||||
orderSubmissionFrom(submission),
|
||||
)
|
||||
}
|
||||
return task
|
||||
}
|
||||
|
||||
func orderSubmissionFrom(
|
||||
submission domain.OrderSubmission,
|
||||
) OrderSubmission {
|
||||
unitPrice := submission.ExpectedUnitPriceCents
|
||||
totalPrice := submission.ExpectedTotalPriceCents
|
||||
result := OrderSubmission{
|
||||
ID: submission.ID,
|
||||
Status: string(submission.Status),
|
||||
StatusLabel: orderSubmissionStatusLabel(submission.Status),
|
||||
ExpectedTitle: submission.ExpectedTitle,
|
||||
ExpectedSKU: submission.ExpectedSKU,
|
||||
ExpectedQuantity: submission.ExpectedQuantity,
|
||||
ExpectedUnitPrice: *domain.FormatOptionalCNY(&unitPrice),
|
||||
ExpectedTotalPrice: *domain.FormatOptionalCNY(&totalPrice),
|
||||
FencedAt: submission.FencedAt,
|
||||
}
|
||||
if submission.PlatformOrderNo != nil {
|
||||
result.PlatformOrderNo = *submission.PlatformOrderNo
|
||||
}
|
||||
if submission.PlatformOrderedAt != nil {
|
||||
result.PlatformOrderedAt = *submission.PlatformOrderedAt
|
||||
}
|
||||
if submission.PlatformOrderStatus != nil {
|
||||
result.PlatformOrderStatus = *submission.PlatformOrderStatus
|
||||
}
|
||||
if submission.ReconciliationEvidenceAssetID != nil {
|
||||
result.EvidenceContentURL = "/api/v1/tasks/" +
|
||||
submission.TaskID + "/evidence/" +
|
||||
*submission.ReconciliationEvidenceAssetID + "/content"
|
||||
}
|
||||
if submission.ManualReasonCode != nil {
|
||||
result.ManualReasonLabel = orderSubmissionManualReasonLabel(
|
||||
*submission.ManualReasonCode,
|
||||
)
|
||||
}
|
||||
if submission.ReconciledAt != nil {
|
||||
result.ReconciledAt = *submission.ReconciledAt
|
||||
}
|
||||
if submission.ManualReviewAt != nil {
|
||||
result.ManualReviewAt = *submission.ManualReviewAt
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func orderSubmissionStatusLabel(status domain.OrderSubmissionStatus) string {
|
||||
switch status {
|
||||
case domain.OrderSubmissionFenced:
|
||||
return "正在对账"
|
||||
case domain.OrderSubmissionManualReview:
|
||||
return "需要人工对账"
|
||||
case domain.OrderSubmissionReconciled:
|
||||
return "待人工确认付款"
|
||||
default:
|
||||
return "未知状态"
|
||||
}
|
||||
}
|
||||
|
||||
func orderSubmissionManualReasonLabel(code string) string {
|
||||
switch code {
|
||||
case "ORDER_NOT_FOUND":
|
||||
return "未找到符合条件的新订单"
|
||||
case "ORDER_AMBIGUOUS":
|
||||
return "找到多个可能订单"
|
||||
case "ORDER_FIELDS_INCOMPLETE":
|
||||
return "订单字段不完整"
|
||||
case "ORDER_PAGE_UNKNOWN":
|
||||
return "订单页面无法确认"
|
||||
case "RISK_OR_PAYMENT_BOUNDARY":
|
||||
return "遇到风控或付款边界"
|
||||
case "EVIDENCE_UNAVAILABLE":
|
||||
return "无法取得对账证据"
|
||||
default:
|
||||
return "订单需要人工核对"
|
||||
}
|
||||
}
|
||||
|
||||
func orderAuthorizationFrom(
|
||||
authorization domain.OrderAuthorization,
|
||||
) OrderAuthorization {
|
||||
|
||||
Reference in New Issue
Block a user