193 lines
5.1 KiB
Markdown
193 lines
5.1 KiB
Markdown
# 可学AI-skills平台后端
|
||
|
||
## 项目简介
|
||
|
||
可学AI-skills平台是一个基于Spring Boot的智能技能管理系统,提供技能生成、内容管理、用户认证、支付等功能。
|
||
|
||
## 技术栈
|
||
|
||
- **基础框架**:Spring Boot 3.2.2
|
||
- **持久层**:MyBatis 3.0.3
|
||
- **数据库**:MySQL
|
||
- **缓存**:Redis
|
||
- **认证**:Sa-Token 1.38.0
|
||
- **模板引擎**:Thymeleaf
|
||
- **API文档**:Swagger 3.0.0
|
||
- **文件处理**:sevenzipjbinding 16.02-2.01
|
||
- **短信服务**:SMS4J 3.3.5
|
||
- **分布式锁**:Redisson 3.23.5
|
||
- **AI集成**:DeepSeek、GLM-4.6v
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
backend/
|
||
├── .mvn/ # Maven包装器
|
||
├── db/ # 数据库脚本
|
||
├── src/
|
||
│ ├── main/
|
||
│ │ ├── java/com/kexue/skills/ # 主源码
|
||
│ │ │ ├── annotation/ # 自定义注解
|
||
│ │ │ ├── aspect/ # AOP切面
|
||
│ │ │ ├── common/ # 通用工具和常量
|
||
│ │ │ ├── config/ # 配置类
|
||
│ │ │ ├── controller/ # 控制器
|
||
│ │ │ ├── entity/ # 实体类
|
||
│ │ │ ├── exception/ # 异常处理
|
||
│ │ │ ├── interceptor/ # 拦截器
|
||
│ │ │ ├── mapper/ # 数据访问层
|
||
│ │ │ ├── service/ # 服务层
|
||
│ │ │ ├── task/ # 定时任务
|
||
│ │ │ ├── utils/ # 工具类
|
||
│ │ │ └── SkillsApp.java # 应用入口
|
||
│ │ └── resources/ # 资源文件
|
||
│ │ ├── mapper/ # MyBatis映射文件
|
||
│ │ ├── sql/ # SQL脚本
|
||
│ │ ├── static/ # 静态资源
|
||
│ │ ├── templates/ # Thymeleaf模板
|
||
│ │ ├── application-*.yml # 配置文件
|
||
│ │ └── logback-spring.xml # 日志配置
|
||
│ └── test/ # 测试代码
|
||
├── .gitignore # Git忽略文件
|
||
├── Dockerfile # Docker构建文件
|
||
├── README.md # 项目说明
|
||
├── mvnw.cmd # Maven包装器脚本
|
||
└── pom.xml # Maven依赖配置
|
||
```
|
||
|
||
## 核心功能
|
||
|
||
### 1. 用户认证与授权
|
||
- 基于Sa-Token的认证系统
|
||
- 支持账号密码登录
|
||
- 支持手机验证码登录
|
||
- 角色权限管理
|
||
- 防重复提交
|
||
|
||
### 2. 内容管理系统
|
||
- 内容分类管理
|
||
- 内容标签管理
|
||
- 内容发布与管理
|
||
- 内容点赞与浏览统计
|
||
|
||
### 3. 技能生成系统
|
||
- 技能上传与解析(支持RAR等压缩格式)
|
||
- 技能结构分析
|
||
- 技能介绍生成
|
||
|
||
### 4. 支付系统
|
||
- 微信支付集成
|
||
- 支付宝集成
|
||
- 支付订单管理
|
||
|
||
### 5. 账户管理
|
||
- 账户余额管理
|
||
- 积分管理
|
||
- 交易记录
|
||
|
||
### 6. 系统管理
|
||
- 菜单管理
|
||
- 角色管理
|
||
- 字典管理
|
||
- 系统日志
|
||
|
||
### 7. AI集成
|
||
- DeepSeek模型集成
|
||
- GLM-4.6v模型集成
|
||
- 智能内容生成
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
- JDK 17+
|
||
- Maven 3.6+
|
||
- MySQL 5.7+
|
||
- Redis 5.0+
|
||
|
||
### 配置说明
|
||
1. 修改 `application-dev.yml` 文件中的数据库连接信息
|
||
2. 修改 `application.yml` 文件中的Redis连接信息
|
||
3. 修改 `application.yml` 文件中的AI模型API密钥
|
||
4. 修改 `application.yml` 文件中的短信服务配置
|
||
|
||
### 数据库初始化
|
||
1. 执行 `db/create_tables.sql` 创建数据库表
|
||
2. 执行 `db/init_data.sql` 初始化基础数据
|
||
|
||
### 启动项目
|
||
```bash
|
||
# 编译项目
|
||
mvn clean compile
|
||
|
||
# 运行项目
|
||
mvn spring-boot:run
|
||
```
|
||
|
||
### 访问地址
|
||
- 项目首页:http://localhost:8080
|
||
- Swagger文档:http://localhost:8080/doc.html
|
||
|
||
## 主要API
|
||
|
||
### 用户认证
|
||
- `POST /api/login` - 用户登录
|
||
- `POST /api/logout` - 用户登出
|
||
- `GET /api/currentUser` - 获取当前用户信息
|
||
|
||
### 内容管理
|
||
- `GET /api/cms/content/list` - 获取内容列表
|
||
- `POST /api/cms/content/save` - 保存内容
|
||
- `DELETE /api/cms/content/delete` - 删除内容
|
||
|
||
### 技能管理
|
||
- `POST /api/skill/upload` - 上传技能
|
||
- `POST /api/skill/analyze` - 分析技能结构
|
||
- `POST /api/skill/genIntroduce` - 生成技能介绍
|
||
|
||
### 支付管理
|
||
- `POST /api/pay/wx` - 微信支付
|
||
- `POST /api/pay/alipay` - 支付宝支付
|
||
- `GET /api/payment/order/list` - 获取支付订单列表
|
||
|
||
## 部署说明
|
||
|
||
### Docker部署
|
||
1. 构建Docker镜像
|
||
```bash
|
||
docker build -t agent-skills .
|
||
```
|
||
|
||
2. 运行Docker容器
|
||
```bash
|
||
docker run -p 8080:8080 --name agent-skills agent-skills
|
||
```
|
||
|
||
### 生产环境部署
|
||
1. 打包项目
|
||
```bash
|
||
mvn clean package -DskipTests
|
||
|
||
配置文件直接打在jar包内
|
||
```
|
||
|
||
2. 部署jar包
|
||
```bash
|
||
java -jar agentSkills.jar --spring.profiles.active=prod
|
||
或者执行脚本启动
|
||
./start.sh
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
1. 项目使用Redis作为缓存,需要确保Redis服务正常运行
|
||
2. 项目使用阿里云短信服务,需要配置相关参数
|
||
3. 项目使用AI模型API,需要配置相关API密钥
|
||
|
||
## 许可证
|
||
|
||
本项目仅供内部使用,未经授权不得用于商业用途。
|
||
|
||
## 联系方式
|
||
|
||
如有问题,请联系项目维护人员。
|