# 予书管理系统

基于 Spring Boot + Vue3 前后端分离的企业级管理系统

---

## 项目简介

予书管理系统是一套现代化的企业级后台管理解决方案，采用前后端分离架构，提供完整的权限管理、系统监控、开发工具等基础功能。系统界面采用玻璃拟态（Glassmorphism）设计风格，支持深色/浅色主题切换。

---

## 系统架构

```
yushu/
├── yushu-backend/          # 后端服务（Spring Boot）
│   ├── yushu-admin/        # 主应用模块
│   ├── yushu-common/       # 通用模块
│   ├── yushu-framework/    # 框架核心
│   ├── yushu-generator/    # 代码生成器
│   ├── yushu-quartz/       # 定时任务模块
│   ├── yushu-system/       # 系统模块
│   └── sql/                # 数据库脚本
└── yushu-uivue3/           # 前端应用（Vue3）
    ├── src/
    │   ├── api/            # API 接口
    │   ├── components/     # 公共组件
    │   ├── views/          # 页面视图
    │   └── ...
    └── ...
```

---

## 技术栈

### 后端

| 技术 | 说明 |
|------|------|
| Spring Boot 3.5 | 基础框架 |
| Spring Security | 安全框架 |
| MyBatis | ORM 框架 |
| MySQL | 数据库 |
| Redis | 缓存 |
| JWT | 身份认证 |
| Quartz | 定时任务 |

### 前端

| 技术 | 说明 |
|------|------|
| Vue 3 | 前端框架 |
| Element Plus | UI 组件库 |
| Vite | 构建工具 |
| Pinia | 状态管理 |
| Vue Router | 路由管理 |

---

## 环境要求

### 后端环境
- JDK 17+
- Maven 3.6+
- MySQL 5.7+
- Redis 3.0+

### 前端环境
- Node.js 16.0+
- npm 8.0+

---

## 快速部署

### 1. 数据库初始化

```sql
-- 创建数据库
CREATE DATABASE yushu DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
```

**必须导入**：
```bash
cd yushu-backend

# 系统核心数据库
mysql -u root -p yushu < sql/ys_20250522.sql

# 定时任务模块
mysql -u root -p yushu < sql/quartz.sql
```

**可选模块**：
```bash
# AI模块
mysql -u root -p yushu < sql/ai.sql

# 邮箱模块
mysql -u root -p yushu < sql/mail.sql

# 文件模块
mysql -u root -p yushu < sql/file.sql

# 消息模块
mysql -u root -p yushu < sql/message.sql

# 错误日志模块
mysql -u root -p yushu < sql/error-log.sql
```

### 2. 后端部署

```bash
# 进入后端目录
cd yushu-backend

# 修改配置文件
# yushu-admin/src/main/resources/application-druid.yml  (数据库配置)
# yushu-admin/src/main/resources/application.yml        (Redis配置)

# 编译打包
mvn clean package -Dmaven.test.skip=true

# 运行
cd yushu-admin/target
java -jar yushu-admin.jar
```

后端访问地址：http://localhost:8080

### 3. 前端部署

```bash
# 进入前端目录
cd yushu-uivue3

# 安装依赖
npm install

# 开发环境运行
npm run dev

# 生产环境构建
npm run build:prod
```

前端访问地址：http://localhost:80

### 4. 默认账号

- 用户名：admin
- 密码：admin123

---

## 生产环境部署

### 后端部署

```bash
# 打包
mvn clean package -Dmaven.test.skip=true

# 后台运行
nohup java -jar yushu-admin.jar > yushu.log 2>&1 &
```

### 前端部署（Nginx）

```nginx
server {
    listen       80;
    server_name  your-domain.com;

    location / {
        root   /usr/share/nginx/html/dist;
        index  index.html;
        try_files $uri $uri/ /index.html;
    }

    location /prod-api/ {
        proxy_pass http://localhost:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
```

### Docker 部署

后端 Dockerfile：
```dockerfile
FROM openjdk:17-jdk-alpine
VOLUME /tmp
COPY yushu-admin.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
```

```bash
# 构建镜像
docker build -t yushu-backend .

# 运行容器
docker run -d -p 8080:8080 --name yushu-backend yushu-backend
```

---

## 内置功能

### 系统管理
- 用户管理：系统用户配置与权限分配
- 角色管理：角色权限分配，支持数据权限
- 菜单管理：配置系统菜单、操作权限、按钮权限
- 部门管理：组织机构树形结构管理
- 岗位管理：用户职务配置
- 字典管理：系统常用固定数据维护
- 参数管理：系统动态配置参数
- 通知公告：系统通知信息发布
- 文件管理：系统文件上传与管理
- 图标管理：系统图标资源管理

### 系统监控
- 在线用户：当前活跃用户监控，支持强制下线
- 定时任务：任务调度管理与执行日志
- 操作日志：系统操作日志记录与查询
- 登录日志：用户登录记录与异常查询
- 服务监控：CPU、内存、磁盘、JVM 信息
- 缓存监控：Redis 缓存信息与统计
- 数据源监控：数据库连接池状态监控

### 开发工具
- 代码生成：根据数据库表生成前后端代码
- 表单构建：可视化表单设计器
- 系统接口：Swagger API 接口文档

### 可选模块
- AI 模块：集成多家 AI 厂商（智谱、Kimi、OpenAI 等），支持流式输出、多轮对话
- 邮箱模块：系统邮件发送，支持模板配置
- 文件模块：文件上传与管理，支持本地/云存储
- 消息模块：站内消息与通知功能
- 错误日志模块：前端错误日志收集与分析

---

## 目录说明

| 目录 | 说明 |
|------|------|
| yushu-backend | 后端服务，详见 [后端说明](./yushu-backend/README.md) |
| yushu-uivue3 | 前端应用，详见 [前端说明](./yushu-uivue3/README.md) |

---

## 致谢

本项目基于 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 进行二次开发，感谢若依团队的开源贡献。
