# Wanyue-knowledge-payment
**Repository Path**: lok79/wanyue-knowledge-payment
## Basic Information
- **Project Name**: Wanyue-knowledge-payment
- **Description**: 一个springboot的集成阿里云点播,直播的知识付费项目
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-05-03
- **Last Updated**: 2026-05-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Wanyue Knowledge Payment
知识付费项目,包含一个整合后的 Spring Boot 后端和三个前端应用:
- `user-app`:用户端 H5
- `admin-web`:管理后台
- `teacher-web`:讲师后台
项目当前使用仓库内置脚本统一启动,适合本地联调、开发和上传到 Gitee / GitHub 后的协作说明。
## 先看这里
如果你是第一次拉取项目,请优先阅读:
👉 [技术栈、版本号与配置说明:TECH-CONFIG.md](./TECH-CONFIG.md)
这份文档集中说明了项目使用的后端/前端技术版本、基础 `.env` 配置、短信/微信登录/OSS/VOD/AI/支付/直播等扩展配置,以及每个第三方服务应该去哪个官网申请。
## 项目截图
## 技术栈
- 后端:Java 17、Spring Boot 3.2、Maven、MySQL
- 用户端:Vue 3、Pinia、Vite
- 管理端 / 讲师端:Vue 3、Pinia、Element Plus、Vite
## 目录结构
```text
.
├─ backend/ # Spring Boot 后端与各业务模块
├─ frontend/
│ ├─ user-app/ # 用户端
│ ├─ admin-web/ # 管理后台
│ └─ teacher-web/ # 讲师后台
├─ scripts/
│ ├─ ai/ # AI 相关脚本
│ └─ dev/ # 本地开发启动脚本
├─ .env.example # 后端与通用环境变量模板
├─ .env.basic.example # 仅基础能力启动的环境变量模板
├─ .env.player.example # AliPlayer 环境变量模板
├─ TECH-CONFIG.md # 技术栈、版本号、基础/扩展配置说明
├─ DEV-START.md # 开发启动补充说明
├─ run-dev.cmd # 一键重启全部服务
└─ stop-dev.cmd # 一键停止全部服务
```
## 环境要求
启动前请确保本机已安装并可直接在命令行使用:
- Java 17
- Maven 3.9+
- Node.js 18+(建议 LTS)
- npm
- MySQL 8.x
建议在 PowerShell 中验证:
```powershell
java -version
mvn -version
node -v
npm -v
```
## 启动前配置
### 1. 初始化数据库结构
项目现在只保留一份最终数据库脚本:
- `backend/sql/init-schema.sql`
这份脚本会完成:
- 创建数据库 `wanyue_knowledge_payment`
- 创建全部业务表数据和索引
执行方式示例:
```powershell
mysql -u root -p < backend/sql/init-schema.sql
```
### 2. 配置后端环境变量
将根目录的 `.env.example` 复制为 `.env`,并至少补齐这些值:
```env
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_DATABASE=wanyue_knowledge_payment
MYSQL_USERNAME=root
MYSQL_PASSWORD=你的数据库密码
JWT_SECRET=你自己的JWT密钥
```
按你使用的功能,再继续补齐:
- 短信:`WANYUE_SMS_*`
- 微信登录:`WANYUE_WECHAT_*`
- OSS / VOD:`WANYUE_OSS_*`、`WANYUE_VOD_*`
- 腾讯混元:`WANYUE_TENCENT_HUNYUAN_*`
- 微信支付 / 支付宝:`WANYUE_WECHAT_PAY_*`、`ALIPAY_*`
如果某个第三方能力你暂时不用,可以先不填对应配置,但相关功能将不可用。
如果只想验证“不接短信、支付、OSS、VOD、AI、真实直播”等扩展能力时能否启动,可以先使用 `.env.basic.example`:
```powershell
Copy-Item .env.basic.example .env -Force
# 然后编辑 .env,至少填写 MYSQL_PASSWORD
```
完整的技术栈版本、配置项来源和第三方申请入口见 [TECH-CONFIG.md](./TECH-CONFIG.md)。
### 3. 配置 AliPlayer(如需视频播放授权)
将根目录的 `.env.player.example` 复制为 `.env.player`,并填写:
```env
ALIPLAYER_LICENSE_DOMAIN=你的授权域名
ALIPLAYER_LICENSE_KEY=你的播放器授权 Key
```
启动脚本会自动读取 `.env.player`,并生成本地运行时配置文件,不会提交到 Git。
### 4. 安装前端依赖
首次启动前请分别安装三个前端目录的依赖:
```powershell
cd frontend\user-app
npm install
cd ..\admin-web
npm install
cd ..\teacher-web
npm install
```
### 5. 微信支付证书文件(如需支付)
如果启用了微信支付,确保商户私钥文件存在,并让 `.env` 中的路径与本地文件一致,例如:
```env
WANYUE_WECHAT_PAY_PRIVATE_KEY_PATH=./cert/apiclient_key.pem
```
同时不要将证书、私钥、`.env`、`.env.player` 提交到 Git。
### 6. 真实直播推流 / 拉流接入
当前仓库未内置某一家云直播厂商的自动推流 / 拉流地址生成能力。
如果你要接入真实直播,需要自行接入直播云服务,并为每个直播场次生成并保存以下字段:
- `pushUrl`:讲师推流地址
- `playUrl`:用户观看拉流地址
- `replayUrl`:直播回放地址,可选
项目现有直播业务流程、直播房间模型和前端页面已经预留了这些字段,接入完成后可以直接复用现有直播管理、直播广场、直播间和聊天逻辑。
需要注意的是:当前仓库明确已接好的媒体能力是 `阿里云 VOD` 和 `AliPlayer`;真实直播推流 / 拉流本身仍需要你自行补充直播云接入层。
## 启动方式
### 一键启动 / 重启全部服务
在仓库根目录执行:
```powershell
.\run-dev.cmd
```
这个命令会:
- 自动读取 `.env`
- 自动读取 `.env.player`
- 自动停止已启动的服务
- 自动重新构建后端并启动全部应用
### 仅重启后端
```powershell
.\run-dev.cmd -BackendOnly
```
### 仅重启后端且跳过构建
```powershell
.\run-dev.cmd -BackendOnly -SkipBuild
```
### 仅重启前端
```powershell
.\run-dev.cmd -FrontendOnly
```
### 仅停止后端
```powershell
.\stop-dev.cmd -BackendOnly
```
### 停止全部服务
```powershell
.\stop-dev.cmd
```
### 仅停止前端
```powershell
.\stop-dev.cmd -FrontendOnly
```
## 默认端口
- 后端:`http://localhost:8080`
- 用户端:`http://localhost:5173`
- 管理后台:`http://localhost:5174`
- 讲师后台:`http://localhost:5175`
## 日志与状态
- 日志目录:`.dev/logs/`
- 运行状态:`.dev/run/state.json`
如果服务启动异常,优先查看对应 `.out.log` 和 `.err.log`。
## 常见问题
### 前端无法停止 / 提示 `Access is denied`
这通常表示之前的前端 `node` 进程是由更高权限的终端启动的。请使用管理员身份打开 PowerShell,再运行:
```powershell
.\run-dev.cmd
```
### 后端启动后接口全是 500
优先检查:
- `.env` 是否存在
- `MYSQL_PASSWORD` 是否正确
- MySQL 服务是否已启动
- 是否已经执行 `backend/sql/init-schema.sql`
### 端口被占用
当前前端开发服务器启用了 `strictPort: true`。如果 `5173`、`5174`、`5175` 或 `8080` 被占用,启动会失败,请先释放对应端口。
## 安全说明
- 不要提交 `.env`
- 不要提交 `.env.player`
- 不要提交证书、私钥、支付密钥、云服务密钥
- 上传 Gitee / GitHub 前建议再次运行 `gitleaks`
## 相关文档
- 开发启动补充说明:[DEV-START.md](./DEV-START.md)
- 技术栈与配置说明:[TECH-CONFIG.md](./TECH-CONFIG.md)
- 后端补充说明:[backend/README-M01.md](./backend/README-M01.md)
- 用户端补充说明:[frontend/user-app/README-M01.md](./frontend/user-app/README-M01.md)