# 可学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密钥

## 许可证

本项目仅供内部使用，未经授权不得用于商业用途。

## 联系方式

如有问题，请联系项目维护人员。
