From 1694f37e913766db86f06a8af381335b1f9125b7 Mon Sep 17 00:00:00 2001 From: hailin Date: Sat, 27 Dec 2025 11:12:50 -0800 Subject: [PATCH] =?UTF-8?q?fix(mobile-app):=20=E4=BF=AE=E5=A4=8D=E5=A4=9A?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E5=88=87=E6=8D=A2=E5=90=8E=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8F=AA=E6=98=BE=E7=A4=BA=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - phone_login_page: 登录成功后添加账号到多账号列表 - import_mnemonic_page: 恢复账号后添加到多账号列表 - sms_verify_page: 短信验证登录后添加账号到多账号列表 问题原因:多个登录入口没有调用 addAccount() 将账号添加到列表 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .claude/settings.local.json | 14 +- backend/services/scripts/accounts.json | 184 ++++++++++++++++++ backend/services/scripts/batch-register.js | 85 ++++++++ .../pages/import_mnemonic_page.dart | 16 ++ .../presentation/pages/phone_login_page.dart | 33 ++++ .../presentation/pages/sms_verify_page.dart | 33 ++++ 榴莲皇后数据.xlsx | Bin 0 -> 145931 bytes 7 files changed, 364 insertions(+), 1 deletion(-) create mode 100644 backend/services/scripts/accounts.json create mode 100644 backend/services/scripts/batch-register.js create mode 100644 榴莲皇后数据.xlsx diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 53deead2..1b2fcabf 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -428,7 +428,19 @@ "Bash(dir /b \"c:\\\\Users\\\\dong\\\\Desktop\\\\rwadurian\")", "Bash(git commit -m \"$\\(cat <<''EOF''\nfix\\(reward-service\\): 权益分配memo显示触发用户ID\n\n所有权益类型的memo现在统一显示\"来自用户xxx的认种\"格式:\n- 省团队权益:来自用户xxx的认种\n- 省区域权益:来自用户xxx的认种\n- 市团队权益:来自用户xxx的认种\n- 市区域权益:来自用户xxx的认种\n- 社区权益:来自用户xxx的认种\n\n修改前只显示\"xx权益已激活\",现在与分享权益格式保持一致\n\n🤖 Generated with [Claude Code]\\(https://claude.com/claude-code\\)\n\nCo-Authored-By: Claude Opus 4.5 \nEOF\n\\)\")", "Bash(echo \"请运行以下命令查看 D25122600005 的认种记录:\n\ndocker exec -it rwa-postgres psql -U rwa_user -d rwa_planting -c \"\"\nSELECT order_no, account_sequence, tree_count, status, created_at\nFROM planting_orders\nWHERE account_sequence = ''D25122600005''\nORDER BY created_at DESC;\n\"\"\")", - "Bash(git commit -m \"$\\(cat <<''EOF''\nfix\\(wallet-service\\): 修复社区权益根据 targetId 正确分配\n\n问题:社区权益\\(COMMUNITY_RIGHT\\)无论 targetId 是什么,都强制分配到\n总部账户 S0000000001,导致社区授权人无法在流水明细中看到社区权益。\n\n修复:\n- 将 allocateToHeadquartersCommunity 方法重命名为 allocateCommunityRight\n- 根据 targetId 判断分配目标:\n - D 开头(用户账户): 分配到社区授权人账户\n - S 开头或 ''1''(系统账户): 分配到总部社区账户\n- 更新流水备注以区分用户分配和总部分配\n\n🤖 Generated with [Claude Code]\\(https://claude.com/claude-code\\)\n\nCo-Authored-By: Claude Opus 4.5 \nEOF\n\\)\")" + "Bash(git commit -m \"$\\(cat <<''EOF''\nfix\\(wallet-service\\): 修复社区权益根据 targetId 正确分配\n\n问题:社区权益\\(COMMUNITY_RIGHT\\)无论 targetId 是什么,都强制分配到\n总部账户 S0000000001,导致社区授权人无法在流水明细中看到社区权益。\n\n修复:\n- 将 allocateToHeadquartersCommunity 方法重命名为 allocateCommunityRight\n- 根据 targetId 判断分配目标:\n - D 开头(用户账户): 分配到社区授权人账户\n - S 开头或 ''1''(系统账户): 分配到总部社区账户\n- 更新流水备注以区分用户分配和总部分配\n\n🤖 Generated with [Claude Code]\\(https://claude.com/claude-code\\)\n\nCo-Authored-By: Claude Opus 4.5 \nEOF\n\\)\")", + "Bash(git commit -m \"$\\(cat <<''EOF''\nfeat\\(mobile-app\\): 优化流水明细筛选选项\n\n- 将\"奖励转可结算\"改为\"分享收益\",更准确描述分享权益\n- 新增\"权益收入\"筛选项\\(SYSTEM_ALLOCATION\\),用于筛选:\n - 社区权益\n - 市/省团队权益\n - 市/省区域权益\n\n🤖 Generated with [Claude Code]\\(https://claude.com/claude-code\\)\n\nCo-Authored-By: Claude Opus 4.5 \nEOF\n\\)\")", + "Bash(chcp 65001)", + "Bash(cmd /c \"chcp 65001 && python -c \"\"import openpyxl; import sys; sys.stdout.reconfigure\\(encoding=''utf-8''\\); wb = openpyxl.load_workbook\\(r''c:\\\\Users\\\\dong\\\\Desktop\\\\rwadurian\\\\榴莲皇后数据.xlsx''\\); print\\(''Sheets:'', wb.sheetnames\\); sheet = wb.active; print\\(''Rows:'', sheet.max_row, ''Cols:'', sheet.max_column\\); [print\\(f''Row {i}:'', row\\) for i, row in enumerate\\(sheet.iter_rows\\(max_row=5, values_only=True\\), 1\\)]\"\"\")", + "Bash(node scripts/batch-register.js:*)", + "Bash(node batch-register.js:*)", + "Bash(git commit -m \"$\\(cat <<''EOF''\nfeat\\(mobile-app\\): 隐藏\"我的团队\"功能,需秘密点击解锁\n\n- 默认隐藏\"我的团队\"树形组件\n- 在\"团队种植数\"区域连续点击19次后显示\n- 点击间隔超过1秒自动重置计数器\n- 退出页面后状态自动重置\n\n🤖 Generated with [Claude Code]\\(https://claude.com/claude-code\\)\n\nCo-Authored-By: Claude Opus 4.5 \nEOF\n\\)\")", + "Bash(git commit -m \"$\\(cat <<''EOF''\nrefactor\\(mobile-app\\): 修改\"我的\"页面文案\n\n- \"直推人数\" → \"引荐\"\n- \"个人种植数\" → \"个人种植树\"\n- \"团队种植数\" → \"团队种植树\"\n- \"直推列表\" → \"引荐列表\"\n\n🤖 Generated with [Claude Code]\\(https://claude.com/claude-code\\)\n\nCo-Authored-By: Claude Opus 4.5 \nEOF\n\\)\")", + "Bash(git commit -m \"$\\(cat <<''EOF''\nrefactor\\(mobile-app\\): 修改\"我的团队\"文案为\"我的同僚\"\n\n- \"我的团队\" → \"我的同僚\"\n- \"暂无团队成员\" → \"暂无同僚\"\n\n🤖 Generated with [Claude Code]\\(https://claude.com/claude-code\\)\n\nCo-Authored-By: Claude Opus 4.5 \nEOF\n\\)\")", + "Bash(npx jest --testPathPattern=\"referral\" --passWithNoTests)", + "Bash(npx jest --testPathPattern=\"wallet\" --passWithNoTests)", + "Bash(git commit -m \"$\\(cat <<''EOF''\nrefactor\\(mobile-app\\): 修改\"我的\"页面文案\n\n- \"个人种植树\" → \"本人种植树\"\n- 引荐列表中 \"个人/团队\" → \"本人/同僚\"\n\n🤖 Generated with [Claude Code]\\(https://claude.com/claude-code\\)\n\nCo-Authored-By: Claude Opus 4.5 \nEOF\n\\)\")", + "Bash(git commit -m \"$\\(cat <<''EOF''\nfeat\\(identity-service\\): 增强钱包生成可靠性,确保100%生成成功\n\n核心改进:\n- 基于数据库扫描代替Redis扫描,防止状态丢失后无法重试\n- 指数退避策略\\(1分钟→60分钟\\),无时间限制持续重试\n- 分布式锁保护,防止多实例/并发重复触发\n- getWalletStatus API 检测失败状态并自动触发重试\n\n修改内容:\n- RedisService: 添加 tryLock/unlock 分布式锁方法\n- UserAccountRepository: 添加 findUsersWithIncompleteWallets 查询\n- getWalletStatus: 增强状态检测,失败/超时时自动触发重试\n- WalletRetryTask: 完全重写,基于数据库驱动+指数退避\n\n🤖 Generated with [Claude Code]\\(https://claude.com/claude-code\\)\n\nCo-Authored-By: Claude Opus 4.5 \nEOF\n\\)\")" ], "deny": [], "ask": [] diff --git a/backend/services/scripts/accounts.json b/backend/services/scripts/accounts.json new file mode 100644 index 00000000..e37f4020 --- /dev/null +++ b/backend/services/scripts/accounts.json @@ -0,0 +1,184 @@ +[ + { + "i": 1, + "phone": "14052927714", + "seq": "D25122700001", + "code": "PHQZKV", + "inviter": "SEED01", + "wallet": { + "kava": "0x345b8839b942f841e76ee103b4c7089d704acbfd", + "dst": "dst1u5dmj4h3u087mlc36r5njx24eqmq5m20nc2r9t", + "bsc": "0x345b8839b942f841e76ee103b4c7089d704acbfd" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMCIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAwMSIsImRldmljZUlkIjoiZGV2LTE3NjY3NzcyODU3NjQiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3Mjg2LCJleHAiOjE3NjY3ODQ0ODZ9.KV34psoB-uig1wiSUsKG9mE1BVNOBMTaxq7wwXk46r4" + }, + { + "i": 2, + "phone": "18027595478", + "seq": "D25122700002", + "code": "JUEG1A", + "inviter": "PHQZKV", + "wallet": { + "kava": "0xe4c66acff372d084433984228773ad07932f8205", + "dst": "dst18etce0jkll3kfs8fxj5e6tneqlnx9cmx5l8wzz", + "bsc": "0xe4c66acff372d084433984228773ad07932f8205" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMSIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAwMiIsImRldmljZUlkIjoiZGV2LTE3NjY3NzczMTY3NjIiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3MzE3LCJleHAiOjE3NjY3ODQ1MTd9.5_PF-8of02cPrXqrHWk67eHW77Nr6vBtvNONDs2_eUo" + }, + { + "i": 3, + "phone": "17862239357", + "seq": "D25122700003", + "code": "DVRBF0", + "inviter": "JUEG1A", + "wallet": { + "kava": "0x3ff86b1f8e81df00e680fccaa075cce3853864a6", + "dst": "dst1umw0d6ncxwqy2072jmtwc5fcd69sczsrju5eeq", + "bsc": "0x3ff86b1f8e81df00e680fccaa075cce3853864a6" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMiIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAwMyIsImRldmljZUlkIjoiZGV2LTE3NjY3NzczNDEyNDIiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3MzQxLCJleHAiOjE3NjY3ODQ1NDF9.H6oQNKoV9LVdP-2tEEzfgj0ShThQqcs9hgUjrAumD6I" + }, + { + "i": 4, + "phone": "19297857036", + "seq": "D25122700004", + "code": "2UEPMU", + "inviter": "DVRBF0", + "wallet": { + "kava": "0x0f533a8c69d4217c66cb6c971d8e40fb2fcdda75", + "dst": "dst1cxjk6hwnftegk45h0xzsjlrruqgwvxjsh65wg7", + "bsc": "0x0f533a8c69d4217c66cb6c971d8e40fb2fcdda75" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMyIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAwNCIsImRldmljZUlkIjoiZGV2LTE3NjY3NzczNzA3MDMiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3MzcxLCJleHAiOjE3NjY3ODQ1NzF9.2LUwgMITQvohGzloegEFpNWfKb8DCtrIVy6xTyBzn-8" + }, + { + "i": 5, + "phone": "15320937126", + "seq": "D25122700005", + "code": "5J8V3C", + "inviter": "2UEPMU", + "wallet": { + "kava": "0xde2b2fbf8a4c9a1b10a9b6a16978eafa2737538e", + "dst": "dst18sdgdrmvnwhh2sdq4dswhw3lmhjcqp4gwdhf26", + "bsc": "0xde2b2fbf8a4c9a1b10a9b6a16978eafa2737538e" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNCIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAwNSIsImRldmljZUlkIjoiZGV2LTE3NjY3Nzc0NDg1NzIiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3NDQ5LCJleHAiOjE3NjY3ODQ2NDl9.HzJWZWEmUoXlPJ6A5IMrGKslWfKcVpIQY_PSdNrPKE4" + }, + { + "i": 6, + "phone": "19355687135", + "seq": "D25122700006", + "code": "3O9FCJ", + "inviter": "5J8V3C", + "wallet": { + "kava": "0x0c2ca44714fefb4071b7edd9809824cb3647cff8", + "dst": "dst1nt2au5cjl97kysgejjqnph77zh95ll23jgga7z", + "bsc": "0x0c2ca44714fefb4071b7edd9809824cb3647cff8" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNSIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAwNiIsImRldmljZUlkIjoiZGV2LTE3NjY3Nzc1MjYyMzciLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3NTI2LCJleHAiOjE3NjY3ODQ3MjZ9.m-F-CK8U4eO5WYCljq0r3AOqvaxgEebp1is6DuYFVQg" + }, + { + "i": 7, + "phone": "18059815900", + "seq": "D25122700007", + "code": "4RQGK4", + "inviter": "3O9FCJ", + "wallet": { + "kava": "0x604853c11307a1eed056ab740dd8b4739d57deb3", + "dst": "dst1pwjr4xeayfn04et6lqxhltn84ck52rl033vkxr", + "bsc": "0x604853c11307a1eed056ab740dd8b4739d57deb3" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNiIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAwNyIsImRldmljZUlkIjoiZGV2LTE3NjY3Nzc1NTcxODIiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3NTU3LCJleHAiOjE3NjY3ODQ3NTd9.I3S5R52fgzVf7nLbYrXZw3-WQBY_RYdrBLYsCPiyxaQ" + }, + { + "i": 8, + "phone": "18476247786", + "seq": "D25122700008", + "code": "GO0DHS", + "inviter": "4RQGK4", + "wallet": { + "kava": "0xd97f33f0507fd94ee6aed4631193becb5400d47f", + "dst": "dst190dxd7cn0cq6mjrtetzn7cfh0muyv5h7ess6xp", + "bsc": "0xd97f33f0507fd94ee6aed4631193becb5400d47f" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNyIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAwOCIsImRldmljZUlkIjoiZGV2LTE3NjY3Nzc1ODE2MjEiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3NTgyLCJleHAiOjE3NjY3ODQ3ODJ9.8xgV-o-9fUVDtktks0acjRlZpTZ6KjZqH7nKBgYIkpQ" + }, + { + "i": 9, + "phone": "14264197292", + "seq": "D25122700009", + "code": "PQZEYG", + "inviter": "GO0DHS", + "wallet": { + "kava": "0xce1b26b410e53c7d278633058f325f8b975adf15", + "dst": "dst16sksskyr5fv9r0j900un9kvqzjyl207nfklewe", + "bsc": "0xce1b26b410e53c7d278633058f325f8b975adf15" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxOCIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAwOSIsImRldmljZUlkIjoiZGV2LTE3NjY3Nzc2MTI1MzQiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3NjEzLCJleHAiOjE3NjY3ODQ4MTN9.mtx2xe8pGDNEAHcj5etePV74qWq5rIZndu32LAaJTRM" + }, + { + "i": 10, + "phone": "13214866463", + "seq": "D25122700010", + "code": "W8FP57", + "inviter": "PQZEYG", + "wallet": { + "kava": "0xc47e127874232ab99456d4b04d2ada0834d6f850", + "dst": "dst1y0acpufm7w0gcf8nulw7ukz6guf8zd7dypxrap", + "bsc": "0xc47e127874232ab99456d4b04d2ada0834d6f850" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxOSIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAxMCIsImRldmljZUlkIjoiZGV2LTE3NjY3Nzc2NDM0NTYiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3NjQzLCJleHAiOjE3NjY3ODQ4NDN9.HxJIUnUJLUq67D-AXLAkjIvT4E9iOgq4TYSXq07wE58" + }, + { + "i": 11, + "phone": "18420065907", + "seq": "D25122700011", + "code": "WEGSDK", + "inviter": "W8FP57", + "wallet": { + "kava": "0x8ffe3fdb54c1af21bcd5df17667fd09f6487f9f2", + "dst": "dst1ujjydyar0l0d8krp7mxfvf5g47m0m2gdw4v5tk", + "bsc": "0x8ffe3fdb54c1af21bcd5df17667fd09f6487f9f2" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIyMCIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAxMSIsImRldmljZUlkIjoiZGV2LTE3NjY3Nzc2NjU2MzMiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3NjY2LCJleHAiOjE3NjY3ODQ4NjZ9.8s-NKcmkZF5nM6TvqWAFEa6LukM6Ov6tR2dQedt48tg" + }, + { + "i": 12, + "phone": "19542401963", + "seq": "D25122700012", + "code": "SLN8Y7", + "inviter": "WEGSDK", + "wallet": { + "kava": "0x01d7f0eec627c24ea72ed0a3c1ba87528dc6b265", + "dst": "dst1wd30zj03z2emqhpzewrwnm70p6c8ll56z2f8av", + "bsc": "0x01d7f0eec627c24ea72ed0a3c1ba87528dc6b265" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIyMSIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAxMiIsImRldmljZUlkIjoiZGV2LTE3NjY3Nzc2OTY2MDIiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3Njk3LCJleHAiOjE3NjY3ODQ4OTd9.TlZ3e8A3Zwl0ORdetLSGAD8ZxfqVQiGAHaiarSvgyCs" + }, + { + "i": 13, + "phone": "16807660295", + "seq": "D25122700013", + "code": "HZXFFL", + "inviter": "SLN8Y7", + "wallet": { + "kava": "0xab334497c564518990c73e6ae450802ab815c0c2", + "dst": "dst1ypl3cf38zs5dwdfxjgg006m2f7zcj6mqkf8ktc", + "bsc": "0xab334497c564518990c73e6ae450802ab815c0c2" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIyMiIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAxMyIsImRldmljZUlkIjoiZGV2LTE3NjY3Nzc3Mjc1ODMiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3NzI4LCJleHAiOjE3NjY3ODQ5Mjh9.e6vhB7NudLxARynW8XwGcHGeZnEufSBafPTsgiXALKo" + }, + { + "i": 14, + "phone": "19266490703", + "seq": "D25122700014", + "code": "4RTM9B", + "inviter": "HZXFFL", + "wallet": { + "kava": "0xd259dbd13804f587d9c158b4053ab950af92d12c", + "dst": "dst16ue0dkca0jt5ceu3v4865f07lfyvxku4n63dl3", + "bsc": "0xd259dbd13804f587d9c158b4053ab950af92d12c" + }, + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIyMyIsImFjY291bnRTZXF1ZW5jZSI6IkQyNTEyMjcwMDAxNCIsImRldmljZUlkIjoiZGV2LTE3NjY3Nzc3NTg1NDEiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzY2Nzc3NzU5LCJleHAiOjE3NjY3ODQ5NTl9.G8phCWhNiNycZ4FhXpTLT0u07H_FTtP23Tj-V8hf8eQ" + } +] \ No newline at end of file diff --git a/backend/services/scripts/batch-register.js b/backend/services/scripts/batch-register.js new file mode 100644 index 00000000..f1064b62 --- /dev/null +++ b/backend/services/scripts/batch-register.js @@ -0,0 +1,85 @@ +/** + * 批量注册账号脚本 + * + * node batch-register.js [数量] [初始推荐码] + * + * 输出保存到当前目录 accounts.json + */ + +const fs = require('fs'); +const path = require('path'); + +const COUNT = parseInt(process.argv[2]) || 14; +const START_CODE = process.argv[3] || 'SEED01'; +const API = 'https://rwaapi.szaiai.com/api/v1'; +const PASSWORD = 'Test123456'; +const OUTPUT_FILE = path.join(__dirname, 'accounts.json'); + +function randomPhone() { + return '1' + (Math.floor(Math.random() * 7) + 3) + Array(9).fill(0).map(() => Math.floor(Math.random() * 10)).join(''); +} + +async function waitWallet(token) { + for (let i = 0; i < 30; i++) { + const res = await fetch(`${API}/user/wallet`, { + headers: { 'Authorization': `Bearer ${token}` } + }); + if (res.ok) { + const d = (await res.json()).data; + if (d?.status?.toUpperCase() === 'READY') return d.walletAddresses; + } + process.stdout.write('.'); + await new Promise(r => setTimeout(r, 2000)); + } + return null; // 超时返回null,不抛错 +} + +async function register(code, i) { + const phone = randomPhone(); + console.log(`\n[${i}] ${phone} <- ${code}`); + + const res = await fetch(`${API}/user/register-without-sms-verify`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + phoneNumber: phone, + password: PASSWORD, + deviceId: `dev-${Date.now()}`, + inviterReferralCode: code + }) + }); + + if (!res.ok) throw new Error(await res.text()); + + const d = (await res.json()).data; + console.log(` -> ${d.userSerialNum} | ${d.referralCode}`); + + process.stdout.write(' 钱包'); + const wallet = await waitWallet(d.accessToken); + console.log(wallet ? ' OK' : ' 超时'); + + return { i, phone, seq: d.userSerialNum, code: d.referralCode, inviter: code, wallet, token: d.accessToken }; +} + +async function main() { + console.log(`注册 ${COUNT} 个账号,起始码: ${START_CODE}\n`); + + const list = []; + let code = START_CODE; + + for (let i = 1; i <= COUNT; i++) { + if (i > 1) { + console.log('\n等待10秒...'); + await new Promise(r => setTimeout(r, 10000)); + } + const acc = await register(code, i); + list.push(acc); + code = acc.code; + fs.writeFileSync(OUTPUT_FILE, JSON.stringify(list, null, 2)); + } + + console.log(`\n完成,最后推荐码: ${code}`); + console.log(`保存到: ${OUTPUT_FILE}`); +} + +main(); diff --git a/frontend/mobile-app/lib/features/auth/presentation/pages/import_mnemonic_page.dart b/frontend/mobile-app/lib/features/auth/presentation/pages/import_mnemonic_page.dart index c0682630..c23414ec 100644 --- a/frontend/mobile-app/lib/features/auth/presentation/pages/import_mnemonic_page.dart +++ b/frontend/mobile-app/lib/features/auth/presentation/pages/import_mnemonic_page.dart @@ -3,6 +3,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import '../../../../core/di/injection_container.dart'; +import '../../../../core/services/multi_account_service.dart'; import '../../../../routes/route_paths.dart'; /// 导入助记词页面 - 用于恢复已有账户 @@ -104,6 +105,21 @@ class _ImportMnemonicPageState extends ConsumerState { if (!mounted) return; + // 将账号添加到多账号列表 + final multiAccountService = ref.read(multiAccountServiceProvider); + await multiAccountService.addAccount( + AccountSummary( + userSerialNum: response.userSerialNum, + username: response.username, + avatarSvg: response.avatarSvg, + createdAt: DateTime.now(), + ), + ); + await multiAccountService.setCurrentAccountId(response.userSerialNum); + debugPrint('[ImportMnemonicPage] 已添加到多账号列表'); + + if (!mounted) return; + // 恢复成功,跳转到主页 ScaffoldMessenger.of(context).showSnackBar( SnackBar( diff --git a/frontend/mobile-app/lib/features/auth/presentation/pages/phone_login_page.dart b/frontend/mobile-app/lib/features/auth/presentation/pages/phone_login_page.dart index 5d776335..8e3b2aae 100644 --- a/frontend/mobile-app/lib/features/auth/presentation/pages/phone_login_page.dart +++ b/frontend/mobile-app/lib/features/auth/presentation/pages/phone_login_page.dart @@ -4,6 +4,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:go_router/go_router.dart'; import '../../../../core/di/injection_container.dart'; +import '../../../../core/services/multi_account_service.dart'; import '../../../../routes/route_paths.dart'; import '../providers/auth_provider.dart'; @@ -104,6 +105,38 @@ class _PhoneLoginPageState extends ConsumerState { debugPrint('[PhoneLoginPage] 登录成功 - accountSequence: ${response.accountSequence}'); + if (!mounted) return; + + // 获取用户资料并添加到多账号列表 + try { + final profile = await accountService.getMyProfile(); + final multiAccountService = ref.read(multiAccountServiceProvider); + + await multiAccountService.addAccount( + AccountSummary( + userSerialNum: response.accountSequence, + username: profile['nickname'] as String? ?? '用户${response.accountSequence}', + avatarSvg: profile['avatarSvg'] as String?, + avatarUrl: profile['avatarUrl'] as String?, + createdAt: DateTime.now(), + ), + ); + await multiAccountService.setCurrentAccountId(response.accountSequence); + debugPrint('[PhoneLoginPage] 已添加到多账号列表'); + } catch (e) { + debugPrint('[PhoneLoginPage] 获取用户资料失败,使用默认信息: $e'); + // 即使获取资料失败,也添加到账号列表(使用默认信息) + final multiAccountService = ref.read(multiAccountServiceProvider); + await multiAccountService.addAccount( + AccountSummary( + userSerialNum: response.accountSequence, + username: '用户${response.accountSequence}', + createdAt: DateTime.now(), + ), + ); + await multiAccountService.setCurrentAccountId(response.accountSequence); + } + if (mounted) { // 更新认证状态 await ref.read(authProvider.notifier).checkAuthStatus(); diff --git a/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart b/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart index 9de39f98..671a9b68 100644 --- a/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart +++ b/frontend/mobile-app/lib/features/auth/presentation/pages/sms_verify_page.dart @@ -6,6 +6,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:go_router/go_router.dart'; import '../../../../core/di/injection_container.dart'; import '../../../../core/services/account_service.dart'; +import '../../../../core/services/multi_account_service.dart'; import '../../../../routes/route_paths.dart'; import 'set_password_page.dart'; @@ -221,6 +222,38 @@ class _SmsVerifyPageState extends ConsumerState { if (!mounted) return; + // 获取用户资料并添加到多账号列表 + try { + final profile = await accountService.getMyProfile(); + final multiAccountService = ref.read(multiAccountServiceProvider); + + await multiAccountService.addAccount( + AccountSummary( + userSerialNum: response.accountSequence, + username: profile['nickname'] as String? ?? '用户${response.accountSequence}', + avatarSvg: profile['avatarSvg'] as String?, + avatarUrl: profile['avatarUrl'] as String?, + createdAt: DateTime.now(), + ), + ); + await multiAccountService.setCurrentAccountId(response.accountSequence); + debugPrint('[SmsVerifyPage] 已添加到多账号列表'); + } catch (e) { + debugPrint('[SmsVerifyPage] 获取用户资料失败,使用默认信息: $e'); + // 即使获取资料失败,也添加到账号列表(使用默认信息) + final multiAccountService = ref.read(multiAccountServiceProvider); + await multiAccountService.addAccount( + AccountSummary( + userSerialNum: response.accountSequence, + username: '用户${response.accountSequence}', + createdAt: DateTime.now(), + ), + ); + await multiAccountService.setCurrentAccountId(response.accountSequence); + } + + if (!mounted) return; + // 跳转到主页 context.go(RoutePaths.mining); } diff --git a/榴莲皇后数据.xlsx b/榴莲皇后数据.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..118fbc0768604f8083ba8b4b34910644070c98c2 GIT binary patch literal 145931 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 literal 0 HcmV?d00001