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:
hailin 2025-12-20 20:57:34 -08:00
parent 4c645afc44
commit 9fd5d1d17d
2 changed files with 68 additions and 0 deletions

View File

@ -0,0 +1,31 @@
# 系统种子用户 Migration
## 目的
创建一个系统种子用户,用作根推荐人,解决"第一个用户无法注册"的问题。
## 种子用户信息
- **User ID**: `1` (固定ID)
- **Account Sequence**: `SYSTEM00001`
- **推荐码**: `GENESIS`
- **昵称**: `系统`
- **状态**: ACTIVE
- **手机号**: NULL系统用户不需要手机号
## 使用方式
第一批用户在注册时,使用推荐码 **GENESIS** 即可完成注册。
## 特点
1. ✅ 保持了推荐码必填的业务逻辑
2. ✅ 所有用户都有完整的推荐关系链
3. ✅ 系统用户只提供推荐码功能,不参与其他业务
4. ✅ 使用固定 UUID方便识别和管理
## 注意事项
- 此用户不应该被删除
- 此用户不能登录(没有手机号和密码)
- 此用户的推荐码 `GENESIS` 可以被无限次使用

View File

@ -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);