feat: 添加系统种子用户 migration (推荐码: GENESIS)
## 目的 解决"第一个用户无法注册"的问题,通过创建系统种子用户提供根推荐码。 ## 种子用户信息 - User ID: 1 (固定ID) - Account Sequence: SYSTEM00001 - 推荐码: GENESIS - 昵称: 系统 - 状态: ACTIVE - 手机号: NULL (系统用户不需要手机号) ## 使用方式 第一批用户在注册时使用推荐码 **GENESIS** 即可完成注册。 ## 特点 ✅ 保持推荐码必填的业务逻辑 ✅ 所有用户都有完整的推荐关系链 ✅ 系统用户只提供推荐码功能,不参与其他业务 ✅ 使用固定 ID,方便识别和管理 ✅ 自动重置序列,确保后续用户从 100000000 开始 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
4c645afc44
commit
9fd5d1d17d
|
|
@ -0,0 +1,31 @@
|
|||
# 系统种子用户 Migration
|
||||
|
||||
## 目的
|
||||
|
||||
创建一个系统种子用户,用作根推荐人,解决"第一个用户无法注册"的问题。
|
||||
|
||||
## 种子用户信息
|
||||
|
||||
- **User ID**: `1` (固定ID)
|
||||
- **Account Sequence**: `SYSTEM00001`
|
||||
- **推荐码**: `GENESIS`
|
||||
- **昵称**: `系统`
|
||||
- **状态**: ACTIVE
|
||||
- **手机号**: NULL(系统用户不需要手机号)
|
||||
|
||||
## 使用方式
|
||||
|
||||
第一批用户在注册时,使用推荐码 **GENESIS** 即可完成注册。
|
||||
|
||||
## 特点
|
||||
|
||||
1. ✅ 保持了推荐码必填的业务逻辑
|
||||
2. ✅ 所有用户都有完整的推荐关系链
|
||||
3. ✅ 系统用户只提供推荐码功能,不参与其他业务
|
||||
4. ✅ 使用固定 UUID,方便识别和管理
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 此用户不应该被删除
|
||||
- 此用户不能登录(没有手机号和密码)
|
||||
- 此用户的推荐码 `GENESIS` 可以被无限次使用
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
-- CreateSystemSeedUser: 创建系统种子用户作为根推荐人
|
||||
-- 这个用户只用于提供推荐码,不具备登录和其他功能
|
||||
|
||||
-- 插入系统种子用户
|
||||
-- userId: 1 (固定ID)
|
||||
-- accountSequence: SYSTEM00001 (系统账号标识)
|
||||
-- referralCode: GENESIS (创世推荐码)
|
||||
-- nickname: 系统 (必填字段)
|
||||
INSERT INTO "user_accounts" (
|
||||
"user_id",
|
||||
"account_sequence",
|
||||
"referral_code",
|
||||
"nickname",
|
||||
"phone_number",
|
||||
"kyc_status",
|
||||
"status",
|
||||
"registered_at",
|
||||
"created_at",
|
||||
"updated_at"
|
||||
) VALUES (
|
||||
1, -- 使用 ID 1 作为系统用户
|
||||
'SYSTEM00001',
|
||||
'GENESIS',
|
||||
'系统', -- 必填字段
|
||||
NULL, -- 系统用户不需要手机号
|
||||
'NOT_VERIFIED',
|
||||
'ACTIVE',
|
||||
NOW(),
|
||||
NOW(),
|
||||
NOW()
|
||||
) ON CONFLICT (user_id) DO NOTHING; -- 如果已存在则跳过
|
||||
|
||||
-- 重置自增序列,确保后续用户从 100000000 开始(之前的 migration 设置)
|
||||
-- 这样可以避免与系统用户 ID 冲突
|
||||
SELECT setval(pg_get_serial_sequence('user_accounts', 'user_id'),
|
||||
GREATEST(100000000, (SELECT MAX(user_id) FROM user_accounts)),
|
||||
false);
|
||||
Loading…
Reference in New Issue