# LRS **Repository Path**: tabdon/lrs ## Basic Information - **Project Name**: LRS - **Description**: LRS网站的后端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-16 - **Last Updated**: 2026-02-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot ## README # LRS 学习记录系统 ## 项目介绍 LRS(Learning Records System)是一个基于 Spring Boot + MyBatis Plus 开发的学习记录管理系统,主要用于文档的上传、管理和分享。系统支持用户管理、文档分类、标签管理、文件分片上传等功能,并集成了微信登录功能。 ## 技术栈 - **后端框架**:Spring Boot - **ORM 框架**:MyBatis Plus - **数据库**:MySQL - **身份认证**:JWT (JSON Web Token) - **文件处理**:支持分片上传、MD5 校验 - **微信集成**:微信登录支持 ## 项目结构 ``` src/main/java/com/lrs/ ├── ArgumentResolver/ # 自定义参数解析器 │ ├── PowerArgumentResolver.java # 权限参数解析 │ └── UserArgumentResolver.java # 用户参数解析 ├── Interceptors/ # JWT 拦截器 │ └── JWTInterceptors.java ├── POJO/ # 实体类 │ ├── Category.java # 分类 │ ├── ChunkDocument.java # 分片文档 │ ├── Document.java # 文档 │ ├── DocumentTag.java # 文档标签关联 │ ├── Folder.java # 文件夹 │ ├── Tag.java # 标签 │ ├── User.java # 用户 │ ├── UserDocument.java # 用户文档 │ └── UserWXChat.java # 微信用户 ├── Utils/ # 工具类 │ ├── JWTUtils.java # JWT 工具 │ ├── MD5Utils.java # MD5 工具 │ └── ZipExtractor.java # ZIP 解压工具 ├── WX/ # 微信相关 │ ├── DTO/ # 数据传输对象 │ └── WXController.java # 微信控制器 ├── config/ # 配置类 │ ├── CorsConfig.java # 跨域配置 │ ├── MybatisPlusConfig.java # MyBatis Plus 配置 │ └── WebConfig.java # Web 配置 ├── controller/ # 控制器 │ ├── CategoryController.java # 分类管理 │ ├── DocumentController.java # 文档管理 │ ├── ImageController.java # 图片上传 │ ├── ProjectCodeController.java # 项目代码管理 │ ├── TagController.java # 标签管理 │ ├── UserController.java # 用户管理 │ └── UserDocumentController.java # 用户文档 ├── exception/ # 异常处理 │ ├── ChunkFileMD5Exception.java │ ├── DocumentIsExistException.java │ ├── ProjectExceptionAdvice.java │ └── SystemException.java ├── mapper/ # Mapper 接口 ├── requestParam/ # 请求参数类 ├── result/ # 统一返回结果 │ ├── Result.java │ ├── ResultCode.java │ └── ResultUtil.java └── service/ # 业务逻辑 ├── impl/ # 业务实现 └── 接口/ ``` ## 功能特性 ### 用户管理 - 账号密码登录 - 微信小程序登录 - 用户信息修改 - 头像上传 - 密码更新 ### 文档管理 - 文档上传(支持分片上传大文件) - MD5 文件去重 - 文档分类 - 文档标签 - 文档删除和更新 ### 分类管理 - 创建、修改、删除分类 - 分类下文档查询 ### 标签管理 - 创建、修改、删除标签 - 文档标签关联 ### 文件上传 - 单文件上传 - 分片上传(支持大文件) - 文件 MD5 校验 - 图片上传 ## 安装教程 ### 1. 环境要求 - JDK 1.8+ - Maven 3.x - MySQL 5.7+ - Tomcat (如需 HTTPS 部署) ### 2. 数据库配置 导入项目根目录下的 `LRS.sql` 文件到 MySQL 数据库: ```bash mysql -u root -p < LRS.sql ``` ### 3. 配置修改 修改 `src/main/resources/application.properties` 文件,配置以下内容: ```properties # 数据库配置 spring.datasource.url=jdbc:mysql://localhost:3306/lrs?useUnicode=true&characterEncoding=utf-8 spring.datasource.username=your_username spring.datasource.password=your_password # 文件上传配置 file.upload.dir=/path/to/upload/directory file.upload.chunkSize=1048576 # 图片配置 image.imgPath=/path/to/images/directory # 微信配置(如使用微信登录) WX.AppID=your_appid WX.AppSecret=your_appsecret ``` ### 4. 创建必要目录 根据配置文件中的路径,创建对应的文件夹: - 文件上传目录 - 图片存储目录 ### 5. 编译运行 ```bash # 编译项目 mvn clean package # 运行项目 mvn spring-boot:run ``` ### 6. HTTPS 配置(如需) 如需使用 HTTPS 部署,需要: 1. 配置 Tomcat 证书 2. 修改前端 `request.js` 中的接口请求路径 ## API 接口概览 ### 用户接口 - `POST /user/login` - 用户登录 - `GET /user/info` - 获取用户信息 - `POST /user/update` - 更新用户 - `POST /user/insert` - 注册用户 - `GET /user/delete` - 删除用户 ### 文档接口 - `POST /userDocument/upload` - 上传文档 - `GET /userDocument/allPushDocument` - 获取所有已发布文档 - `GET /userDocument/selectByPage` - 分页查询 - `GET /document/selectAllDocument` - 获取所有文档 ### 分类接口 - `GET /category/selectAll` - 获取所有分类 - `POST /category/insert` - 新增分类 - `POST /category/update` - 更新分类 - `GET /category/delete` - 删除分类 ### 标签接口 - `GET /tag/selectAll` - 获取所有标签 - `POST /tag/insert` - 新增标签 ### 微信接口 - `GET /wx/loginByWX` - 微信登录 - `GET /wx/info` - 获取微信用户信息 ## 相关配置说明 ### 分片上传配置 系统支持大文件分片上传,可在配置文件中设置分片大小: ```properties file.upload.chunkSize=1048576 # 1MB ``` ### 文件存储 所有上传的文件会根据 MD5 值进行去重,避免重复存储。 ## 许可证 本项目仅供学习交流使用。