Files
star-cloud/docs/members.md
sky121113 84ef0c24e2
All checks were successful
Star-Cloud-Deploy-System / deploy-demo (push) Successful in 44s
Star-Cloud-Deploy-System / deploy-production (push) Has been skipped
feat: 整合 Preline UI 3.x 與重寫 README 為 Docker 架構
- 新增 Preline UI 3.2.3 作為 UI 組件庫
- 更新 tailwind.config.js 整合 Preline
- 更新 app.js 初始化 Preline
- 完全重寫 README.md 以 Docker 容器化架構為核心
- 新增 Docker 常用指令大全
- 新增故障排除與生產部署指南
- 新增會員系統相關功能(會員、錢包、點數、會籍、禮物)
- 新增社交登入測試功能
2026-01-13 10:17:37 +08:00

5.2 KiB
Raw Permalink Blame History

會員系統Members功能說明

此文件記錄會員系統的設計決策與功能說明,供開發與維護時參閱。


概述

會員系統用於智能販賣機商城支援消費者透過多種社群管道Line、Google、Facebook加入會員。

重要區分

  • users 表:後台管理員登入帳號
  • members 表:前台消費者會員帳號

兩者完全獨立,無關聯。


資料表

1. members - 會員資料

欄位 類型 說明
id bigint 主鍵
uuid string 唯一識別碼(對外使用)
name string 姓名
email string 電子郵件(可空)
phone string 手機號碼(可空)
password string 密碼(社群登入可空)
birthday date 生日
gender enum 性別
avatar string 頭像 URL
is_active boolean 是否啟用
email_verified_at timestamp Email 驗證時間

2. social_accounts - 社群帳號

欄位 類型 說明
id bigint 主鍵
member_id bigint 關聯會員
provider enum line / google / facebook
provider_id string 社群平台用戶 ID
access_token text 存取令牌
refresh_token text 刷新令牌
profile_data json 社群個人資料
token_expires_at timestamp 令牌到期時間

3. member_wallets - 會員錢包

欄位 類型 說明
member_id bigint FK唯一
balance decimal 儲值餘額
bonus_balance decimal 回饋金餘額

4. wallet_transactions - 錢包交易

欄位 類型 說明
type enum deposit/consume/refund/bonus/adjust
amount decimal 異動金額
balance_after decimal 異動後餘額
reference_type/id 關聯訂單或活動

5. deposit_bonus_rules - 儲值回饋規則

設定儲值達指定金額可獲得的回饋(固定金額或百分比)。

6. member_points - 點數帳戶

欄位 類型 說明
available_points int 可用點數
pending_points int 待生效點數
expired_points int 已過期(統計)
used_points int 已使用(統計)

7. point_transactions - 點數異動

欄位 類型 說明
type enum earn/use/expire/gift/adjust
points int 異動點數
expires_at datetime 此筆點數到期日

每筆獲得點數都記錄 expires_at,排程任務定期處理過期。

8. point_rules - 點數規則

設定消費/儲值/註冊等行為可獲得的點數及有效天數。

9. membership_tiers - 會員等級

欄位 類型 說明
name string 等級名稱
annual_fee decimal 年費0=免費)
discount_rate decimal 折扣比例
point_multiplier decimal 點數倍率

10. member_memberships - 會員等級紀錄

記錄會員的等級歸屬及有效期間。

11. gift_definitions - 禮品定義

欄位 類型 說明
type enum points/coupon/product/discount/cash
trigger enum register/birthday/annual/upgrade/manual

12. member_gifts - 禮品發放紀錄

記錄發放給會員的禮品及領取狀態。


ER 關係圖

members
├── social_accounts (1:N)
├── member_wallets (1:1)
│   └── wallet_transactions (1:N)
├── member_points (1:1)
│   └── point_transactions (1:N)
├── member_memberships (1:N)
│   └── membership_tiers
└── member_gifts (1:N)
    └── gift_definitions

登入流程

使用者選擇社群登入
       ↓
取得 provider + provider_id
       ↓
查詢 social_accounts
       ↓
  ┌────┴────┐
已綁定      未綁定
  ↓           ↓
取得 member  建立新 member + social_account
  ↓           ↓
     完成登入

Email 驗證(可選功能)

若需要 Email 驗證,需設定 .env 的 SMTP 並讓 Member Model 實作 MustVerifyEmail

社群登入時自動標記 email_verified_at,僅對手機/密碼註冊要求驗證。


API 端點

Method Endpoint 說明 認證
POST /api/members/register 註冊會員
POST /api/members/login 登入
POST /api/members/social-login 社群登入
GET /api/members/profile 取得個人資料
PUT /api/members/profile 更新個人資料
POST /api/members/logout 登出

Postman 測試

匯入:docs/postman/Star_Cloud_Members_API.postman_collection.json


社群登入實測

訪問 /test/social-login 測試 Google/Line 登入。


開發進度

日期 項目 狀態
2026-01-12 會員核心 (members, social_accounts) 完成
2026-01-12 錢包系統 (3 表 + 3 Model) 完成
2026-01-12 點數系統 (3 表 + 3 Model) 完成
2026-01-12 年度會員 (2 表 + 2 Model) 完成
2026-01-12 贈送機制 (2 表 + 2 Model) 完成