hailin
2025c6ce36
fix(mining-admin): 用户列表API添加认种统计和推荐人信息
...
- 后端getUsers添加批量查询认种统计和推荐人信息
- 后端formatUserListItem返回adoption和referral字段
- 前端transformUserOverview映射新字段
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 03:42:54 -08:00
hailin
3074748d15
fix(mining-admin-web): 修复用户详情数据映射 - 正确映射referral/adoption/team字段
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 03:37:40 -08:00
hailin
a4090cc285
fix(mining-admin-web): 修复 API rewrite 路径为 v2
...
将 next.config.js 中的 API rewrite 从 /api/v1 改为 /api/v2,
与 mining-admin-service 的实际 API 前缀保持一致。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 22:45:16 -08:00
hailin
033f94c0c2
fix(mining-admin-web): 修复 API 响应格式转换
...
后端返回 records/pagination 格式,前端期望 items/total/totalPages 格式
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 21:14:12 -08:00
hailin
1a7c73e531
feat(mining-admin): 添加用户详情页缺失的 API 端点
...
- 添加 referral-tree API(返回空推荐关系数据)
- 添加 planting-ledger API(返回空认种数据)
- 添加 wallet-ledger API(返回空钱包流水数据)
- 修复前端 referral-tree 组件空数据处理
注:这些 API 目前返回占位数据,完整数据需要通过 CDC 从各服务同步
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 20:53:18 -08:00
hailin
fc3efe6a27
fix(mining-admin-web): 修复 React hydration 错误 #418 #423
...
- 修改 Zustand sidebar store 使用 skipHydration 避免 SSR 不匹配
- 移除 Redux auth slice 初始状态中的 localStorage 读取
- 在 providers 中使用 useEffect 初始化客户端状态
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 20:47:00 -08:00
hailin
dc27044dab
fix(mining-admin-web): 修复 formatNumber 导致的 hydration 错误
...
将 toLocaleString 替换为确定性格式化方法,避免服务器和客户端
输出不一致导致的 React hydration 错误 #418 #423
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 20:37:32 -08:00
hailin
99550a2a9d
fix(mining-admin-web): 修复用户列表API响应格式不匹配问题
...
- 添加transformUserOverview和transformUserDetail函数
- 转换后端返回格式(data/pagination)到前端期望格式(items)
- 修复keyword到search的参数名转换
- 解决React hydration错误和数据不显示问题
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 19:15:55 -08:00
hailin
3fe4f82906
fix(mining-admin-web): 修复用户列表页面空数据和错误处理
...
- 修复 data.items 可能为 undefined 导致的崩溃
- 添加 API 错误状态显示
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 19:06:26 -08:00
hailin
2a22d7d669
fix(mining-admin-web): 修复用户列表页面类型错误
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 19:01:37 -08:00
hailin
0f1b4df583
fix(mining-admin-web): 添加缺失的Badge组件
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 19:00:15 -08:00
hailin
8fc527b918
feat(mining-admin-web): 复用admin-web用户管理功能
...
- 更新用户列表:添加头像、个人/团队认种、推荐人、状态徽章
- 更新用户详情:添加头像、KYC状态、认种统计卡片
- 新增引荐关系Tab:展示引荐人链和直推下级树
- 新增认种信息Tab:认种汇总和认种分类账明细
- 新增钱包信息Tab:钱包汇总和钱包分类账明细
- 更新类型定义和API hooks
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 18:58:48 -08:00
hailin
7a68668aa9
feat(auth-service): 增强登录错误提示和指数退避锁定机制
...
- 区分用户不存在和密码错误的提示信息
- 登录失败最多允许6次尝试
- 每次密码错误显示剩余尝试次数
- 超过次数后实现指数退避锁定(1,2,4,8...分钟,最长24小时)
- 锁定时显示剩余等待时间
- 优化mining-app底部导航栏图标间距
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 18:33:23 -08:00
hailin
a0229e653e
fix(mining-app): 修复登录后API请求token未更新的问题
...
问题原因: ApiClient使用内存缓存的token,登录后虽然保存到SharedPreferences,
但ApiClient的内存缓存未更新,导致后续请求仍使用旧token或无token。
解决方案: 移除内存缓存,每次请求都从SharedPreferences读取最新token,
确保登录后立即生效。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 18:00:33 -08:00
hailin
73381a4376
fix: 修复contribution-service路由映射
...
- Kong: /api/v2/contribution -> /api/v1/contributions (strip_path)
- mining-app: 添加/accounts前缀匹配controller路径
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 09:04:21 -08:00
hailin
1256bc2fdd
fix(mining-app): 修复auth API路径,移除多余的/auth层
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 08:58:25 -08:00
hailin
849fa77df0
fix(auth-service): 允许synced_legacy_users的phone和password_hash为空
...
- 修改schema让phone和passwordHash字段可为空
- 添加migration: 20260111083500_allow_nullable_phone_password
- CDC consumer使用null替代空字符串
- 支持同步没有手机号/密码的系统账户
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 08:37:02 -08:00
hailin
a749a3b9e1
fix: 修复auth-service CDC配置和API路由
...
- 修复docker-compose.2.0.yml中CDC_TOPIC_USERS为正确的topic名称
- 添加CDC_ENABLED环境变量
- 更新Kong配置auth-service路由使用strip_path
- 更新mining-app API端点匹配v2服务路由
- 更新mining-app baseUrl指向Kong网关根路径
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 08:29:16 -08:00
hailin
dd77dc65d1
fix(mining-app): 添加assets/images目录
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 08:12:29 -08:00
hailin
8e2073bc5a
feat(mining-app): 添加Android/iOS平台配置和编译支持
...
- 添加Android平台文件(包名: com.rwadurian.mining_app)
- 添加iOS平台文件
- 配置应用名称为"榴莲挖矿"
- 添加网络权限和明文流量支持
- 配置minSdk为24,启用multidex
- 添加debug/release构建类型
- 创建proguard混淆规则
- 添加环境配置文件
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 08:06:53 -08:00
hailin
5727192719
feat(mining-app): 重新设计四个主要导航页面UI
...
- 贡献值页面: 新增贡献值卡片、算力排行榜、收益统计等模块
- 兑换页面: 添加K线图、市场数据、买卖面板等交易界面
- 资产页面: 实现总资产卡片、快捷操作、资产列表、收益统计
- 我的页面: 添加用户头部信息、邀请码、账户设置、记录入口等
- 更新底部导航为: 贡献值、兑换、资产、我的
- 登录/注册后跳转到贡献值页面
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 07:56:23 -08:00
hailin
26dce24e75
feat(mining-app): 添加找回密码和修改密码功能
...
- 添加 /password/reset 和 /password/change API 端点
- 在 auth_remote_datasource 中实现 resetPassword 和 changePassword 方法
- 在 user_providers 中添加状态管理方法
- 创建找回密码页面 (forgot_password_page.dart)
- 创建修改密码页面 (change_password_page.dart)
- 添加路由配置
- 在登录页面添加"忘记密码"链接
- 在个人资料页面添加"修改密码"入口
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 07:36:56 -08:00
hailin
4bb995f2c2
feat(auth-service,mining-app): 实现完整认证流程和CDC用户同步
...
auth-service:
- 添加DTO验证装饰器(IsString, IsNotEmpty, Matches, MinLength)
- 添加短信验证码登录(loginBySms)方法
- 修复CDC Consumer字段映射匹配1.0 user_accounts表
- 更新CDC topic为cdc.identity.public.user_accounts
mining-app (Flutter):
- 新增auth_remote_datasource实现真实API调用
- 新增登录页面(密码/短信切换)和注册页面
- 替换splash_page中的mock登录为真实状态检查
- 添加token自动注入拦截器到ApiClient
- 配置生产环境API指向Kong网关
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 05:29:48 -08:00
hailin
9fca17e7ed
fix(mining-admin-web): 修复auth API类型定义
...
更新 TypeScript 类型以匹配后端响应格式:
- ApiResponse<T> 包装器
- LoginData 和 ProfileData 接口
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 01:10:05 -08:00
hailin
e28fe56489
fix(mining-admin-web): 适配后端API响应格式
...
后端返回格式为 { success, data: {...} },
修改 login 和 getProfile 解析 response.data.data
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 01:05:55 -08:00
hailin
341e319fd3
feat(mining-admin-web): 配置生产环境API指向Kong网关
...
修改:
1. frontend/mining-admin-web/src/lib/api/client.ts
- 使用环境变量 NEXT_PUBLIC_API_URL 配置 API baseURL
- 开发环境默认使用 /api 代理
2. frontend/mining-admin-web/.env.production (新增)
- NEXT_PUBLIC_API_URL=https://rwaapi.szaiai.com/api/v2/mining-admin
3. backend/api-gateway/kong.yml
- CORS origins 添加 https://madmin.szaiai.com
- CORS origins 添加 http://localhost:3100
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 00:28:17 -08:00
hailin
42e6b5c27c
feat(gateway): 添加2.0服务路由到Kong和nginx配置
...
Kong网关:
- 添加contribution-service-v2 (3020)
- 添加mining-service-v2 (3021)
- 添加trading-service-v2 (3022)
- 添加mining-admin-service (3023)
- 添加auth-service-v2 (3024)
- 添加mining-wallet-service (3025)
Nginx (madmin.szaiai.com):
- 添加/api/代理到mining-admin-service:3023
- 支持CORS预检请求
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 00:22:23 -08:00
hailin
2a09fca728
chore(mining-admin-web): 添加.gitignore文件
...
忽略以下自动生成的文件:
- node_modules/
- .next/
- next-env.d.ts
- *.tsbuildinfo
- .env*.local
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 20:18:35 -08:00
hailin
b0434184ae
feat(mining-admin-web): 添加Nginx配置和Let's Encrypt自动证书
...
- madmin.szaiai.com.conf: Nginx反向代理配置(端口3100)
- install.sh: 一键安装脚本,自动申请Let's Encrypt证书
- 支持HTTP自动重定向到HTTPS
- 配置证书自动续期
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 20:15:50 -08:00
hailin
3f79361fde
feat(mining-admin-web): 添加独立部署脚本和docker-compose配置
...
- deploy.sh: 一键部署脚本(build/start/stop/restart/logs/clean)
- docker-compose.yml: 独立容器化配置,使用rwa-network网络
- 与admin-web的部署方式保持一致
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 20:06:20 -08:00
hailin
821c70bf38
feat(docker): 添加 2.0 系统 Docker 部署支持
...
为所有 2.0 服务添加 Dockerfile 和 docker-compose 配置:
后端服务:
- contribution-service (3020) - 算力服务
- mining-service (3021) - 挖矿服务
- trading-service (3022) - 交易服务
- mining-admin-service (3023) - 管理后台 API
- auth-service (3024) - 用户认证服务
前端服务:
- mining-admin-web (3100) - 管理后台前端
Docker 配置:
- docker-compose.2.0.yml: 独立的 2.0 系统编排文件
- 多阶段构建优化镜像大小
- 健康检查确保服务可用性
- 服务依赖顺序正确
部署脚本更新:
- deploy-mining.sh 使用 docker-compose.2.0.yml
- 添加 mining-admin-web 服务别名 (web, admin-web)
- 更新服务端口配置
使用方式:
cd backend/services
docker-compose -f docker-compose.2.0.yml up -d
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 19:31:02 -08:00
hailin
a17f408653
feat(mining-ecosystem): 添加挖矿生态系统完整微服务与前端
...
## 概述
为榴莲生态2.0添加完整的挖矿系统,包含3个后端微服务、1个管理后台和1个用户端App。
---
## 后端微服务
### 1. mining-service (挖矿服务) - Port 3021
**核心功能:**
- 积分股每日分配(基于算力快照)
- 每分钟定时销毁(进入黑洞)
- 价格计算:价格 = 积分股池 ÷ (100.02亿 - 黑洞 - 流通池)
- 全局状态管理(黑洞量、流通池、价格)
**关键文件:**
- src/application/services/mining-distribution.service.ts - 挖矿分配核心逻辑
- src/application/schedulers/mining.scheduler.ts - 定时任务调度
- src/domain/services/mining-calculator.service.ts - 分配计算
- src/infrastructure/persistence/repositories/black-hole.repository.ts - 黑洞管理
### 2. trading-service (交易服务) - Port 3022
**核心功能:**
- 积分股买卖撮合
- K线数据生成
- 手续费处理(10%买入/卖出)
- 流通池管理
- 卖出倍数计算:倍数 = (100亿 - 销毁量) ÷ (200万 - 流通池量)
**关键文件:**
- src/domain/services/matching-engine.service.ts - 撮合引擎
- src/application/services/order.service.ts - 订单处理
- src/application/services/transfer.service.ts - 划转服务
- src/domain/aggregates/order.aggregate.ts - 订单聚合根
### 3. mining-admin-service (挖矿管理服务) - Port 3023
**核心功能:**
- 系统配置管理(分配参数、手续费率等)
- 老用户数据初始化
- 系统监控仪表盘
- 审计日志
**关键文件:**
- src/application/services/config.service.ts - 配置管理
- src/application/services/initialization.service.ts - 数据初始化
- src/application/services/dashboard.service.ts - 仪表盘数据
---
## 前端应用
### 1. mining-admin-web (管理后台) - Next.js 14
**技术栈:**
- Next.js 14 + React 18
- TailwindCSS + Radix UI
- React Query + Zustand
- ECharts 图表
**功能模块:**
- 登录认证
- 仪表盘(实时数据、价格走势)
- 用户查询(算力详情、挖矿记录、交易订单)
- 系统配置管理
- 数据初始化任务
- 审计日志查看
### 2. mining-app (用户端App) - Flutter 3.x
**技术栈:**
- Flutter 3.x + Dart
- Riverpod 状态管理
- GoRouter 路由
- Clean Architecture (3层)
**功能模块:**
- 首页资产总览
- 实时收益显示(每秒更新)
- 贡献值展示(个人/团队)
- 积分股买卖交易
- K线图与价格显示
- 个人中心
---
## 架构文档
- docs/mining-ecosystem-architecture.md - 系统架构总览
- 服务职责与端口分配
- 数据流向图
- Kafka Topics 定义
- 跨服务关联(account_sequence)
- 配置参数说明
- 开发顺序建议
---
## .gitignore 更新
- 添加 Flutter/Dart 构建文件忽略
- 添加 iOS/Android 构建产物忽略
- 添加 Next.js 构建目录忽略
- 添加 TypeScript 缓存文件忽略
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 17:45:46 -08:00
hailin
d9f9ae5122
chore(mobile-app): 更新开屏静态图片
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 10:42:53 -08:00
hailin
dd1531fbb8
fix(mobile-app): 移除pubspec.yaml中已删除的splash_frames目录
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 10:36:01 -08:00
hailin
57239e81dd
chore(mobile-app): 优化开屏资源和UI文案
...
- 删除36张帧动画图片减小包体积
- 静态开屏图片从3张改为2张
- 将"权益激活"改为"权益已激活"
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 10:29:37 -08:00
hailin
dab4b0674d
fix(mobile-app): 修复引荐列表展开无法显示更多数据的问题
...
- 使用实际总数作为limit参数请求API
- 添加调试日志便于排查
- 优化:已加载全部数据时直接展开不重复请求
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 09:13:07 -08:00
hailin
8eb5b410cc
feat(mobile-app): 引荐列表支持展开/收拢功能
...
- 初始只显示前10条引荐记录
- 超过10人时显示"..."按钮可点击展开全部
- 展开后显示"收起"按钮可点击收拢
- 加载更多时显示loading指示器
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 08:59:03 -08:00
hailin
4ee355a7cd
fix(mobile-app): 开屏图片改为保持原比例不拉伸
...
使用 BoxFit.contain 替代 BoxFit.cover,
图片保持原比例显示,不足部分用黑边填充。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 08:51:26 -08:00
hailin
96695575d5
feat(mobile-app): 启用兑换页面的划转功能
...
移除划转按钮的临时禁用标志,恢复正常功能。
用户点击划转按钮后将跳转到划转页面。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 08:48:45 -08:00
hailin
414fe95d04
feat(mobile-app): 开屏页改为随机静态图片模式
...
- 禁用帧动画,改为显示随机静态图片(3张中随机选1张)
- 显示3秒后自动跳转,保留跳过按钮
- 帧动画代码保留备用,可通过 _useStaticImage 开关切换
- 新增 splash_static 目录存放静态图片
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 08:19:25 -08:00
hailin
fabfbb73fe
fix(mobile-app): 修复开机动画卡住问题
...
问题原因:
1. TelemetryConfig.syncFromRemote() URL拼接错误,导致请求无效路径
2. 遥测配置同步使用await阻塞,即使失败也要等待超时
修复内容:
1. 修正URL拼接:apiBaseUrl已包含/api/v1,不再重复添加
2. 将超时时间从10秒缩短为5秒
3. 将遥测配置同步改为非阻塞,不再await等待
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 08:08:21 -08:00
hailin
ca1bc74b2a
feat(admin-web): 用户钱包分类账明细添加备注列
...
在用户管理页面的钱包分类账明细表格中添加"备注"列,
用于显示转账对象信息,如"转账至 D25XXXXXX"或"来自 D25XXXXXX 的转账"。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 07:20:21 -08:00
hailin
7a4a207bed
feat(mobile-app): 增强合同PDF下载可靠性和用户体验
...
- PDF下载增加10次自动重试机制,使用指数退避策略
- 超时时间延长至300秒,适应大文件和慢网络
- 新增下载进度显示(百分比圆环)
- 失败后显示重试按钮,区分任务加载错误和PDF下载错误
- ApiClient.get方法新增cancelToken和onReceiveProgress参数支持
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 07:12:21 -08:00
hailin
f7b2267583
feat(mobile-app): 临时禁用划转功能
...
划转功能暂时维护中,点击按钮会显示提示信息。
恢复时将 isTransferDisabled 改为 false 即可。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 02:56:26 -08:00
hailin
990f218051
fix(mobile-app): 修复认种订单解析和状态检查问题
...
1. 修复 getMyOrders 解析:兼容后端直接返回数组格式
2. 添加 MINING_ENABLED 订单状态枚举和解析
3. 在 ADOPTION_WIZARD 完成检查中包含 miningEnabled 状态
问题原因:
- 后端返回订单列表格式是直接数组 [...],前端期望的是 {items: [...]}
- 后端返回的 MINING_ENABLED 状态未在前端枚举中定义
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 02:49:31 -08:00
hailin
96a84cc281
fix(mobile-app): 修复认种向导完成后无法返回待办页面的问题
...
问题:认种向导完成后使用 context.go() 跳转到合同签署页面,
替换了整个导航栈,导致合同签署完成后无法返回待办页面继续处理其他待办。
修复:改用 context.push() 跳转到合同签署页面,保留导航栈,
合同签署完成后可以正确返回待办页面。
同时添加了详细的调试日志,便于排查问题。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 02:43:23 -08:00
hailin
1a617e02f8
fix(mobile-app): 将授权申请页面的'伞下'改为'下'
2026-01-09 02:23:20 -08:00
hailin
d1a52e74a0
fix(mobile-app): 修复认种向导待办操作无法正确标记完成的问题
...
问题:用户完成认种并签署合同后,ADOPTION_WIZARD待办操作没有被标记为完成,
导致用户被卡在待办操作页面无法进入App。
原因:原来的检查逻辑只检查是否有"待签合同",当用户已签署合同后,
pendingTasks为空,返回false,导致待办操作无法完成。
修复方案:
- 改为检查用户是否有已支付的认种订单(PAID/FUND_ALLOCATED状态)
- 通过比较订单创建时间和待办操作创建时间来判断
- 订单在待办操作之后创建 → 已完成
- 订单在待办操作之前但相差不超过24小时 → 也认为已完成(兼容延迟)
- 保留待签合同的备用检查逻辑
影响范围:仅影响ADOPTION_WIZARD待办操作的完成检测
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 02:03:22 -08:00
hailin
00264a721e
fix(admin-web): 优化授权页面错误提示,显示后端真实错误信息
...
问题:创建授权失败时只显示"Request failed with status code 400"
用户无法了解失败的真实原因(如用户未种树、授权冲突等)
修复:
- handleCreate和handleRevoke的catch块优先从err.response.data.message提取后端错误
- 后端已有完善的错误提示如"用户尚未认种任何树,无法授权"
- 前端现在能正确显示这些提示帮助管理员了解真实情况
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 21:38:00 -08:00
hailin
c65d02ebea
fix(admin-web): 仅在没有上级时显示总部节点
...
- 有上级时显示祖先节点列表
- 没有上级时才显示"总部"节点
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 05:31:07 -08:00