Commit Graph

15 Commits

Author SHA1 Message Date
hailin 9b9427d6a8 fix(identity-service): 修复 seed 脚本会清除所有用户数据的严重 bug
问题:每次部署 identity-service 时,seed 脚本会执行 deleteMany() 删除所有用户数据
修复:
- 检查现有用户数量,如果 > 5 则跳过 seed(保护生产数据)
- 移除所有 deleteMany() 调用
- 使用 upsert 确保系统账户存在而不是先删后建
- 管理员账户只在不存在时创建

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 03:28:59 -08:00
hailin 0220650cd9 fix(identity-service): 种子用户序列号改为 D25129999999
避免与真实用户序列号冲突

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:36:54 -08:00
hailin 36f8ee1d6a fix: SEED01用户状态改为ACTIVE
- SYSTEM状态会被识别为冻结账户
- 必须是ACTIVE才能作为有效推荐人

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 17:52:06 -08:00
hailin a533987013 fix: SEED01用户accountSequence改为D25122100000格式
- identity-service: S0000000005 -> D25122100000
- referral-service: S0000000005 -> D25122100000
- 种子用户序号0,真实用户从1开始

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 17:35:01 -08:00
hailin 6039bffa73 fix: 修改种子用户推荐码为SEED01(6字符)
生产环境的ReferralCode值对象限制推荐码必须恰好6个字符,
GENESIS(7字符)不符合格式要求,改为SEED01

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 06:05:45 -08:00
hailin c58cc351d0 feat: 添加 GENESIS 系统种子用户用于初始推荐码
- 在 identity-service 中添加 GENESIS 用户 (userId=5, code=GENESIS)
- 创建 referral-service seed.ts 同步 GENESIS 推荐关系
- 新用户注册时可使用 GENESIS 推荐码进行注册
- GENESIS 用户作为根节点,便于追踪无推荐人的用户

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 04:09:39 -08:00
hailin 7d6e776e5e refactor: 清理 migration 和 seed 数据重复定义
Migration 职责:
- 只负责表结构(CREATE TABLE、索引、外键)
- 设置 user_id 序列从 10 开始(预留 1-9 给系统)
- 移除 GENESIS 用户插入(数据应由 seed 管理)

Seed 职责:
- 恢复到前天状态,移除重复的 GENESIS 定义
- 保留 4 个系统账户(ID 1-4)
- 保留管理员账户初始化

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 00:43:28 -08:00
hailin 7a6d8adcb5 fix: 在 seed 中添加 GENESIS 系统种子用户
问题原因:
- seed.ts 会删除所有 userAccount 记录
- 即使 migration 创建了 GENESIS 用户,seed 运行后也会被删除
- 之前的系统账户使用 userId 1-4,但 GENESIS 应该是 userId 1

解决方案:
- 将 GENESIS 用户添加到 SYSTEM_ACCOUNTS 数组
- userId: 1, accountSequence: 'SYSTEM00001', referralCode: 'GENESIS'
- 其他系统账户的 userId 顺延到 2-5

系统账户列表:
- userId 1: GENESIS (系统种子用户,用于注册推荐码)
- userId 2: 总部社区 (HQ000001)
- userId 3: 成本费账户 (COST0002)
- userId 4: 运营费账户 (OPER0003)
- userId 5: RWAD底池账户 (POOL0004)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 23:44:15 -08:00
hailin cb40463521 feat(identity-service): 添加管理员登录功能
- 新增 AdminAccount 数据表存储管理员账户
- 在 AuthController 添加 POST /auth/login 端点
- 支持邮箱+密码登录,使用 bcrypt 验证
- 在 seed.ts 中初始化默认管理员账户
  - 邮箱: admin@rwadurian.com
  - 密码: Admin@123456
- 前端登录页面适配新的响应格式

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 05:17:50 -08:00
hailin 4be9c1fb82 refactor!: 重构账户序列号格式 (BREAKING CHANGE)
将 accountSequence 从数字类型改为字符串类型,新格式为:
- 普通用户: D + YYMMDD + 5位序号 (例: D2512120001)
- 系统账户: S + 10位序号 (例: S0000000001)

主要变更:
- identity-service: AccountSequence 值对象改为字符串类型
- identity-service: 序列号生成器改为按日期重置计数
- 所有服务: Prisma schema 字段类型从 BigInt/Int 改为 String
- 所有服务: DTO、Command、Event 中的类型定义更新
- Flutter 前端: 相关数据模型类型更新

涉及服务:
- identity-service (核心变更)
- referral-service
- authorization-service
- wallet-service
- reward-service
- blockchain-service
- backup-service
- planting-service
- mpc-service
- admin-service
- mobile-app (Flutter)

注意: 此为破坏性变更,需要清空数据库并重新运行 migration

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 09:11:18 -08:00
hailin 51be55d315 feat(reward): 补全10种认种奖励分配规则
新增4种系统费用类权益:
- COST_FEE: 成本费 400 USDT → 成本账户(userId=2)
- OPERATION_FEE: 运营费 300 USDT → 运营账户(userId=3)
- HEADQUARTERS_BASE_FEE: 总部社区基础费 9 USDT → 总部社区(userId=1)
- RWAD_POOL_INJECTION: RWAD底池注入 800 USDT → 底池账户(userId=4)

原有6种用户权益类保持不变:
- SHARE_RIGHT: 分享权益 500 USDT
- PROVINCE_AREA_RIGHT: 省区域权益 15 USDT + 1%算力
- PROVINCE_TEAM_RIGHT: 省团队权益 20 USDT
- CITY_AREA_RIGHT: 市区域权益 35 USDT + 2%算力
- CITY_TEAM_RIGHT: 市团队权益 40 USDT
- COMMUNITY_RIGHT: 社区权益 80 USDT

总计: 400 + 300 + 9 + 800 + 500 + 15 + 20 + 35 + 40 + 80 = 2199 USDT

同时更新seed脚本创建4个系统账户

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-07 09:19:20 -08:00
hailin 747e4ae8ef refactor(mpc-system): migrate to party-driven architecture with PartyID-based routing
- Remove Address field from PartyEndpoint (parties connect to router themselves)
- Update K8s Discovery to only manage PartyID and Role labels
- Add Party registration and SessionEvent protobuf definitions
- Implement PartyRegistry and SessionEventBroadcaster domain logic
- Add RegisterParty and SubscribeSessionEvents gRPC handlers
- Prepare infrastructure for party-driven MPC coordination

This is the first phase of migrating from coordinator-driven to party-driven
architecture following international MPC system design patterns.
2025-12-05 08:11:28 -08:00
hailin 77725bd769 . 2025-11-24 02:33:14 -08:00
hailin 8e3aa0e794 . 2025-11-24 02:29:44 -08:00
hailin c29c185a03 identity_service_context first commit 2025-11-24 06:09:06 +00:00