feat: 全量更新前后端代码及文档 - 社区/定制/优惠券/活动/会员等模块

This commit is contained in:
Developer
2026-03-21 18:35:41 +08:00
parent a8aaf15bfb
commit 942465b758
590 changed files with 27840 additions and 14720 deletions

View File

@@ -0,0 +1,22 @@
---
auto_execution_mode: 0
description: Review code changes for bugs, security issues, and improvements
---
You are a senior software engineer performing a thorough code review to identify potential bugs.
Your task is to find all potential bugs and code improvements in the code changes. Focus on:
1. Logic errors and incorrect behavior
2. Edge cases that aren't handled
3. Null/undefined reference issues
4. Race conditions or concurrency issues
5. Security vulnerabilities
6. Improper resource management or resource leaks
7. API contract violations
8. Incorrect caching behavior, including cache staleness issues, cache key-related bugs, incorrect cache invalidation, and ineffective caching
9. Violations of existing code patterns or conventions
Make sure to:
1. If exploring the codebase, call multiple tools in parallel for increased efficiency. Do not spend too much time exploring.
2. If you find any pre-existing bugs in the code, you should also report those since it's important for us to maintain general code quality for the user.
3. Do NOT report issues that are speculative or low-confidence. All your conclusions should be based on a complete understanding of the codebase.
4. Remember that if you were given a specific git commit, it may not be checked out and local code states may be different.

317
README.md
View File

@@ -1,161 +1,240 @@
# OpenClaw Skills 数字员工交易平台
# OpenClaw Skills 数字员工交易平台(纯前端版本)
基于 Vue 3 的数字员工交易平台,**无需后端,无需 Java 环境**,所有数据存储在浏览器本地 localStorage 中。
基于 Vue 3 + Spring Boot 3 的全栈数字员工 Skill 交易平台,支持 Skill 浏览、购买(混合支付:积分+微信支付)、退款、评价、邀请奖励等完整交易闭环,并提供功能完善的管理后台。
## 技术栈
- Vue 3
- Vite 5
- Element Plus
- Vue Router 4
- Pinia
- LocalStorage数据持久化
## 项目特点
**无需后端** - 所有业务逻辑在前端实现
**无需 Java** - 不需要 Java 环境
**数据持久化** - 使用 localStorage 保存数据
**完整功能** - 用户、商城、积分、订单全部功能完整
| 层面 | 技术 |
|------|------|
| **前端** | Vue 3.4 + Vite 5 + Pinia + Vue Router 4 + Ant Design Vue 4 + Element Plus + Axios |
| **后端** | Java 17 + Spring Boot 3.2 + MyBatis Plus 3.5.7 + MySQL 8.0 + Redis 7.x |
| **消息队列** | RabbitMQ退款异步处理、充值积分发放、超时提醒 |
| **支付** | 微信支付 V3Native Pay + 退款),支持模拟支付模式 |
| **ID 生成** | Leaf Segment号段模式订单号/退款单号等) |
| **文件存储** | 腾讯云 COS |
| **短信** | 短信验证码(注册/找回密码) |
| **测试** | Vitest前端 |
## 项目结构
```
数字员工/
├── frontend/ # 前端项目(只需启动这个
├── frontend/ # Vue 3 前端52 个页面
│ ├── src/
│ │ ├── data/ # 模拟数据
│ │ │ ── mockData.js # 数据初始化和存储
│ │ ├── service/ # 业务服务层
│ │ │ ── localService.js # 本地服务实现
│ │ ├── api/ # API 接口(已改为本地调用
│ │ ├── components/ # 通用组件
│ │ ├── router/ # 路由配置
│ │ ├── stores/ # 状态管理
│ │ ├── views/ # 页面组件
│ │ ├── App.vue
│ │ ├── views/ # 页面视图
│ │ │ ── home/ # 首页
│ │ ├── skill/ # Skill 商城(列表/详情/搜索/榜单)
│ │ │ ── order/ # 订单(详情/支付/模拟支付)
│ │ │ ├── user/ # 用户中心16 个子页面
│ │ │ ├── admin/ # 管理后台21 个子页面)
│ │ │ ├── help/ # 帮助中心
│ │ ├── customize/ # Skill 定制
│ │ │ ├── join-us/ # 加入我们(开发者申请)
│ │ │ ├── legal/ # 法律条款
│ │ │ └── error/ # 错误页
│ │ ├── stores/ # Pinia 状态管理7 个 store
│ │ ├── service/
│ │ │ ├── apiService.js # Axios API 封装22 个模块)
│ │ │ └── dataAdapter.js # 后端数据归一化
│ │ ├── components/ # UI 组件
│ │ ├── layouts/ # 布局MainLayout + AdminLayout
│ │ ├── router/index.js # 路由配置
│ │ └── main.js
│ ├── index.html
│ ├── package.json
│ └── vite.config.js
│ ├── .env.development # 开发环境变量
│ ├── .env.production # 生产环境变量
│ └── package.json
├── openclaw-backend/ # Spring Boot 后端
│ └── openclaw-backend/
│ ├── src/main/java/com/openclaw/
│ │ ├── module/ # 20 个业务模块
│ │ │ ├── user/ # 用户(注册/登录/短信/微信)
│ │ │ ├── skill/ # SkillCRUD/评价/收藏/分类/榜单)
│ │ │ ├── order/ # 订单(创建/支付/取消/退款)
│ │ │ ├── payment/ # 支付(充值/微信支付/回调/模拟支付)
│ │ │ ├── points/ # 积分(签到/消费/退还/流水)
│ │ │ ├── member/ # 会员等级(成长值/等级配置/权益)
│ │ │ ├── admin/ # 后台管理(综合管理接口)
│ │ │ ├── invite/ # 邀请系统
│ │ │ ├── invoice/ # 发票管理
│ │ │ ├── content/ # 内容管理(轮播图/公告)
│ │ │ ├── activity/ # 活动管理
│ │ │ ├── notification/ # 消息通知
│ │ │ ├── feedback/ # 反馈建议
│ │ │ ├── help/ # 帮助中心
│ │ │ ├── rbac/ # 角色权限管理
│ │ │ ├── log/ # 操作日志
│ │ │ ├── developer/ # 开发者申请
│ │ │ ├── customization/ # Skill 定制需求
│ │ │ ├── share/ # 分享(微信 JS-SDK
│ │ │ └── common/ # 公共(文件上传/配置/统计)
│ │ ├── common/ # 公共基础设施
│ │ │ ├── event/ # 领域事件(退款/充值)
│ │ │ └── mq/ # RabbitMQ消费者/常量/配置)
│ │ ├── config/ # 配置类
│ │ ├── annotation/ # 自定义注解(@RequiresRole 等)
│ │ └── util/ # 工具类
│ ├── src/main/resources/
│ │ ├── application.yml # 应用配置
│ │ └── db/
│ │ ├── init.sql # 数据库初始化
│ │ ├── migration/ # Flyway 迁移脚本9 个)
│ │ └── seed_skills.sql # 种子数据
│ └── pom.xml
├── 后端架构设计/ # 架构设计文档集
├── 产品功能架构设计.md # 产品功能架构设计参考
├── 待实现功能清单.md # 功能完成度跟踪
├── P1低优先级开发计划.md # P1 功能开发计划
├── 全量功能测试计划清单_2026-03-19.md # 测试计划
├── 后端启动指南.md # 后端详细启动文档
└── README.md
```
## 快速启动(仅需前端)
## 快速启动
### 前置要求
- Node.js (推荐 v16 或更高版本)
- npm 或 yarn 或 pnpm
### 启动步骤
| 依赖 | 版本要求 |
|------|---------|
| Node.js | v16+ |
| Java | 17+ |
| MySQL | 8.0+ |
| Redis | 7.x+ |
| RabbitMQ | 3.x+ |
| Maven | 3.6+ |
### 后端启动
```bash
# 1. 初始化数据库
cd openclaw-backend/openclaw-backend
mysql -u root -p < src/main/resources/db/init.sql
# 2. 修改配置(数据库/Redis/RabbitMQ 连接信息、微信支付密钥等)
# 编辑 src/main/resources/application.yml
# 3. 启动后端
mvn spring-boot:run
# 后端运行在 http://localhost:8080
```
> 详细启动步骤请参考 `后端启动指南.md`
### 前端启动
1. 进入前端目录:
```bash
cd frontend
```
2. 安装依赖:
```bash
npm install
```
3. 启动开发服务器:
```bash
npm run dev
# 前端运行在 http://localhost:5173
```
4. 打开浏览器访问:
```
http://localhost:5173
```
### 模拟支付模式
## 测试账号
| 手机号 | 积分 | 说明 |
|--------|------|------|
| 13800138000 | 500 | 演示用户 |
| 13900139000 | 200 | 测试用户 |
密码:任意输入即可(演示用)
项目支持在微信支付未启用时使用模拟支付,可通过 `/mock-pay` 页面完成订单和充值的模拟支付,方便开发调试。
## 功能模块
### 1. 用户系统
- 用户注册/登录
- 个人信息编辑
- 邀请码生成和绑定
### 用户端16 个页面)
### 2. Skill 商城
- Skill 列表展示
- 分类筛选
- 关键词搜索
- Skill 详情查看
- 热门/最新推荐
- 免费/付费 Skill 区分
| 模块 | 功能 |
|------|------|
| **用户系统** | 手机号注册/登录、微信扫码登录、短信验证码、忘记密码、个人资料编辑、头像上传、手机号更换、密码修改 |
| **Skill 商城** | 列表浏览、分类筛选、关键词搜索、Skill 详情、热门榜单(下载量/评分/周/月/总) |
| **订单与支付** | 订单预览(积分+现金混合计算)、下单、微信支付/模拟支付、取消订单、申请退款 |
| **积分系统** | 积分余额、积分流水、每日签到、加入社群奖励、积分充值(梯度套餐)、积分过期(一年有效期)、活动冻结/解冻 |
| **评价与收藏** | Skill 评价/评分、点赞评论、收藏/取消收藏 |
| **邀请系统** | 邀请码生成、绑定邀请码、邀请记录、邀请统计 |
| **发票管理** | 发票申请、发票列表、发票详情 |
| **消息通知** | 通知列表、未读数、标记已读/全部已读 |
| **反馈建议** | 提交反馈、反馈列表、反馈详情 |
| **帮助中心** | 分类浏览、文章搜索、文章详情、标记有用 |
| **其他** | Skill 定制需求提交、开发者申请、用户协议/隐私政策 |
### 3. 积分系统
- **积分获取方式**
- 新用户注册奖励300积分
- 每日签到10积分/天)
- 邀请好友100积分/人 + 好友消费奖励)
- 加入技术交流群50积分
- 充值赠送(多充多送)
- **积分消耗**
- 兑换付费 Skill
- 积分充值
- 积分明细查询
### 管理后台21 个页面)
### 4. 订单管理
- 创建订单
- 支付订单(现金/积分)
- 订单查询
| 模块 | 功能 |
|------|------|
| **数据看板** | 用户/订单/Skill/积分/收入统计、趋势图表 |
| **用户管理** | 用户列表、用户详情、封禁/解封、角色变更 |
| **Skill 管理** | Skill 列表、审核(通过/拒绝)、上下架、推荐/取消推荐、后台创建 Skill |
| **订单管理** | 订单列表、订单详情 |
| **退款管理** | 退款列表、审批通过(触发微信退款+积分退还)、拒绝退款(恢复原订单状态) |
| **评论管理** | 评论列表、删除违规评论 |
| **积分管理** | 积分流水查看、手动调整积分、过期清理每日凌晨2点定时任务 |
| **内容管理** | 轮播图 CRUD、公告 CRUD、活动 CRUD |
| **发票管理** | 发票列表、发票审核/开具 |
| **帮助中心管理** | 分类 CRUD、文章 CRUD |
| **反馈管理** | 反馈列表、详情查看、回复、状态变更 |
| **定制需求管理** | 定制需求列表、状态处理 |
| **开发者管理** | 开发者申请列表、审核通过/拒绝 |
| **RBAC 权限** | 角色 CRUD、权限列表、角色权限配置、管理员角色配置 |
| **操作日志** | 操作日志列表查询 |
| **系统设置** | 系统配置 |
### 5. 个人中心
- 个人信息管理
- 每日签到
- 加入社群
- 邀请好友
- 充值入口
### 后端 API 概览29 个 Controller
## 数据存储
| 分类 | Controller | 说明 |
|------|-----------|------|
| 用户 | UserController, WechatAuthController | 注册/登录/个人信息/微信授权 |
| Skill | SkillController, CategoryController, SkillFavoriteController | 商城/分类/收藏 |
| 订单 | OrderController | 下单/支付/取消/退款 |
| 支付 | PaymentController, MockPaymentController | 充值/微信回调/模拟支付 |
| **积分** | PointsController | 余额/流水/签到/过期清理/活动冻结 |
| **会员** | MemberController | 等级详情/成长记录/管理员调整 |
| 邀请 | InviteController | 邀请码/绑定/记录 |
| 内容 | BannerController, AnnouncementController, ActivityController | 轮播图/公告/活动(公开) |
| 发票 | InvoiceController | 发票申请/列表 |
| 通知 | NotificationController | 消息通知 |
| 反馈 | FeedbackController | 反馈建议 |
| 帮助 | HelpController, AdminHelpController | 帮助中心 |
| 分享 | ShareController | 微信 JS-SDK 签名 |
| 开发者 | DeveloperController | 开发者申请 |
| 定制 | CustomizationController | Skill 定制需求 |
| 管理后台 | AdminController, AdminActivityController | 综合后台管理 |
| RBAC | RbacController | 角色权限管理 |
| 日志 | OperationLogController | 操作日志 |
| 公共 | ConfigController, FileUploadController, StatsController | 配置/上传/统计 |
所有数据保存在浏览器 localStorage 中,包括:
- 用户数据
- Skill 数据
- 积分记录
- 订单数据
### 消息队列RabbitMQ
**注意**:清除浏览器缓存会重置所有数据!
| 队列 | 用途 |
|------|------|
| `openclaw.recharge.paid` | 充值成功 → 积分发放 |
| `openclaw.refund.approved` | 退款审批通过 → 微信退款 + 积分退还 + 退款单完成 |
| `openclaw.refund.timeout.remind` | 退款超时 → 管理员提醒48h 延迟队列) |
## 测试数据说明
## 项目文档
系统预置了以下测试数据:
- 2个测试用户
- 6个示例 Skill包含免费和付费
- 完整的积分记录
- 示例订单
| 文档 | 说明 |
|------|------|
| `后端启动指南.md` | 后端详细启动配置文档 |
| `待实现功能清单.md` | 功能完成度跟踪Phase 1~3 |
| `产品功能架构设计.md` | 产品功能架构设计参考 |
| `P1低优先级开发计划.md` | P1 优先级功能开发计划 |
| `全量功能测试计划清单_2026-03-19.md` | 测试计划清单 |
| `后端架构设计/` | 后端架构设计文档集 |
| `openclaw-backend/API_EXAMPLES.md` | API 测试示例curl 命令) |
## 充值档位
## 当前状态
| 充值金额 | 赠送积分 | 总计获得 |
|----------|----------|----------|
| ¥10 | +10 | 20积分 |
| ¥50 | +60 | 110积分 |
| ¥100 | +150 | 250积分 |
| ¥500 | +800 | 1300积分 |
| ¥1000 | +2000 | 3000积分 |
> 更新日期2026-03-21
## 技术亮点
| 阶段 | 完成度 | 说明 |
|------|--------|------|
| Phase 1 MVP 核心 | ~98% | 用户/商城/积分/支付/混合支付/后台管理基本完成 |
| Phase 2 核心完善 | ~90% | 内容管理/发票/榜单/RBAC/操作日志/帮助中心/反馈/退款完善/活动管理/积分过期冻结已完成 |
| Phase 3 运营深化 | ~10% | 会员等级体系已完成;优惠券/活动系统/风控等待做 |
1. **完整的业务逻辑** - 所有后端逻辑完整迁移到前端
2. **数据持久化** - 使用 localStorage 保存数据
3. **响应式设计** - 适配不同屏幕尺寸
4. **组件化架构** - 代码清晰易维护
5. **模拟数据完整** - 包含真实的业务场景
**近期修复与新增**
- 会员等级体系(普通→白银→金卡→钻石,成长值自动增长,签到倍率/积分折扣权益,管理员手动调整,安全审计修复)
- 积分过期 + 冻结机制(一年有效期、批次追踪、活动冻结/解冻、定时过期清理、前端冻结/过期状态展示)
- 退款功能全链路修复(现金退款/积分退还/状态流转/MQ事务一致性/operatorId 记录)
- 定制需求管理前后端状态值统一
## 注意事项
1. 数据存储在浏览器 localStorage 中,清除缓存会丢失数据
2. 推荐使用 Chrome/Edge/Firefox 浏览器
3. 这是演示版本,实际部署建议连接真实后端
**待做事项**(详见 `待实现功能清单.md`
- 支付回调可靠性验证
- 邀请海报生成
- 手机号绑定/更换完善
- Phase 3 全部功能

View File

@@ -1 +0,0 @@
2

View File

@@ -1 +0,0 @@
34591:1773712210907_6388_wkaj9y2rqd8k:1773720311136

View File

@@ -1 +0,0 @@
6.7.6

View File

@@ -1 +0,0 @@
334ea9f170811cb7935ebd629bc50cde

View File

@@ -1,2 +0,0 @@
@echo off
"%~dp0codechat.exe" %*

View File

@@ -1 +0,0 @@
& "$PSScriptRoot\codechat.exe" @args

View File

@@ -0,0 +1,2 @@
# 开发环境 API 基础地址
VITE_API_BASE_URL=http://localhost:8080/api/v1

2
frontend/.env.production Normal file
View File

@@ -0,0 +1,2 @@
# 生产环境 API 基础地址
VITE_API_BASE_URL=/api/v1

Some files were not shown because too many files have changed in this diff Show More