提供具備 orders.view/orders.edit 的管理員查詢訂單、讀取商品與歷程,以及執行出貨和完成命令。Admin 不得直接改寫 ECPay 付款或退款結果。
Admin Token → RBAC → ID 分頁 → 載入表頭摘要
開啟詳情 → 商品快照 + 狀態歷程
履約命令 → 悲觀鎖 → 驗證付款/退款/狀態 → 更新訂單 + history
線上付款必須是 paid 且 refundStatus=none 才能出貨。COD 可在 unpaid 時出貨,完成時於同一交易標記 paid 與 paidAt。重複命令採冪等回放,不重複新增歷程。
列表不直接 JOIN 商品與歷程,避免一對多資料放大分頁。完整地址、商品和歷程只在詳情回傳。
AdminOrderController 使用 firebaseBearer OpenAPI Security Requirement,讓 Swagger Authorize 保存的 Firebase ID Token 自動加入 Authorization: Bearer Header。這項宣告只描述 API 認證需求,實際安全邊界仍由 Firebase Filter 與 orders.view/orders.edit RBAC 負責。
AdminOrderServiceTest 通過。AdminOpenApiSecurityTest 通過,確認受保護 Admin Controller 宣告 firebaseBearer。AdminFulfillmentPostgreSqlIntegrationTest 已連線 PostgreSQL 驗收通過。