坤之道 · 高端相親
微信小程序 + PHP/MySQL 後台 — 為深圳 2 萬+ 高端私域用戶設計嘅相親平台
主功能:每日滑卡配對 · 顏值打分 · 廣場社交 · 匿名漂流瓶 · 紅娘私訊 · 商戶後台
📑 目錄
一、總體功能現況
KunWay 截至 2026-09-10 晚,核心後台已完成 100%;小程序客戶端 5 Tab 架構接通完成(首頁/匹配/發現/互動/我的)+ 後端 60 表 / 98 endpoint;發現 Tab 4 個玩法入面,2 個已上線(遇見滑卡 + 打分),Council Session #8 pool exhaustion 已 CLOSED;09-10 下午真機調試已收線(滑右喜歡/打分空卡/like 404 獨立檔);其餘 2 個(廣場/漂流瓶)已拍板定稿、待客戶拍板開工。Council Session 已落 #1–#15。
✅ 已落 Production(已交付客戶可用)
以下 15 個模塊已 production 部署、客戶端可即時使用。
「喜歡!」(扣花)
wx_app ★ 按鈕 active · POST /discover/like · 扣 1 🌺 · 觸發互喜 modal · 獨立檔(owner_user_id NULL)唔再誤判 404
發現·打分(Discover Score)
拉條評分 1–100 · trim mean + 時間加權(每日 -1%)· 100 天效期 · 紅娘/staff 過濾 · 買組 quota · Stage 3 strategy routing
Migration Backlog(15 條)
10 create + 5 alter · merchant / cert / dm / activity / payout 等 21 個新表
🟡 觀察期中(已落但等客戶拍板)
以下 4 個模塊嘅 spec 已完整定稿、文件已落齊;但要等客戶重新檢討後才正式啟動開發/觀察期。屬「可以即刻開工但需客戶決策」狀態。
廣場玩法(Plaza)
5 動作容器:發文/點讚/留言/私密打招呼/送禮 · 18 款禮物 catalog · 5 種魔法效果 · 圖鑑 · 限時 · Spam 防禦 · DM Thread 改版
漂流瓶(Drift Bottle)
匿名版 A · 丟瓶/撿瓶/塞紙 · 5 活躍度/條 · LLM 雙軌敏感詞審查 · 6 類白名單 · admin review queue
Admin 7 級 RBAC
7 級 ENUM(root / core_manager / core_staff / merchant_*×3 / matchmaker)+ 50 permission code + 36 requirePermission call site
Council Session #9 · 五 Tab 架構(Stage 1+2+3)
首頁/匹配/發現/互動/我的 5 Tab + SVG icon + 25 個 page 註冊 · 09-10 下午真機調試已跑(登入 UI/滑卡/打分/喜歡)· strategy smoke 10 case 仍待 runtime gate
📝 規劃中(待客戶拍板)
以下 5 個項目規則已寫但未啟動;可隨時開工,需 Siu 決策排期。
支付通道(微信/支付寶)
hua_user_order / user_voucher 表已建 · pay_channel mock · 微信主體未註冊(#44 blocker)
❌ 不做(已明確拒絕)
以下 4 個方向已 Siu 拍板不做,唔會再排期。
- 揪團玩法(廣場原 v0 規劃)— 風險 + 監管成本太高,沿 #46 #1 Siu 2026-09-08 10:50 HKT 拍板 ❌
- 顏值打分排行榜 — Siu 拍板「不做」,沿 #11 open-decisions ✅
- 禮物效果 gift_bonus — 沿 #46 #21 Siu 2026-09-08 13:16 HKT 拍板「不使用」,已從 v8 移除
- 圖鑑稀有度 — 沿 #46 #13 只給系列批次(26 年中秋 / 七夕 etc),無稀有度
二、商業模式(核心玩法)
KunWay 嘅主收入係會員費(人民幣月費/年費/終身);芙蓉花係第二條錢,入金係用戶入口、出金係商戶結算。
付費牆(Paywall)
牆嘅控管單位係 瀏覽者嘅 vip_level,唔係檔案上嘅 A 檔(A 檔只係裝飾)。
免費用戶 → 模糊照片 + 基本資訊 → 升級引導 → 付費會員
(#38:主相片永遠清晰)
(#41:discover feed 唔攤 photos[],只攤 avatar)
主收入 vs 第二條錢
| 維度 | 會員費(主) | 芙蓉花(第二條) |
|---|---|---|
| 幣種 | 人民幣 | 站內花(🌺) |
| 入口 | 用戶買月費 | 用戶充值(520花=¥1) |
| 出口 | — | 商戶出金(1000花=¥1) |
| 用途 | 解鎖牆 | 送禮、買 deck 額外組、聯繫費、傭金 |
| Spread | — | 48%(platform 收益) |
遠景收入(尚未開展)
- 線下活動(相親活動門票)
- 1 對 1 撮合(高端定制服務)
- B 端合作(婚慶/珠寶/旅遊等)
三、會員分級 & 付費牆
4 級制;價格以人民幣計;月費即時生效;年卡/終身未接通購買。
等級 & 月費
| 名稱 | vip_level | 月費 | 備註 |
|---|---|---|---|
| 免費 | 0 | — | 訪客可看 |
| 普通 | 1 | ¥99 | 看基本資料 |
| 黃金 | 2 | ¥299 | 核心檔(長文 + 相冊) |
| 白金 | 3 | ¥599 | 完整微信 + 專屬客服 |
各檔能看見什麼
| 內容 | 免費 | 普通 | 黃金 | 白金 |
|---|---|---|---|---|
| 姓名/年齡/身高/城市 | ✅ | ✅ | ✅ | ✅ |
| 學歷/職業/收入 | ❌ | ✅ | ✅ | ✅ |
| 自我介紹/擇偶 | ❌ | ❌ | ✅ | ✅ |
| 主相片(用戶挑選唯一) | ✅ | ✅ | ✅ | ✅ |
| 相簿(主圖以外嘅照片) | 模糊 | 清晰頭像 | 頭像 + 相冊 | 全部 |
| 微信 | ❌ | ❌ | 打碼(未做) | 完整(未做) |
| 電話 | ❌ | 打碼(未做) | 完整(未做) | 完整(未做) |
額外權益(規劃)
| 權益 | 免費 | 普通 | 黃金 | 白金 |
|---|---|---|---|---|
| 每天「感興趣」 | 10 | 10 | 20 | 30 |
| 遇見 Deck 額外買組 | ≤2 組 | ≤2 組 | ≤5 組 | 無限 |
| 打分 Deck 額外買組 | ≤2 組 | ≤2 組 | ≤5 組 | 無限 |
| 打分(拉條) | ❌ 月費牆 | ✅ | ✅ | ✅ |
| 優先推薦 | ❌ | ❌ | ❌ | ✅ |
| 專屬客服 | ❌ | ❌ | ❌ | ✅ |
四、虛擬貨幣(芙蓉花 🌺)
芙蓉花係站內流通單位,唔係會員費。用於送禮、買 deck 額外組、聯繫費、紅娘傭金。
匯率
| 方向 | 匯率 | 說明 |
|---|---|---|
| 🌺×520 = ¥1 | ✅ 已定 | 入金:用戶充值(1¥ 換 520花) |
| 🌺×1000 = ¥1 | ✅ 已定 | 出金:商戶結算(1000花 換 1¥) |
| Spread | — | 48% platform 收益(用戶 ¥1 → 商戶 ¥0.52 → platform 留 ¥0.48) |
WalletService 工程細節
6 個 method + 樂觀鎖 + SAVEPOINT chain + 冪等性 + activity grant hook:
credit(增加)·debit(扣減)·lock(鎖定)unlock(解鎖)·transfer(轉帳)·verifyBalance(驗餘額)
已落 / 未接對照
| 能力 | 狀態 |
|---|---|
錢包 schema(hua_user_wallet / hua_user_transaction / hua_user_order 等 6 表) | ✅ 已建 |
| WalletService 6 method | ✅ 已上線 |
| 9 頁後台(grant / campaign / statement / payout) | ✅ 已上線 |
| 「喜歡!」扣 1 🌺(D43) | ✅ 2026-09-07 production deployed |
| 充值(真支付通道) | ⚠️ Schema 已建 · pay_channel mock · 微信主體未註冊 |
| 商戶出金 | ⚠️ Schema 已建 · 等 #3 匯率拍板後啟動 |
| 代金券(充值時自動 9 折 / 2 年有效 / 不可轉贈) | ⚠️ 規則已定 · 表已建 · 未開通 |
五、發現 Tab — 4 個玩法容器
發現 Tab 係一個玩法容器,裝住 4 個獨立玩法:
| 玩法 | 狀態 | 用途 | 扣費 |
|---|---|---|---|
| 遇見(滑卡) | ✅ 已上線 2026-09-04 | 每日配對:左右滑卡片 | 「喜歡!」1 🌺 |
| 打分(拉條) | ✅ 已上線 2026-09-09 | 對其他用戶評分 1–100 | 買組 520 🌺/組 |
| 廣場(內容社交) | 🟡 v9 spec 落 · 觀察期待定 | 發文 + 5 動作容器 + 18 款禮物 | 1 活躍度/留言 / 10 🌺/打招呼 / 9-1314 🌺/送禮 |
| 漂流瓶(匿名) | 🟡 v6 spec 落 · 待啟動 | 匿名投/收/回 message | 5 活躍度/條塞紙 |
5.1 遇見(滑卡)— 已上線
主功能 · 一張大相片在中間、姓名年齡職業(work)在下面,左右滑或者點底下按鈕。卡片從尚未滑過嘅上架檔案裡抽。
Swipe Physics(#42)
- 斜度公式:
rotate = dx / 10,每 10px = 1 度;最大 ±20 度 - 確認閾值:超過 30% 屏幕寬度即確認,否則回彈
- 飛出動畫 300ms ease-out,取消 200ms ease-out
- 必用
transform: translate+rotate,禁用top/left(iOS webview GPU 加速)
3 個動作
| 動作 | 誰能用 | 之後 |
|---|---|---|
| 感興趣 | 免費/普通 10;黃金 20;白金 30 | 進「發現記錄 → 感興趣的人」;7 天後列表隱去 |
| 喜歡! | 所有會員(扣 1 🌺) | 進「喜歡的」,不過期;雙方互 like 觸發 maybeShowMutualMatch |
| 不感興趣 | 不限次數 | 發現卡不再出(黃金/白金可改回) |
每天 0:00 重置感興趣次數;發現亦係每日任務(10 張 = 1 組,最多 4 組)。
5.2 喜歡!(扣花)— 已上線
wx_app 底部「★」按鈕已 active · 全棧接通 2026-09-07(D43 + D43.2 + D43.3)· 2026-09-10 下午修 owner_user_id NULL 獨立檔誤判 404「嘉賓不存在」+ 滑右 like 漏 handler(餘額不足/檔案不存在/自己 like)。
- 用戶行為:點 ★ → 確認 modal → 扣 1 🌺 → 進「喜歡的」
- 扣花走
WalletService::debitUser(),落hua_user_transactionSPEND row - 雙方互 like → 觸發
user_favorite互感事件 +maybeShowMutualMatchmodal(DM page 待 P2) - API contract:sitemap/wx-app-api.md §13.5 · SOP wx_app/OPERATIONS.md
5.3 打分(Discover Score)— ✅ 已上線 2026-09-09
玩法:用戶用拉條為 profile 評 1–100 分 · 線程 B 後端 7 endpoint + 線程 C+D frontend 已落 · 2026-09-10 真機「打分沒有任何卡片」silent gap 已修(loadFeed 兜底 deckEmpty)· Council Session #8 pool exhaustion CLOSED ✅ · strategy smoke 10 case 仍待 runtime gate。
12 條決策(v1.1 沿 5 顧問 architectural fact-check 修正)
- 三元組去重鍵
(user_id, profile_id, avatar_id)— 換 avatar 可重打分,換返舊 avatar 沿用舊分 - 100 天效期 + 1 個月後可重新打分(feed filter only)
- 商戶檔支持打分;紅娘/merchant staff 都可玩
- 不做排行榜 ❌(沿 #11 拍板)
- 任務每日打分 10 個 = 1 組;最多 4 組
- milestone grant 活躍度數值再議(open-decisions #46)
- 紅娘/merchant staff 唔見到自己 merchant 嘅檔
- 訪客未登入不能玩打分(vip_level ≥ 1)
- 少於 10 人不顯示均分;取中間 80%(trim mean 刪 top/bottom 10%)
- 分數加權每 1 天掉 1%(
weight = max(0, 1 - age/100 days)線性衰減) - 可隨時改分/撤回(
is_withdrawnflag · 不刪 row) - Deck quota 隔離(實作共用
discover_deck_purchase.deck_type)
Spec 摘要
- 2 新表:
score_log(三元組去重 +is_withdrawn+sourceENUM) + 1 ALTER(discover_deck_purchase.deck_typeENUM) - 2 service:
DiscoverScoreService(5 method)+DiscoverDeckServiceoverload - 7 endpoint:
POST /discover/score/{feed,submit,withdraw,deck/buy,deck/quota}+GET /discover/score/{log,summary} - 3 thread A/B/C 拆分(4 file / 7 endpoint / 11 文檔 sync)
- Task seed:
daily_score+weekly_score2 row
5.4 五 Tab 架構(Stage 1+2+3)— Council Session #9 已落,09-10 真機調試收線
定位:小程序 5 個 Tab 完整接通 + SVG icon + 25 個 page 註冊 + 6-layer fact-check pass · 屬 Council Session #9 non-trivial 主席裁決「add-envelope」 ✅。
5 Tab + 25 pages
| Tab | 主 pagePath | 主功能 |
|---|---|---|
| 🏠 首頁 | pages/index/index | 熱門/精選曝光 + 個人化推薦 |
| 💞 匹配 | pages/match/index | 多維度匹配 filter |
| 🔍 發現 | pages/discover/discover | 4 個玩法容器(遇見/打分/廣場/漂流瓶) |
| 💬 互動 | pages/interaction/chat/index | 公告頻道 + 私訊 3 Tab + 通知中心 |
| 👤 我的 | pages/my/my | 個人檔案 + VIP + 任務 + 錢包 + 收藏 + 認證 + 後台入口 |
Stage 3 spec 接通
- spec:
plans/2026-09-09-wx-app-5tab.md§E.0.1 + §E.2.1 spec 接通 - 後端:6 commits chain
5a378ae→c202662→a47c2ec→fe91b07→07267f1→df29a91push 落 GitHub - decision:
decisions.mdCouncil Session #9 entry(non-trivial)主席裁決「add-envelope」 - infra:
infrastructure/wx-app-tabbar.md抬頭 sync
5.5 廣場(Plaza)— 規劃中,v9 拍板
定位:唔係微信朋友圈公開動態、唔係中央審;係有付出有收穫嘅社交廣場。
5 動作容器
| 動作 | 視角 | 成本 | quota |
|---|---|---|---|
| 發文 | 30–500 字 + 9 圖 + 5 tag | 免費 | VIP 牆(普 1/黃 3/白 5 篇/日) |
| 點讚 ❤ | 點 button | 免費 | 無限 |
| 留言 💬 | ≤ 50 字 | 1 活躍度/條 | 受活躍度貨幣上限 |
| 私密打招呼 👋 | 開 DM kind=user | 10 🌺 | 受 🌺 餘額 |
| 送禮 🎁 | 18 款 catalog + 數量 + 30 字悄悄話 | 9-1314 🌺 | 受 🌺 餘額 |
18 款禮物 catalog(#46 #28 拍板)
花類 12 款(per_unit · 自動到帳):玫瑰 1 / 粉玫瑰 2 / 橙玫瑰 3 / 白玫瑰 4 / 香檳玫瑰 5 / 藍玫瑰 8 / 鬱金香 2 / 向日葵 3 / 薰衣草 4 / 百合 6 / 蘭花 10 / 牡丹 15(每朵花費,單位 🌺)
禮物類 6 款(fixed · 需對方 accept):咖啡 19 / 書 29 / 歌 39 / 巧克力 49 / 紅酒 99 / 鑽石 199
玫瑰 package 5 階:1 / 9 / 99 / 999 / 9999 朵 + 自訂輸入 1–9999999(特殊數字 520 / 1314 / 5201314 觸發魔法效果)
5 種魔法效果(v8 移除 gift_bonus)
| 效果 | 視角 | quota |
|---|---|---|
unlock_reveal | 24h 內解除對方 VIP 牆,自己 Profile 24h 內讓對方睇 | 3 次/日 |
sender_boost | 訊息展示 10 秒,順序展示 | 3 次/日 |
receiver_boost | 為對方拉曝光(10 秒輪播) | 3 次/日 |
both_superlike | 雙方互標超級喜歡 + 開 DM | 5 次/日 |
special_animation | 限定動畫(520 心型雨/1314 永恆鎖) | 999 次/日(無實質影響) |
Spam 防禦(Gift Card 雙層按鈕)
主列永遠顯示 3 button:👍 [接受] / 👎 [婉拒] / 🔽 [展開]
展開列 4 button(沿 v9 🔽🔼 對調 — 隱藏見 🔽/展開見 🔼):🔼 [收埋] / [全部接受] / [全部拒絕] / [自動接受] / [自動拒絕](黑名單沿 #46 #29 — 永久)
監管(沿 §E5 + §E10 + bottle-text-filter pattern)
- regex 同步 + LLM 異步(6 類白名單)— plaza-text-filter.md
- audit 永久保留 7 年(沿《網絡安全法》§21)
- UI 透明聲明:「本平台依《網絡安全法》保留 audit log 7 年;如有私隱查詢請聯絡 DPO」
Council Session #7 — 15 項 KPI architectural 級裁決
4 核心 + 11 延伸 = 15 項 KPI,觀察期分 4 階段(7 天 / 8-14 天 / 15-30 天 / 30-90 天 follow-up)。完整 SQL + measurement logic 見 infrastructure/plaza-kpi.md。
5.6 漂流瓶(Drift Bottle)— 規劃中,v6 拍板
定位:完全匿名 · 唔 show profile / city / age,只 show 性別 + 撿到時間 + 距今多久。
3 個核心動作
| 動作 | 視角 | 後端 | quota | 貨幣 |
|---|---|---|---|---|
| 丟瓶 | 寫匿名 message(30–200 字)→ 送出 | POST /bottle/drop + regex check | 無限 | 免費 |
| 撿瓶 | 點「撿下一個」→ 隨機 FIFO 抽 1 條 active 瓶 | GET /bottle/pick | 無限 | 免費 |
| 塞紙 | 撿到瓶 → 寫回條(30–200 字)→ 送出 | POST /bottle/{id}/reply + 扣分 | 活躍度上限 | 5 活躍度/條 |
匿名度規則
- 撿瓶可見:性別 + 撿到時間 + 距今多久
- 撿瓶唔可見:profile / city / age / 真實 user_id
- 回條可見(解鎖後):性別 + 撿到時間 + body(仍匿名)
- 後台 admin 可查 origin user(應付執法)—
author_id_enc用 ProfileContactCipher AES-256-GCM 加密
敏感詞 / 監管 SOP(🚨 上架前必修)
regex 同步 + LLM 異步雙軌,6 類高風險白名單:
- 色情/性暗示
- 詐騙/商業引流(含跳出平台聯絡)
- 個資洩漏(他人電話/身份證/住址)
- 情緒崩潰/自傷(admin 即時介入)
- 政治敏感/違法(依《網絡安全法》必要)
- 商業廣告/促銷
confidence ≥ 0.5 自動 archive + DM push 作者 + 申訴通道 + admin review queue。
Audit log 永久保留 7 年(沿《網絡安全法》§21);UI 透明聲明。
六、任務系統(活躍度)
2026-09-04 下午 production deployed · ci-smoke 24/24 全綠 · 觀察期 7 天至 2026-09-11
設計精神
5 個表 DDL(已落)
| 表 | 用途 |
|---|---|
currency_type | 泛貨幣表(4 row seed:points / flower / mooncake / zongzi) |
task_definition | 任務定義表(6 row seed — 4 daily + 2 weekly + 簽到) |
task_progress | 進度(user × task × period_value,uk_task_progress_user_task_period 唯一) |
task_grant | 獎勵發放歷史(uk_task_grant_dedupe 防 double-grant) |
daily_checkin | 簽到專用表(status='restored' 補卡) |
7 條 endpoint(已落)
| Endpoint | 用途 |
|---|---|
POST /task/progress | 加 count(client 主動) |
GET /my/tasks/today | 每日任務面板 |
GET /my/logs/tasks | 任務紀錄(時間倒序分頁) |
GET /task/def | 任務定義列表(公開) |
POST /task/checkin | 今日打卡 |
POST /task/checkin/restore | 花芙蓉花補回某日打卡(prime × 100 階梯) |
GET /my/checkin/calendar | 簽到日曆(?month=YYYY-MM) |
Milestone 示例(§F Siu 拍板 2026-09-04 午)
Daily 任務 milestones(適用於 discover_swipe / score_rate / plaza_view / bottle_pick):
// JSON milestones 寫入 task_definition.milestones
[
{"at": 6, "currency": "flower", "amount": 1},
{"at": 18, "currency": "flower", "amount": 3},
{"at": 36, "currency": "flower", "amount": 6}
]
Weekly 任務 milestones(daily_login_weekly):{at: 84, currency: 'flower', amount: 5}, {at: 315, currency: 'flower', amount: 20}
補卡機制(Prime × 100 階梯)
| 補卡次序 (n) | 質數 prime(n) | 金額(朵) |
|---|---|---|
| 1 | 1 | 100 |
| 2 | 3 | 300 |
| 3 | 5 | 500 |
| 4 | 7 | 700 |
| 5 | 11 | 1,100 |
| ... | ... | ... |
上限:30 天回溯 + 每日最多 3 張;走 WalletService::debit() + AdminLogService audit。
七、消息 & 私訊
兩條路分開:公告頻道(每種一個)vs 私訊(用戶/客服/紅娘三 Tab)。Backend 2026-08-31 全綠 · Frontend 4 頁待接。
消息通知(公告頻道)
入口:我的 → 系統消息。**唔係**一個大收件匣,**每種公告一個頻道**,先選頻道再看該頻道嘅列表。
| 頻道 | 會看到什麼 |
|---|---|
| 系統公告 | 平台發的通知(維護、規則) |
| 活動 | 活動芙蓉花到帳 |
| 會員 | 升級成功、即將到期 |
| 芙蓉花 | 充值到帳、退款、出金進度 |
| 審批 | 聯繫申請通過/拒絕 |
| 認證 | 檔案認證通過/拒絕 |
未讀數掛喺各頻道上(僅紅點、不計數 — 數字使人焦慮)。公告已讀:用戶主動點「全部標為已讀」才清紅點;進頁/滑完都不自動標。
私訊
入口:互動 → 聊天。同一頁、頂部三 Tab:用戶/客服/紅娘
| Tab | 跟誰聊 | 開聊條件 |
|---|---|---|
| 用戶 | 其他會員 | 雙方已表達感興趣,或聯繫申請已通過 |
| 客服 | 平台客服 | 登入即可;每人一條進行中嘅客服會話 |
| 紅娘 | 檔案所屬機構嘅紅娘 | 跟該檔嘅聯繫申請/該機構紅娘有關 |
Frontend 待接 4 頁 UI
- 頻道列表 + 詳情 + 私訊容器 + 會話氣泡
utils/api-guard.js統一 401/403/5xx 攔截- i18n 簡繁 32 鍵(chat.* 21 + notice.* 11)
- API §18.7 錯誤碼表 7 個
- 客服開線入口
startSupport/POST /dm/open { kind: 'support' }
八、後台管理(7 級 RBAC)
部署 kunway-admin.snowky.me · 走網頁,唔走小程序 · 7 級權限(Council Session #6 2026-09-07 拍板,觀察期至 2026-09-14)。
7 級 ENUM(admin.role)
| 級 | code | 描述 | permission 數 |
|---|---|---|---|
| 1 | root | 無所不能 + 唯一可看 secret / 改 admin role | 50(全部) |
| 2 | core_manager | core 範圍全權 | 40(除 admin.* + secret.*) |
| 3 | core_staff | core 範圍日常運營 | 35(除 promote/finalize/paid) |
| 4 | merchant_owner | 商戶老闆 | 17(商戶全權) |
| 5 | merchant_manager | 商戶最高員工 | 16(除 member.role_change) |
| 6 | merchant_staff | 商戶員工 | 9(限 view + 限 edit profile) |
| 7 | matchmaker | 紅娘(跨商戶) | 8(限 contact + dm + view) |
50 條 permission code(細粒度)
| 類別 | code 例子 | 備註 |
|---|---|---|
| Sidebar nav(13 條) | sidebar.nav_dashboard / sidebar.nav_admin_manage (root only) / sidebar.nav_secret (root only) | — |
| Profile | profile.view / profile.edit / profile.llm_tag / profile.tag_review | — |
| Cert | cert.view / cert.approve / cert.reject | — |
| Hua | hua.campaign.view / hua.campaign.edit / hua.campaign.publish / hua.grant.execute / hua.statement.view / hua.statement.finalize / hua.payout.view / hua.payout.approve / hua.payout.reject / hua.payout.paid | — |
| Merchant | merchant.view / merchant.team.edit / merchant.member.edit / merchant.member.role_change | — |
| DM | dm.thread.view / dm.thread.send | — |
| Tag dict | tag.dict.view / tag.dict.promote / tag.dict.revert / tag.dict.reject | — |
| Notice | notice.view / notice.publish | — |
| Admin (root only) | admin.view / admin.create / admin.edit / admin.delete / admin.role_change / admin.password_reset | — |
| Secret (root only, 唔寫 audit log) | secret.view / secret.rotate | — |
3 個架構性改動
- Schema migration_fresh(dev only)— DROP 4 舊表 + CREATE 4 新表(admin / permission / role_permission / admin_log)
- Controller guard 由
requireCore/requireCoreOrOps/requireMerchantWrite粗粒度變requirePermission(string $code)細粒度(36 call site × 17 permission code) admin.roleENUM 4→7 級
PermissionService) + 「pivot」(admin.role 結構) + 「改框架抽象」(controller guard) 三個同時 — 必須 architectural。Council Session #6 已 5 顧問獨立回應 + 匿名互評 + 主席裁決 + Siu 拍板 ✅。
九、商戶 & 紅娘
私域合作:商戶(機構)係容器,唔對外公開申請入駐,由平台邀請簽約。商戶可帶經紀人/紅娘一起管檔案。
規則
- 入駐:平台私域邀請 → 簽約 → 開商戶老闆帳 → 老闆加團隊/人 → 管檔案
- 同一個人可跨多家機構(同商戶同人只能一條)
- 經紀人不分「資深/普通」(三層:owner / manager / member)
已落 / 待啟動
| 能力 | 狀態 |
|---|---|
| 商戶組織 3 表 + 權限 3 表 | ✅ D32/D33-M 2026-08-28 |
後台 4 action(merchant/{index,detail,team,member}) | ✅ 2026-08-28 |
Admin 7 級 RBAC 中嘅 merchant_owner / merchant_manager / merchant_staff | ✅ Council #6 拍板 |
| matchmaker 紅娘獨立 scope(profile_access 跨商戶) | ⚠️ Council #6 Outsider silent gap · Phase 7 follow-up |
| 商家申請審批流程 | ⚠️ 規則已寫 · 表 + service 未建 |
十、媒體策略(OSS)
本機 local /store/ → 私有 OSS bucket kunway-media(香港)· 2026-09-03 G1–G6 收綠。
媒體流
POST /upload(後台)→ 寫入 OSS → 返media_asset.idGET /variant?id=&size=(前端)→ 走 GD → OSS 簽名 URL- 5 sizes:
32/64/128/256/512
OSS 配置
- 驅動:
s3 - Bucket:
kunway-media(私有,香港 region) - TLS:橙雲 Full strict +
acme.shCloudflare DNS-01 續期 - Endpoint:
kunway-media.snowky.me
已落 / 待做
| 能力 | 狀態 |
|---|---|
| OSS 切換(私有 bucket) | ✅ 2026-09-03 G1–G6 |
| 5 sizes variant | ✅ 4 endpoint 全綠 |
| 模糊照片機制(沿 §E2) | ✅ 後端 middleware 簽 OSS 帶 x-oss-process=image/blur,r=20,s=30 |
| 主相片永清晰(#38) | ✅ 2026-09-08 r17 |
| Discover feed 不攤 photos[](#41) | ✅ 2026-09-08 r17 |
| Discover Pool Exhaustion guard | ✅ 2026-09-08 Council Session #8 CLOSED |
| Stage 3 discover_strategy routing | ✅ 2026-09-09 push 落 GitHub |
| 用戶自助上傳頭像 | ⚠️ 規劃中 |
十一、部署環境
Production 部署
| Domain | 用途 | Status |
|---|---|---|
kunway-api.snowky.me | API(小程序後端) | ✅ 98 endpoints · 27 ci-smoke 全綠 |
kunway-admin.snowky.me | 網頁後台(Admin Portal) | ✅ 14 endpoint smoke 全綠 |
kunway-media.snowky.me | 媒體(OSS 私有 bucket) | ✅ 4 endpoint 全綠 |
主機環境
- 主機:
[email protected](key~/.ssh/oao-server-root.pem) - Web:Nginx 1.30.4 + PHP 8.3.31
- DB:MySQL 8.4.11 · 主庫
kunway· 共用oao· 字符集utf8mb4 + utf8mb4_general_ci(禁unicode_ci) - DB runtime user:
cursor(remote)
本機 Dev Sandbox
# 啟動 dev sandbox(mysql + 3 php -S) scripts/dev-sandbox.sh start # 停止 / 狀態 / 重建 scripts/dev-sandbox.sh stop scripts/dev-sandbox.sh status scripts/dev-sandbox.sh reset # DESTRUCTIVE
- mysql: socket
/tmp/mysql_kunway.sockport3399 - http: api
8081/ media8080/ admin8082 - DB:
kunway_dev(主) ·kunway(副,prod schema mirror)
Cron / Console
目前已 setup 嘅 cron:
kunway-tag-promote(高頻自動升人工)— 2026-09-06 r14 收線kunway-task-reset(每日 00:01 HKT)kunway-task-reset-weekly(週一 00:02 HKT)kunway-task-grant-expire(每日 01:00 HKT)kunway-hot-rank(每日 00:05 HKT 結算)kunway-featured-settle(精選拍賣結算)
系統全圖
- 5 個 surface × 健康狀態:API / Media / Admin / Console / Tooling
- DB:60 個表(56 base + 7 級 RBAC migration_fresh dev only +3 + task 4 + 發現 deck 3 + score_log 1)
- API:98 條 endpoint(91 base + Stage 3 discover_strategy 7 endpoint)
- CI smoke:27/27 ALL GREEN(17 base + 7 P2 task system + 3 contract drift fixup)
十二、開發時程
KunWay 2026-08 至今嘅關鍵時點:
已交付(2026-08 月底)
- 2026-08-28 — 網頁後台
kunway-admin.snowky.me上線 - 2026-08-31 — D40 公告 + DM 後端全綠(7 段)
- 2026-08-31 — D43 「喜歡!」扣 1 🌺 · 熱門榜 cron 切新接口
已交付(2026-09 月初)
- 2026-09-02 — Admin 後台 14 endpoint smoke 收綠
- 2026-09-03 — OSS 切換 G1–G6 收綠 · 晚七 production admin-core password rotate
- 2026-09-04 — D27 簡繁詞典 r14 收線
- 2026-09-04 — P2 任務系統 production deployed(7 endpoint + 4 cron)
- 2026-09-04 — D42 發現·遇見 MVP Gate 4 prod 已上 20:00
- 2026-09-06 — Migration backlog 15 條全落 · long-tail ns 31 ns 全綠 · tag 救火完善
- 2026-09-06 — 精選拍賣後端已落 r15
- 2026-09-07 — D43 + D43.2 + D43.3 「喜歡!」全棧接通
- 2026-09-07 — Council Session #6 admin 7 級 RBAC 拍板 + 拍板 v1.1 發現·打分
- 2026-09-07 — 漂流瓶玩法 plan 整合 v6 落
- 2026-09-08 — 廣場玩法 v9 closure pass 落 + 9 份細節檔
- 2026-09-08 — Council Session #8 Discover Pool Exhaustion CLOSED ✅(P1+P2+P3+P4a+P4b)
- 2026-09-09 — 線程 B 發現·打分後端 7 endpoint 全綠(trim mean + time-weighted + 100d expiry + 3-tuple dedupe)
- 2026-09-09 — 線程 C+D 發現·打分前端接通(slider + log + withdraw + milestone 進度條)
- 2026-09-09 — Stage 3 discover_strategy spec + 後端接通 6 commits chain push 落 GitHub
- 2026-09-09 — closure #20 #21 #22 contract drift fixup(`/my/tasks/today` + `/my/logs/tasks` + `/my/checkin/calendar`)
- 2026-09-09 — Council Session #9 五 Tab 架構 spec + 6 commits 落
- 2026-09-10 — E8 task_grant chain fact-check 5/5 PASS(沿 L36 + L57 + L75h SOP)
- 2026-09-10 — Council Session #11–#15:ApiGuard class + score-page-guard + page-guard factory + A3 65 tests + byErrorCode
- 2026-09-10 下午 — 真機調試收線:滑右 like handler · 打分空卡 · like 404 獨立檔 · 登入 UI v5 · 簽到 DI inject
- 2026-09-10 晚 — 演示頁 v1.3(演示日前最終版)
觀察期 / 待拍板
| 截止日 | 事項 |
|---|---|
| 2026-09-11(明天) | 發現·遇見 MVP 7 天觀察期 |
| 2026-09-11(明天) | D27 long-tail ns 7 天觀察期 |
| 2026-09-11(明天) | 任務系統 7 天觀察期(chain fact-check 5/5 PASS 已落) |
| 2026-09-14 | Admin 7 級 RBAC 觀察期 · 後 prod migration |
| 待 Siu 拍板 | 廣場玩法 v9 開工 T+10 |
| 待 Siu 拍板 | 漂流瓶 v6 開工 T+7 |
| 待 runtime gate | Council Session #9 五 Tab · strategy smoke 10 case(09-10 真機登入/滑卡/打分/喜歡已跑) |
| ✅ CLOSED 2026-09-08 | Discover Pool Exhaustion Council Session #8(quota guard + seed 100+ female profile) |
| 2026-10-31 | 🚨 L9 secret rotate DEADLINE(51 天後) |
- L9 secret rotate — DEADLINE 2026-10-31 · 見 current-tasks §P1+
- 微信小程序上架 — 阻塞:
mp.weixin.qq.com主體註冊(#44)
十三、附錄 — 全部模塊超連結
以下列出所有已上線/規劃中嘅模塊對應嘅 _MARKDOWNs/ 原始文檔,客戶可以點開查閱細節。
模塊 × 狀態 × 連結
User / Profile / Cert
- ✅ plans/_done/2026-08-31-user-status-guard.md — Phase 1–4 收尾
- ✅ plans/_done/2026-08-31-notify-dm.md — D39-D42 全 7 段
- ✅ plans/_done/2026-08-31-d40-dm-backend.md — DM 後端 46/0
- ✅ plans/_done/2026-08-31-d40-dm-frontend.md — DM 前端 4 頁 + i18n 32 鍵
- ✅ plans/_done/2026-08-31-zh-dict.md — D27 簡繁詞典 4 件收線
- 📋 business-logic/02-用戶角色.md — User ↔ Profile 雙軌
- 📋 business-logic/04-隱私保護.md — 微信/聯繫方式展示
- 📋 business-logic/05-身份驗證.md — 登入與認證
會員分級 & 付費牆
- 📋 business-logic/03-會員分級.md — 4 級 + 月費牆 + A 檔裝飾
- 📋 business-logic/13-會員體系.md — 會員走線總覽
- 📋 business-logic/12-審批流程.md — 聯繫申請、傭金
虛擬貨幣(芙蓉花)
- 📋 business-logic/09-虛擬貨幣.md — 客戶 handbook
- 📋 infrastructure/wallet-service.md — WalletService 6 method + 樂觀鎖 + SAVEPOINT
- 📋 plans/hua-monetization.md — 大藍圖(芙蓉花/商戶錢包/分潤/真付款通道)
- 📋 plans/schema-gap-supplement.md — 三線缺口對照 22/22 100% r19
發現 Tab(4 個玩法)
- ✅ plans/_done/2026-09-04-discover-meet.md — 遇見 MVP Gate 4 prod
- ✅ plans/2026-09-07-discover-score.md — 打分已上線 · 09-10 真機空卡修
- 🟡 plans/2026-09-08-plaza-square.md — 廣場 v9 整合 plan §0–§11
- 🟡 plans/2026-09-07-drift-bottle.md — 漂流瓶 v6 整合 plan
- 🟡 plans/2026-09-08-discover-pool-exhaustion.md — Profile Pool Exhaustion + Feed Quota Guard(Council #8)
- 📋 business-logic/14-發現頁面.md — 遇見子頁規格
- 📋 business-logic/11-顏值打分系統.md — 打分 handbook
- 📋 business-logic/廣場.md — 廣場 handbook
- 📋 business-logic/漂流瓶.md — 漂流瓶 handbook
- 📋 infrastructure/gift-system.md — 禮物系統(花類/禮物類 + 撤回)
- 📋 infrastructure/gift-magic-number.md — 魔法數字 5 種 effect
- 📋 infrastructure/gift-spam-defense.md — Spam 防禦 4 button
- 📋 infrastructure/gift-catalog-admin.md — 18 款 catalog CRUD
- 📋 infrastructure/gift-codex.md — 圖鑑翻書效果
- 📋 infrastructure/plaza-text-filter.md — 監管雙軌
- 📋 infrastructure/gift-withdraw-sop.md — 撤回 SOP
- 📋 infrastructure/dm-thread-rebuild.md — DM Thread 改版
- 📋 infrastructure/plaza-kpi.md — 15 項 KPI SQL + measurement
- 📋 infrastructure/bottle-text-filter.md — 漂流瓶敏感詞細節
熱門 + 精選
- ✅ plans/_done/2026-08-31-hot-featured.md — 後端已落 r15
- 📋 business-logic/18-熱門與精選.md — 客戶 handbook
任務系統
- 🟡 plans/2026-09-04-task-system.md — 觀察期至 2026-09-11
- 📋 business-logic/10-任務系統.md — 客戶 handbook
- 📋 business-logic/16-日誌中心.md — 日誌 / 任務紀錄
標籤系統(D27 + long-tail)
- ✅ plans/_done/2026-08-31-zh-dict.md — D27 簡繁詞典
- 🟡 plans/2026-09-01-long-tail-ns.md — long-tail ns 三件套(件 A/B/C 全綠)
- 📋 infrastructure/tag-system.md — close-set + LLM 治理 + 簡繁詞典核心三原則
- 📋 infrastructure/tag-admin-crud.md — 後台 CRUD 規劃
Migration Backlog
- ✅ plans/_done/2026-09-02-migration-backlog.md — 15 條 migration r18 fact-check
- 📋 infrastructure/database-design.md — DB 設計
Frontend 待啟動
- 📋 plans/_done/2026-08-31-d40-dm-frontend.md — DM 4 頁 + i18n 32 鍵 + api-guard
- 📋 sitemap/wx_app/ — 小程序頁面規格(6 個)
- 📋 sitemap/wx-app-api.md — 91 endpoints contract
付費申請聯繫(紅娘審批)
- 📋 business-logic/12-審批流程.md — 規則已定
支付通道
- 📋 business-logic/09-虛擬貨幣.md §3 — 規劃能力
- 📋 plans/hua-monetization.md — 大藍圖
登入(Phase 5–7)
- 📋 business-logic/05-身份驗證.md — 登入與認證
微信小程序上架
- 📋 infrastructure/open-decisions.md #44 — WeChat MP 主體 blocker
後台 7 級 RBAC
- 🟡 plans/2026-09-07-admin-rbac-7tier.md — Council #6 architectural plan
- 📋 business-logic/08-平台架構.md — 7 級 ENUM + 50 permission
- 📋 decisions.md Council Session #6 — 5 顧問 audit trail
- 📋 infrastructure/council-grading.md — C-1 三級分層
- 📋 Council.md — 5 顧問 + 3 步流程
商戶 & 紅娘
- ✅ 沿 Council #6 7 級 RBAC —
merchant_owner/merchant_manager/merchant_staff/matchmaker4 級 - 📋 business-logic/08-平台架構.md §3 — Merchant / Team / Member 三層
媒體(OSS)
- ✅ 2026-09-03 G1–G6 收綠
- 📋 business-logic/15-媒體策略.md — 客戶 handbook
- 📋 system-map/04-media-pipeline.md — 媒體 pipeline
統一入口
| 層 | 路徑 | 角色 |
|---|---|---|
| 總入口 | README.md | 全專案唯一真理源 |
| 客戶 handbook | business-logic/(18 篇) | 客戶用 |
| 開發規格 | infrastructure/(30+ 細節檔) | 開發用 |
| 規劃書 | plans/ + plans/_done/ | 設計定稿 |
| API 契約 | sitemap/wx-app-api.md | 98 endpoints |
| 系統全圖 | system-map/(00–06) | 已驗證全圖 |
| Council audit | decisions.md · Council.md | 5 顧問 + 15 個 Council Session(#1–#15) |
| 當前任務 | current-tasks.md | 未做嘅 todo |
| 跨 chat survival | handover.md | routing 索引 · 詳情在 handover/ |
| 當日迭代 | — | 內部開發紀錄,唔對客戶公開 |
| 踩坑 | — | 內部 LESSONS,唔對客戶公開 |