hailin
5fa195e4bc
fix: 修复火柴人排名显示问题
...
1. identity-service: 添加批量获取用户信息内部接口
- 新增 InternalController 提供 POST /internal/users/batch
- repository 添加 findByUserIds 批量查询方法
2. authorization-service: 修复 cumulativeCompleted=0 问题
- assessAndRankRegion 改用 findByAccountSequence 查询团队统计
- referral-service 使用 accountSequence 作为主键
3. mobile-app: 修复火柴人UI显示问题
- 容器边距调整为16px与其他组件一致
- 行高增加到100px避免火柴人重叠
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 01:48:16 -08:00
hailin
b4c4239593
feat: 实现手机号+密码登录和账号恢复功能
...
## 后端更改
### 新增功能
- 添加手机号+密码登录 API (`POST /user/login-with-password`)
- 新增 LoginWithPasswordDto 验证手机号格式和密码长度
- 实现 loginWithPassword 服务方法,使用 bcrypt 验证密码
- 返回 JWT tokens(accessToken + refreshToken)
### 代码优化
- 修复 phone.validator.ts 中的 TypeScript 类型错误(Object -> object)
## 前端更改
### 新增功能
- 实现手机号+密码登录页面 (phone_login_page.dart)
- 完整的表单验证(手机号格式、密码长度)
- 集成 AccountService.loginWithPassword API
- 登录成功后自动更新认证状态并跳转主页
### 账号服务优化
- 在 AccountService 中添加 loginWithPassword 方法
- 调用后端 login-with-password API
- 自动保存认证数据(tokens、用户信息)
- 使用 _savePhoneAuthData 统一保存逻辑
### UI 文案更新
- 向导页文案修改:"创建账号" → "注册账号"
- 更新标题、副标题和按钮文本
- 添加"恢复账号"按钮,跳转到手机号密码登录页
## 已验证功能
✅ 前端代码编译通过(0 errors, 仅有非关键警告)
✅ 后端代码编译通过(0 errors, 仅有非关键警告)
✅ 30天登录状态保持(JWT refresh token 已配置为30天)
✅ 自动路由逻辑(有登录状态直接进入主页)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 20:35:44 -08:00
hailin
b01277ab7d
feat(withdraw): 实现完整的提取功能 - TOTP验证和KAVA转账
...
功能实现:
- identity-service: 添加TOTP二次验证功能
- 新增 UserTotp 数据模型
- 实现 TotpService (生成/验证/启用/禁用)
- 添加 /totp/* API端点
- wallet-service: 提取API添加TOTP验证
- withdrawal.dto 添加可选 totpCode 字段
- 添加 IdentityClientService 调用identity-service验证TOTP
- 添加 WithdrawalStatusHandler 处理区块链确认/失败事件
- blockchain-service: 实现真实KAVA ERC20转账
- 新增 Erc20TransferService (热钱包USDT转账)
- 更新 withdrawal-requested.handler 执行真实转账
- 发布确认/失败事件回wallet-service
- 前端: 对接真实提取API
- withdraw_confirm_page 调用 walletService.withdrawUsdt
环境变量配置:
- TOTP_ENCRYPTION_KEY (identity-service)
- IDENTITY_SERVICE_URL (wallet-service)
- HOT_WALLET_PRIVATE_KEY (blockchain-service)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 05:16:42 -08:00
hailin
cf308efecf
refactor(identity-service): remove deposit/blockchain code, belongs to wallet-service
...
- Remove DepositController, DepositService, BlockchainQueryService
- Deposit address and balance queries should be in wallet-service
- identity-service now only handles user identity
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 23:22:06 -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
Developer
a966d71fa0
.
2025-11-30 06:44:57 -08:00
hailin
44d2e2ad80
.
2025-11-24 06:58:46 +00:00