hailin
ca95c1decf
fix(admin-web): 修复通知表单类型错误
...
为 priority 和 targetType 添加正确的类型断言
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:57:38 -08:00
hailin
4b92173e9e
fix(admin-web): 修复通知页面 SCSS 变量名
...
使用正确的变量名:
- $bg-card -> $card-background
- $shadow-card -> $shadow-base
- $text-tertiary -> $text-disabled
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:53:15 -08:00
hailin
5d0264db92
feat(admin-web): 添加通知管理功能
...
- 创建通知管理 API 服务 (notificationService.ts)
- 添加通知列表页面,支持创建/编辑/删除/启用禁用
- 添加侧边栏"通知管理"菜单入口
- 支持按类型筛选通知
- 表单支持设置发布时间和过期时间
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:46:33 -08:00
hailin
19bd804a21
feat(frontend): 前端时间显示统一转换为本地时间
...
- mobile-app: 新增 DateTimeUtils 工具类处理 UTC -> 本地时间转换
- mobile-app: 修改 ledger_detail_page 和 profile_page 使用本地时间
- admin-web: 添加 dayjs 自动转换注释说明
- mobile-upgrade: 优化 toLocaleString 格式化选项
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 19:45:51 -08:00
hailin
75606687eb
chore(docker): 为前端服务添加时区配置
...
统一 Asia/Shanghai 时区:
- admin-web
- mobile-upgrade
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:35:45 -08:00
hailin
21692bb1f2
fix(admin-web): update package-lock.json for Next.js 15.1.11
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 00:58:59 -08:00
hailin
000e337dc3
fix(admin-web): lock Next.js to exact version 15.1.11 for CVE-2025-55182 fix
...
Remove ^ to prevent npm from installing vulnerable 15.5.x versions
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 00:55:03 -08:00
hailin
4e52b53657
fix(admin-web): upgrade Next.js to 15.1.11 for CVE-2025-55182 security patch
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 00:31:59 -08:00
hailin
f832a1bc74
fix(admin-web): 修复用户数据获取时 response.data undefined 问题
...
apiClient 响应拦截器已经解包了 response.data,service 和 hooks 层
不需要再次访问 .data 属性,否则会得到 undefined。
修复:
- useUsers/useUserDetail/useUserStats hooks 直接返回 service 结果
- userService 返回类型改为直接数据类型而非 ApiResponse 包装
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 03:34:43 -08:00
hailin
d38e627a0a
fix(admin-web): 优化用户管理页面的错误和空数据提示
...
- 错误状态显示详细错误信息而非通用提示
- 空数据状态明确说明"暂无用户数据,用户注册后会自动同步到此列表"
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 03:28:12 -08:00
hailin
7896be6062
fix(admin-web): 修复 authSlice 的 REHYDRATE 类型错误
...
使用 addMatcher 替代 addCase 处理 REHYDRATE action
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 00:35:03 -08:00
hailin
79768079bf
feat(admin-web): 添加 redux-persist 实现登录状态持久化
...
- 安装 redux-persist 依赖
- 配置 persistReducer 持久化 auth slice 到 localStorage
- 添加 PersistGate 确保 rehydration 完成后再渲染
- 处理 REHYDRATE action 恢复认证状态
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 22:21:01 -08:00
hailin
f20643599e
fix: 修复多个服务的 TypeScript 编译错误
...
- admin-service: 添加 kafkajs 依赖,修复 SystemConfigEntity null vs undefined 类型
- authorization-service: 修复 selfPlantingCount 属性名,修复 AuthorizationRole factory 参数
- identity-service: 修复测试文件 accountSequence 类型(number -> string)
- admin-web: 在 authSlice 中添加 refreshToken 支持
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 06:29:49 -08:00
hailin
943fd9efe9
chore: 提交所有未提交的修改
...
包括:
- admin-service: 系统配置功能
- authorization-service: 自助授权申请功能
- planting-service: 资金分配服务
- reward-service: 奖励计算服务
- admin-web: 用户管理和设置页面
- mobile-app: 授权、认证、路由等功能
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 06:09:43 -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
f43124894d
fix(admin-web): 登录页面改用真实 API 并添加调试日志
...
- 移除模拟登录,改为调用 identity-service /v1/auth/login
- 添加详细的 console.log 日志用于调试
- 记录 API URL、请求数据、响应和错误信息
- 移除不存在的 /register 页面链接
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 04:58:29 -08:00
hailin
b6bb772b0e
fix(admin-web): 修复生产环境 API 地址为 rwaapi.szaiai.com
2025-12-19 04:23:29 -08:00
hailin
917e3094a2
fix(api-gateway,admin-web): 修复仪表板API路由配置
...
Kong 网关:
- 添加 /api/v1/dashboard 路由到 reporting-service
Admin-Web 前端:
- 修复所有 API endpoints 添加 /v1 前缀
- 确保与 Kong 路由配置一致
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 04:21:53 -08:00
hailin
9d693b743b
fix(dashboard): 修复 ActivityType 类型不兼容错误
...
将 RecentActivity 组件的 ActivityItem 接口替换为
使用统一的 DashboardActivity 类型,确保类型一致性。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 02:41:37 -08:00
hailin
bd5250c7a7
fix(scss): 添加缺失的语义化颜色变量别名
...
添加 $color-bg-secondary, $color-bg-tertiary, $color-border,
$color-text-secondary, $color-text-tertiary 变量别名,
修复 dashboard.module.scss 和 TrendChart.module.scss 构建错误。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 02:31:14 -08:00
hailin
ca619bff0b
feat(admin): 实现用户管理功能完整前后端架构
...
## 概述
为 admin-web 用户管理页面实现完整的前后端架构,采用事件驱动 CQRS 模式,
通过 Kafka 事件同步用户数据到本地物化视图,避免跨服务 HTTP 调用。
## admin-service 后端变更
### 数据库 Schema
- UserQueryView: 用户查询视图表 (通过 Kafka 事件同步)
- EventConsumerOffset: 事件消费位置追踪
- ProcessedEvent: 已处理事件记录 (幂等性)
### 新增组件
- IUserQueryRepository: 用户查询仓储接口
- UserQueryRepositoryImpl: 用户查询仓储实现
- UserEventConsumerService: Kafka 事件消费者
- UserController: 用户管理 API 控制器
### API 端点
- GET /admin/users: 用户列表 (分页/筛选/排序)
- GET /admin/users/🆔 用户详情
- GET /admin/users/stats/summary: 用户统计
## identity-service 变更
- 新增 UserProfileUpdatedEvent 事件
- updateProfile 方法现在会发布事件
## admin-web 前端变更
- userService: 用户 API 服务封装
- useUsers/useUserDetail: React Query hooks
- 用户管理页面接入真实 API
- 添加加载骨架屏/错误重试/空数据提示
## 架构特点
- CQRS: 读从本地视图,写触发事件
- 事件驱动: Kafka 事件同步,微服务解耦
- Outbox 模式: 可靠事件发布
- 幂等性: ProcessedEvent 防重复处理
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 02:29:11 -08:00
hailin
900db13e8d
feat(admin-web): 实现 Dashboard 页面真实 API 接入
...
## 概述
将 admin-web Dashboard 页面从模拟数据改为真实 API 调用,
使用 React Query 实现数据获取、缓存和自动刷新。
## 新增文件
- dashboardService.ts: Dashboard API 服务封装
- useDashboard.ts: React Query hooks
- dashboard.types.ts: Dashboard 类型定义
## API 接入
- /dashboard/stats: 统计卡片(总认种量、总用户数、省/市公司数)
- /dashboard/charts: 趋势图表(支持 7d/30d/90d 周期切换)
- /dashboard/region: 区域分布
- /dashboard/activities: 最近活动
## UI 优化
- 添加加载骨架屏
- 添加错误重试机制
- 添加空数据提示
- 优化图表周期切换交互
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 00:31:49 -08:00
hailin
6dd7e64a95
feat(frontend): 多项功能改进
...
- 将所有 USDT 文本替换为 积分
- 监控页面:将"挖矿待开启"改为"开启监控",开启时显示关闭按钮
- 我的伞下:树图默认居中显示
- 树图节点:长按查看详情(序列号、认种数、直推人数)
- 分享页面:显示推荐码并支持复制
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 04:04:21 -08:00
hailin
0c00382a98
fix: convert deploy.sh CRLF to LF and add executable permission
...
- Convert Windows CRLF line endings to Unix LF for all deploy.sh files
- Add executable permission to all deploy.sh scripts
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-07 07:01:13 -08:00
hailin
e76adcbe8d
.
2025-12-07 14:56:13 +00: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
17ff0d951e
fix: 修复 docker-compose.yml 中所有服务的健康检查
...
问题:
- docker-compose.yml 的 healthcheck 覆盖了 Dockerfile 的 HEALTHCHECK
- 使用 wget 而不是 curl
- 健康检查 URL 不正确,导致所有服务显示 unhealthy
修复:
1. 统一使用 curl -f 代替 wget
2. 修正所有服务的健康检查 URL:
- identity-service: /health → /api/v1/health
- wallet-service: /health → /api/v1/health
- backup-service: /health ✓ (保持不变)
- planting-service: /health → /api/v1/health
- referral-service: /health ✓ (保持不变)
- reward-service: /health ✓ (保持不变)
- mpc-service: /api/v1/health ✓ (已正确,改用 curl)
- leaderboard-service: /health → /api/health
- reporting-service: /health → /api/v1/health
- authorization-service: /health ✓ (保持不变,改用 curl)
3. 统一 timeout 为 3s (原来是 10s)
4. admin-web: 优化 timeout 为 3s
Docker HEALTHCHECK 机制:
- 在容器内部执行 curl localhost:PORT/path
- 不经过 Nginx 或外部网络
- 需要与服务实际端点匹配
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:36:38 -08:00
Developer
51d49a5fa9
fix(admin-web): 改用 curl 进行健康检查
...
- 将 wget 改为 curl (更通用)
- 简化健康检查命令: curl -f
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:07:22 -08:00
Developer
82aaa80906
fix(admin-web): 修复 Docker 健康检查失败问题
...
- 在 Dockerfile runner 阶段安装 wget
- Alpine 镜像默认不包含 wget,导致健康检查失败
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:06:30 -08:00
Developer
5a6d4f98c1
docs(admin-web): 添加项目 README 文档
...
- 完整的本地开发指南
- Docker 部署使用说明
- Git 工作流部署流程
- Nginx 配置引导
- 项目结构说明
- 常见问题解答
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:01:03 -08:00
Developer
e2047cc2c3
docs(admin-web): 添加 Nginx 完整安装脚本和文档
...
- install.sh: 从零开始的一键安装脚本 (系统更新、Nginx、Certbot、SSL)
- README.md: 详细的手动安装步骤和常用命令
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 08:33:03 -08:00
Developer
7fcedf7e08
feat(admin-web): 添加 Docker 管理脚本
...
- build.sh: 构建 Docker 镜像
- start.sh: 启动服务
- stop.sh: 停止服务
- restart.sh: 重启服务
- logs.sh: 查看实时日志
- status.sh: 查看服务状态
- health.sh: 健康检查
- clean.sh: 清理容器和镜像
- deploy.sh: 一键部署 (构建+启动)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 08:24:20 -08:00
Developer
40e0caaad5
feat(admin-web): 添加 Docker 一键部署方案
...
- 添加多阶段构建 Dockerfile,优化镜像大小
- 添加 docker-compose.yml 编排文件
- 添加 .dockerignore 优化构建上下文
- 添加 deploy.sh 一键部署脚本
- 添加健康检查 API (/api/health)
- 添加 Nginx 反向代理配置 (rwaadmin.szaiai.com)
- 添加 Let's Encrypt SSL 证书配置脚本
- 更新 next.config.ts 启用 standalone 输出模式
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 08:21:41 -08:00
hailin
1296bd607c
fix: 修复登录表单验证错误显示重叠问题
...
- 重构登录表单结构,使用 fieldWrapper 包裹输入框和错误信息
- 修复验证错误消息与输入框重叠的布局问题
- 更新依赖版本
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 02:19:58 -08:00
hailin
ef5e9aec3f
.
2025-11-26 02:09:53 -08:00
hailin
f6ede89b18
PC Web App draft 0.1 Okay.
2025-11-26 01:58:34 -08:00
hailin
ee55dc0def
.
2025-11-25 10:29:24 +08:00