SBE Scenario 1: 開始設計
場景描述
設計師在設計師工作台中開始處理一筆已確認的訂單,訂單狀態變更為「設計中」。
Given(前置條件)
系統狀態
- 當前日期: 2025-12-01
- 當前租戶:
ABC(ABC 花店) - 已登入用戶: 王小花 (ROLE_FLORIST)
測試資料
已確認訂單
{
"orderId": "ABC-20251201-0001",
"orderNumber": "ABC-20251201-0001",
"tenantId": "ABC",
"status": "confirmed",
"customer": {
"name": "李大華",
"phone": "0912-345-678"
},
"items": [
{
"productId": "prod-001",
"productName": "玫瑰花束(12 朵)",
"quantity": 2,
"price": 1200
}
],
"specialRequest": "請多加一些滿天星",
"deliveryDate": "2025-12-02",
"totalAmount": 2520,
"createdAt": "2025-12-01T09:00:00Z"
}
When(執行操作)
步驟 1: 進入設計師工作台
- 設計師在 Application Launcher 中點擊「Design Workbench」
- 系統導航至
/design - 訂單顯示在「等待開始設計」分組中
步驟 2: 點擊開始設計
- 設計師在訂單卡片上點擊「開始設計」按鈕
- 系統顯示確認對話框
步驟 3: 確認操作
- 對話框顯示:「確定要開始設計嗎?」
- 選項:[是] [否]
- 設計師點擊「是」
Then(預期結果)
API 請求
端點: PATCH /api/v1/orders/ABC-20251201-0001/status
Request Body
{
"newStatus": "in_production"
}
Response Body (200 OK)
{
"orderId": "ABC-20251201-0001",
"oldStatus": "confirmed",
"newStatus": "in_production",
"updatedAt": "2025-12-01T14:00:00Z",
"updatedBy": {
"userId": "user-002",
"userName": "王小花",
"role": "ROLE_FLORIST"
},
"message": "訂單狀態已更新為「設計中」"
}
UI 反饋
1. 成功訊息
- Toast 通知: 「狀態更新成功」
- 訊息類型: 成功(綠色)
2. 列表更新
- 訂單從「等待開始設計」分組移動到「設計中」分組
- 操作按鈕從「開始設計」變更為「完成設計」
UI 顯示變化
變更前
┌─ 等待開始設計 (Waiting to Start Design) ────────┐
│ 訂單 #ABC-20251201-0001 [開始設計 ▶] │
└─────────────────────────────────────────────────┘
┌─ 設計中 (Design in Progress) ───────────────────┐
│ (空) │
└─────────────────────────────────────────────────┘
變更後
┌─ 等待開始設計 (Waiting to Start Design) ────────┐
│ (空) │
└─────────────────────────────────────────────────┘
┌─ 設計中 (Design in Progress) ───────────────────┐
│ 訂單 #ABC-20251201-0001 [完成設計 📦] │
└─────────────────────────────────────────────────┘
資料庫變更
1. 更新 orders 表
UPDATE orders
SET status = 'in_production',
updated_at = '2025-12-01T14:00:00Z'
WHERE order_id = 'ABC-20251201-0001';
2. 新增狀態歷史記錄
{
"id": "history-002",
"orderId": "ABC-20251201-0001",
"tenantId": "ABC",
"oldStatus": "confirmed",
"newStatus": "in_production",
"timestamp": "2025-12-01T14:00:00Z",
"operatorId": "user-002",
"operatorName": "王小花",
"operatorRole": "ROLE_FLORIST",
"description": "開始設計"
}
驗證檢查清單
狀態流轉
- 訂單狀態從
confirmed變更為in_production - 不需要上傳照片
- 狀態歷史記錄正確生成
UI 更新
- 訂單移動到「設計中」分組
- 操作按鈕變更為「完成設計」
- 成功通知顯示
最後更新: 2025-12-19