|
# campaign → rewards 全鏈路真機端到端驗證(CR-046/CR-047/CR-049)
|
|
# 產生時間:2026-10-17 10:51:15 CST
|
|
# 腳本:ops/local/e2e/campaign_chain_e2e.sh
|
|
# 環境:Oracle 23ai(cc-oracle)/Kafka 4.3.1/campaign:8099、posting:8087、rewards:8091
|
|
# 判定原則:一律讀權威資料表,不讀日誌;退出碼 0=全通過
|
|
|
|
|
|
[1m── P0 前置:服務健康 ──[0m
|
|
[32m✓[0m port 8099 /actuator/health(= 200)
|
|
[32m✓[0m port 8087 /actuator/health(= 200)
|
|
[32m✓[0m port 8091 /actuator/health(= 200)
|
|
RUN_ID = E510171050
|
|
|
|
[1m── P1 退役今日生效之既有活動(避免疊加污染;本輪活動除外) ──[0m
|
|
[32m✓[0m 退役後「今日生效」活動數(= 0)
|
|
|
|
[1m── P2 載體無關(AC 11):同戶、同額、兩個不同載體 → 回饋逐分一致 ──[0m
|
|
[32m✓[0m 建立 E2E-AC11-E510171050(= E2E-AC11-E510171050)
|
|
[32m✓[0m 核准 E2E-AC11-E510171050(ACTIVE)(= ACTIVE)
|
|
[32m✓[0m 入帳#1 已產生 postingId(= 36 ≥ 32)
|
|
[32m✓[0m 入帳#2 已產生 postingId(= 36 ≥ 32)
|
|
[32m✓[0m 兩筆指令皆已派發(SENT=2)
|
|
[32m✓[0m 指令數(每載體各一筆)(= 2)
|
|
[32m✓[0m 指令涵蓋之載體數(= 2)
|
|
[32m✓[0m rewards 已入點 246(123+123)
|
|
[32m✓[0m 載體#1 之回饋點數(= 123)
|
|
[32m✓[0m 載體#2 之回饋點數(= 123)
|
|
[32m✓[0m 兩載體逐分一致(= 123)
|
|
|
|
[1m── P3 比率 + 上限(CR-047):比率 5%/PER_HOUSEHOLD 1,000 分 → 第二筆精確截斷 ──[0m
|
|
[32m✓[0m 建立 E2E-AC12-E510171050(= E2E-AC12-E510171050)
|
|
[32m✓[0m 核准 E2E-AC12-E510171050(ACTIVE)(= ACTIVE)
|
|
[32m✓[0m 比率檔已就緒(= 1)
|
|
[32m✓[0m 入帳#1 已產生 postingId(= 36 ≥ 32)
|
|
[32m✓[0m 比率路徑入點 6 點(617 分 ÷ 100)
|
|
[32m✓[0m 上限用量已由 points.accrued 回填 600 分
|
|
[32m✓[0m 入帳#2 已產生 postingId(= 36 ≥ 32)
|
|
[32m✓[0m 上限截斷:指令仍僅 1 筆(600+617 > 1000)(= 1)
|
|
[32m✓[0m 上限截斷:rewards 點數仍為 6(未重複入點)(= 6)
|
|
|
|
[1m── P4 回沖(SCS-026 §7.14):CLAW_BACK → refund 指令 → rewards 反向扣回 ──[0m
|
|
[32m✓[0m 建立 E2E-AC13-E510171050(clawback=CLAW_BACK)(= E2E-AC13-E510171050)
|
|
[32m✓[0m 核准 E2E-AC13-E510171050(ACTIVE)(= ACTIVE)
|
|
[32m✓[0m 入帳已產生 postingId(= 36 ≥ 32)
|
|
[32m✓[0m 沖正前入點 123
|
|
[32m✓[0m 沖正交易已產生 postingId(= 36 ≥ 32)
|
|
[32m✓[0m 已下發 refund 指令(refund=true)(= 1)
|
|
[32m✓[0m rewards 反向扣回(ADJUST -123)(= -123)
|
|
[32m✓[0m 沖正後淨點數歸零(= 0)
|
|
|
|
[1m── 結果 ──[0m
|
|
[32m全部通過:32/32[0m
|
|
活動:E2E-AC11-E510171050 / E2E-AC12-E510171050 / E2E-AC13-E510171050
|