feat(t241): improve freight admin views

This commit is contained in:
QiuSW
2026-07-29 15:34:51 +08:00
parent 8b0752dc53
commit 7e3aaac982
14 changed files with 451 additions and 105 deletions
@@ -451,6 +451,9 @@ func TestAdminFreightAPIImportsAllItemsWithoutPII(t *testing.T) {
)
if list.Code != http.StatusOK ||
!strings.Contains(list.Body.String(), `"item_count":2`) ||
!strings.Contains(list.Body.String(), `"preview_title":"商品一"`) ||
!strings.Contains(list.Body.String(), `"preview_image_status":"READY"`) ||
!strings.Contains(list.Body.String(), `"/api/v1/freight-items/`) ||
responseContainsKey(mustDecodeAny(t, list), "receiver") ||
responseContainsKey(mustDecodeAny(t, list), "receiverTel") ||
responseContainsKey(mustDecodeAny(t, list), "receiverAddr") {
@@ -281,20 +281,29 @@ func nullableResponseString(value string) any {
}
func freightOrderResponse(order domain.FreightOrder) gin.H {
var previewImageURL any
if order.PreviewImageStatus == domain.FreightItemImageReady {
previewImageURL = "/api/v1/freight-items/" +
order.PreviewItemID + "/image"
}
return gin.H{
"id": order.ID,
"source_system": order.SourceSystem,
"external_stock_id": order.ExternalStockID,
"source_code": order.SourceCode,
"platform_order_no": order.PlatformOrderNo,
"shop_name": order.ShopName,
"source_created_at": formatOptionalTime(order.SourceCreatedAt),
"order_status": order.OrderStatus,
"purchase_status": order.PurchaseStatus,
"is_canceled": order.IsCanceled,
"revision": order.Revision,
"canonical_sha256": order.CanonicalSHA256,
"item_count": order.ItemCount,
"updated_at": formatTime(order.UpdatedAt),
"id": order.ID,
"source_system": order.SourceSystem,
"external_stock_id": order.ExternalStockID,
"source_code": order.SourceCode,
"platform_order_no": order.PlatformOrderNo,
"shop_name": order.ShopName,
"source_created_at": formatOptionalTime(order.SourceCreatedAt),
"order_status": order.OrderStatus,
"purchase_status": order.PurchaseStatus,
"is_canceled": order.IsCanceled,
"revision": order.Revision,
"canonical_sha256": order.CanonicalSHA256,
"item_count": order.ItemCount,
"preview_item_id": nullableResponseString(order.PreviewItemID),
"preview_title": nullableResponseString(order.PreviewTitle),
"preview_image_status": order.PreviewImageStatus,
"preview_image_url": previewImageURL,
"updated_at": formatTime(order.UpdatedAt),
}
}