# Resource **Repository Path**: zhupy123/resource ## Basic Information - **Project Name**: Resource - **Description**: 资源分享管理系统(毕业设计) 轻量级网盘项目,支持无压缩链接分享资源(浏览器预览/下载),集成AIGC文生文档、文生视频功能,完成核心开发。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: resource - **Homepage**: http://www.finalnell.ink - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-23 - **Last Updated**: 2026-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Resource 资源管理系统 > 基于若依 RuoYi v3.9.0 改进的资源管理系统,专注于文件存储、分享、预览等核心功能,适合个人和团队使用。 --- ## 📖 项目简介 **Resource** 是一个功能完整的资源管理系统,采用 Spring Boot + Vue 3 前后端分离架构。项目基于若依框架进行深度改进,新增了完整的文件管理、资源分享、在线预览等功能,保留了权限管理、用户管理等核心功能,适合作为个人云盘、团队协作的毕业设计项目。 ### ✨ 核心特性 - **文件管理**:支持多种文件类型上传、分类管理、在线预览 - **资源分享**:灵活的分享机制,支持密码、时效、次数限制 - **权限控制**:基于 JWT 的认证系统,完善的用户权限管理 - **在线预览**:支持图片、文档、音视频等多种格式在线预览 - **存储统计**:实时统计用户存储使用情况,支持容量管理 - **响应式设计**:现代化 UI 设计,完美适配桌面和移动端 --- ## 🏗️ 技术栈 ### 后端技术 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.5.4 | 核心框架 | | Spring Security | 3.5.4 | 权限认证 | | MyBatis | 3.0.4 | ORM 框架 | | MySQL | 8.2.0 | 数据库 | | Redis | - | 缓存存储 | | JWT | 0.9.1 | Token 认证 | | Druid | 1.2.23 | 数据库连接池 | | Knife4j/Swagger | 3.0.0 | API 文档 | ### 前端技术 | 技术 | 版本 | 说明 | |------|------|------| | Vue | 3.5.22 | 前端框架 | | Element Plus | 2.11.5 | UI 组件库 | | Vite | 7.1.11 | 构建工具 | | Pinia | 3.0.3 | 状态管理 | | Axios | 1.12.2 | HTTP 客户端 | | Vue Router | 4.5.1 | 路由管理 | --- ## 📁 项目结构 ``` resource/ ├── resource-admin/ # 主应用入口(Spring Boot 启动类) ├── resource-framework/ # 核心框架模块 │ ├── config/ # 框架配置(安全、缓存等) │ ├── manager/ # 业务管理器 │ └── web/ # Web层配置 ├── resource-system/ # 系统管理模块 │ ├── controller/ # 控制层(用户、角色、菜单等) │ ├── service/ # 业务层 │ ├── mapper/ # 数据访问层 │ └── domain/ # 实体类 ├── resource-file/ # 文件管理模块 ⭐ │ ├── controller/ # 文件控制层(上传、下载、分享) │ ├── service/ # 文件业务层 │ ├── mapper/ # 文件数据访问层 │ ├── domain/ # 文件实体类 │ ├── task/ # 定时任务(分享失效等) │ └── utils/ # 文件工具类 ├── resource-common/ # 公共模块 │ ├── constant/ # 常量定义 │ ├── exception/ # 异常处理 │ ├── utils/ # 工具函数 │ └── config/ # 公共配置 ├── resource-vue/ # 用户端前端(Vue 3 + Vite)⭐ │ ├── src/ │ │ ├── api/ # API 接口封装 │ │ ├── views/ # 页面组件 │ │ │ ├── auth/ # 登录注册 │ │ │ ├── home/ # 首页大屏 │ │ │ ├── my-resources/ # 我的资源 │ │ │ ├── public-resources/ # 公共资源 │ │ │ ├── settings/ # 个人设置 │ │ │ ├── share/ # 分享访问 │ │ │ └── demo/ # 演示页面 │ │ ├── components/ # 公共组件 │ │ ├── stores/ # Pinia 状态管理 │ │ ├── router/ # 路由配置 │ │ ├── layouts/ # 布局组件 │ │ ├── composables/ # 组合式函数 │ │ └── utils/ # 工具函数 │ ├── package.json # 依赖配置 │ ├── vite.config.js # Vite 配置文件 │ └── index.html # HTML 入口 ├── resource-ui/ # 管理端前端(Vue 3 + Vite) ├── docs/ # 项目文档 │ ├── 日志/ # 开发日志 │ └── 测试数据/ # 测试相关 ├── sql/ # 数据库脚本 │ └── resource.sql # 初始化脚本 └── pom.xml # Maven 父工程配置 ``` --- ## 🚀 快速开始 ### 环境要求 - **Java**: 17+ - **Node.js**: 16+ (推荐 18+) - **Maven**: 3.6+ - **MySQL**: 8.0+ - **Redis**: 7.4+(缓存功能) --- ### 1️⃣ 数据库初始化 ```bash # 导入初始化脚本 mysql -u root -p resource < sql/resource.sql ``` 修改 `resource-admin/src/main/resources/application.yml` 中的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/resource?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: your_password ``` --- ### 2️⃣ 后端启动 #### 方式一:Maven 命令启动(推荐) ```bash # 进入项目根目录 cd resource # 清理并编译打包 mvn clean package -DskipTests # 启动后端服务 java -jar resource-admin/target/resource-admin.jar ``` #### 方式二:IDE 启动 1. 使用 IDEA 打开项目根目录 2. 等待 Maven 依赖加载完成 3. 找到 `resource-admin/src/main/java/com/resource/RuoYiApplication.java` 4. 右键选择 `Run 'RuoYiApplication'` 启动成功后访问: - **后端服务**: http://localhost:8080 - **API 文档**: http://localhost:8080/doc.html --- ### 3️⃣ 前端启动 #### 用户端前端(推荐) ```bash # 进入用户端前端目录 cd resource-vue # 安装依赖(首次启动必须执行) npm install # 启动开发服务器 npm run dev # 打包构建(部署时使用) npm run build ``` #### 管理端前端 ```bash # 进入管理端前端目录 cd resource-ui # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 启动成功后访问: - **用户端**: http://localhost:5173 (推荐使用) - **管理端**: http://localhost:80 --- ## 📖 功能模块 ### 系统管理 - **用户管理**:用户信息维护、密码重置、账号启用/禁用 - **部门管理**:组织结构管理,支持树形展示 - **岗位管理**:岗位信息配置 - **菜单管理**:菜单权限配置,支持按钮级权限 - **角色管理**:角色权限分配、数据权限划分 - **字典管理**:系统字典数据维护 ### 资源管理 ⭐ - **文件上传**:支持拖拽上传、批量上传,动态配置允许类型和大小限制 - **文件分类**:图片、音视频、文档、网站、其他5种智能分类 - **在线预览**:支持图片、PDF、音视频等多种格式在线预览 - **文件夹管理**:支持创建文件夹、移动文件、批量操作 - **资源分享**:灵活的分享机制,支持密码保护、访问次数、有效期限制 - **分享管理**:统一管理所有分享链接,支持编辑、删除、统计 - **存储统计**:实时显示存储使用情况,支持容量配额管理 - **搜索过滤**:支持文件名、类型、大小等多维度搜索和筛选 ### 数据大屏 ⭐ - **资源统计**:文件数量、存储使用、用户活跃度等关键指标 - **可视化图表**:基于 ECharts 的饼图、柱状图、趋势图 - **实时监控**:服务器 CPU、内存、磁盘使用率实时显示 - **用户分析**:用户注册趋势、活跃度分析 - **文件分布**:按类型、大小、时间的文件分布统计 - **响应式设计**:适配不同分辨率的大屏显示 ### 系统监控 - **在线用户**:当前系统活跃用户监控 - **操作日志**:系统操作日志记录和查询 - **登录日志**:登录日志记录和异常监控 - **服务监控**:CPU、内存、磁盘、堆栈等信息监控 - **缓存监控**:Redis 缓存信息查询 - **数据监控**:数据库连接池监视 ### 开发工具 - **代码生成**:一键生成前后端代码(Java、Vue、SQL) - **API 文档**:自动生成 Swagger/Knife4j API 文档 ### 其他功能 - **通知公告**:系统通知和公告发布 - **参数管理**:系统参数动态配置 --- ## 🔐 默认账号 | 账号 | 密码 | 说明 | |------|------|------| | admin | admin123 | 管理员账号 | > ⚠️ **生产环境请务必修改默认密码** --- ## 📝 项目改进说明 相比原始的 RuoYi 框架,本项目进行了以下改进: ### 后端改进 - ✅ 新增文件管理模块(resource-file) - ✅ 实现完整的资源分享功能 - ✅ 集成定时任务处理分享失效 - ✅ 优化文件上传下载性能 - ✅ 完善异常处理和日志记录 - ✅ 支持断点续传和大文件处理 ### 前端升级 - ✅ 升级到 Vue 3.5.22(从 Vue 2.x) - ✅ 采用 Vite 7.1.11 构建工具(更快的开发体验) - ✅ 使用 Element Plus 2.11.5 UI 组件库 - ✅ 迁移到 Pinia 3.0.3 状态管理 - ✅ 新增用户端前端(resource-vue) - ✅ 实现数据大屏可视化 - ✅ 完善响应式设计和移动端适配 - ✅ 集成 ECharts 图表库 ### 新增的功能 - ✅ 完整的文件管理系统 - ✅ 资源分享和访问控制 - ✅ 在线预览多种文件格式 - ✅ 数据大屏和可视化图表 - ✅ 用户端现代化界面 - ✅ 存储配额和统计管理 - ✅ 分享链接管理和统计 - ✅ 文件夹结构化管理 ### 保留的功能 - ✅ 完整的权限管理系统(JWT 认证) - ✅ 用户、角色、菜单、部门等核心管理 - ✅ 代码生成工具(一键生成前后端代码) - ✅ 系统监控和日志(操作日志、登录日志) - ✅ 缓存管理和 Redis 支持 - ✅ API 文档(Swagger/Knife4j) - ✅ 通知公告和参数管理 --- ## 📚 项目文档 ### 核心文档(3份) - [数据库设计](./docs/数据库设计.md) - 数据库表结构和关系 - [业务功能](./docs/业务功能.md) - 文件管理和投诉系统 - [开发指南](./docs/开发指南.md) - API配置和编码规范 ### 参考文档 - [若依官方文档](http://doc.ruoyi.vip) - [Spring Boot 官方文档](https://spring.io/projects/spring-boot) - [Vue 3.x 官方文档](https://cn.vuejs.org) - [Element Plus 官方文档](https://element-plus.org/zh-CN) --- ## 📄 许可证 MIT License - 基于若依项目改进 本项目保留对原始若依项目的致敬,感谢若依团队的开源贡献。