# novel-reader **Repository Path**: c-java-father/novel-reader ## Basic Information - **Project Name**: novel-reader - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-02 - **Last Updated**: 2026-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Novel Reader - 小说阅读平台 ## 项目简介 Novel Reader 是一个企业级小说阅读平台,采用微服务架构,包含后端服务、后台管理系统和移动端应用。支持完整的 RBAC 权限管理体系,包括部门、角色、菜单和按钮级权限控制。 ## 核心特性 - ✅ **微服务架构**:Spring Cloud + Eureka 服务治理 - ✅ **权限管理**:完整的 RBAC 权限体系(部门-角色-菜单-权限) - ✅ **统一网关**:Gateway 统一鉴权、路由、限流 - ✅ **多数据源**:MySQL + Redis + MongoDB + ClickHouse - ✅ **连接池优化**:Druid + Lettuce 高性能连接池 - ✅ **安全认证**:JWT Token + Redis 双重验证 - ✅ **数据权限**:支持5种数据范围控制 - ✅ **API文档**:Knife4j 自动生成接口文档 ## 技术栈 ### 后端服务 - **Spring Boot 2.7.18** - **Spring Cloud 2021.0.8** - **Eureka** - 服务注册与发现 - **Spring Cloud Gateway** - API 网关 - **MySQL 8.0** - 主数据库 - **Redis 6.0+** - 缓存和会话(Lettuce连接池) - **ClickHouse 22.0+** - 数据分析和统计 - **MongoDB 5.0+** - 章节内容存储 - **MyBatis Plus 3.5.5** - ORM框架 - **Druid 1.2.20** - 数据库连接池 - **JWT** - 身份认证 - **Knife4j 4.3.0** - API文档 ### 后台管理系统 - **Vue 3** - 渐进式框架 - **Element Plus** - UI组件库 - **Vite** - 构建工具 - **Vue Router** - 路由管理 - **Axios** - HTTP客户端 ### 移动端应用 - **uni-app** - 跨平台开发框架 - **uView UI** - UI组件库 - **Vuex** - 状态管理 - 支持:微信小程序、H5、App ## 系统架构 ``` ┌─────────────────────────────────────────────────────────┐ │ 前端应用层 │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 管理后台(Vue)│ │ H5移动端 │ │ 微信小程序 │ │ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ └─────────┼──────────────────┼──────────────────┼─────────┘ │ │ │ └──────────────────┼──────────────────┘ │ ┌──────────────────▼──────────────────┐ │ Gateway API网关 (统一鉴权) │ │ - Token验证 - 路由转发 - 限流 │ └──────────────────┬──────────────────┘ │ ┌──────────────────▼──────────────────┐ │ Eureka 服务注册中心 │ └──────────────────┬──────────────────┘ │ ┌───────────┬───────────┼───────────┬───────────┐ │ │ │ │ │ ┌────▼────┐ ┌───▼────┐ ┌───▼────┐ ┌───▼────┐ ┌────▼────┐ │ User │ │ Book │ │Reading │ │Chapter │ │Statistics│ │ Service │ │Service │ │Service │ │Service │ │ Service │ └────┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ └────┬────┘ │ │ │ │ │ └──────────┴──────────┴──────────┴───────────┘ │ ┌────────────────┼────────────────┐ │ │ │ ┌────▼────┐ ┌───▼────┐ ┌───▼────┐ │ MySQL │ │ Redis │ │MongoDB │ │ (业务) │ │ (缓存) │ │ (内容) │ └─────────┘ └────────┘ └────────┘ ``` ## 项目结构 ``` novel-reader/ ├── backend/ # 后端微服务 │ ├── novel-common/ # 公共模块(工具类、注解、DTO) │ ├── novel-eureka/ # Eureka 服务注册中心 │ ├── novel-gateway/ # Spring Cloud Gateway 网关 │ ├── novel-user/ # 用户服务(用户、部门、角色、权限) │ ├── novel-book/ # 书籍服务(书籍、分类) │ ├── novel-reading/ # 阅读服务(书架、阅读记录) │ ├── novel-chapter/ # 章节服务(章节管理) │ ├── novel-search/ # 搜索服务(ElasticSearch) │ ├── novel-statistics/ # 统计服务(ClickHouse) │ ├── sql/ # 数据库脚本 │ └── pom.xml # 父工程POM ├── frontend/ │ ├── admin-web/ # 后台管理系统 (Vue 3) │ └── admin-vue/ # 管理系统备份 ├── app/ # uni-app 移动端 ├── README.md # 项目说明 ├── DEPLOY.md # 部署文档 └── UPGRADE_GUIDE.md # 升级指南 ``` ## 快速开始 ### 环境要求 | 软件 | 版本 | 说明 | |------|------|------| | JDK | 11+ | 后端运行环境 | | Maven | 3.6+ | 项目构建工具 | | Node.js | 16+ | 前端运行环境 | | MySQL | 8.0+ | 主数据库 | | Redis | 6.0+ | 缓存数据库 | | MongoDB | 5.0+ | 文档数据库(可选) | | ClickHouse | 22.0+ | 分析数据库(可选) | ### 启动步骤 #### 1. 准备数据库 ```bash # 创建数据库并导入脚本 mysql -u root -p < backend/sql/novel_user.sql mysql -u root -p < backend/sql/novel_book.sql mysql -u root -p < backend/sql/novel_reading.sql ``` #### 2. 启动后端服务(按顺序) ```bash # ① 启动 Eureka 服务注册中心 cd backend/novel-eureka mvn spring-boot:run # 访问: http://localhost:8761 # ② 启动 Gateway 网关 cd backend/novel-gateway mvn spring-boot:run # 端口: 8080 # ③ 启动 User 用户服务 cd backend/novel-user mvn spring-boot:run # 端口: 8081 # ④ 启动 Book 书籍服务 cd backend/novel-book mvn spring-boot:run # 端口: 8082 # ⑤ 启动 Reading 阅读服务 cd backend/novel-reading mvn spring-boot:run # 端口: 8083 ``` #### 3. 启动前端管理系统 ```bash cd frontend/admin-web npm install npm run dev # 访问: http://localhost:3000 ``` #### 4. 启动移动端(可选) ```bash cd app npm install npm run dev:mp-weixin # 微信小程序 npm run dev:h5 # H5 ``` ### 默认账号 | 用户名 | 密码 | 角色 | 说明 | |--------|------|------|------| | admin | admin123 | 超级管理员 | 拥有所有权限 | | operator | admin123 | 运营人员 | 内容管理权限 | | developer | admin123 | 开发人员 | 仅查看权限 | ## 核心功能 ### 系统管理 - ✅ **用户管理**:用户增删改查、状态管理、密码重置 - ✅ **部门管理**:树形部门结构、部门增删改查 - ✅ **角色管理**:角色配置、权限分配、数据权限 - ✅ **菜单管理**:菜单树管理、路由配置、按钮权限 - ✅ **权限控制**:基于RBAC的细粒度权限控制 ### 内容管理 - ✅ **书籍管理**:书籍信息维护、分类管理、状态控制 - ✅ **章节管理**:章节内容管理、VIP章节设置 - ✅ **分类管理**:书籍分类维护、多级分类支持 - ✅ **内容审核**:内容审核流程、敏感词过滤 ### 业务功能 - ✅ **用户阅读**:在线阅读、书架管理、阅读记录 - ✅ **书评互动**:书评发布、评论互动、点赞收藏 - ✅ **个性化推荐**:基于阅读历史的智能推荐 - ✅ **搜索功能**:全文搜索、分类筛选、排序 ### 数据统计 - ✅ **阅读统计**:阅读量统计、用户活跃度分析 - ✅ **运营数据**:书籍排行、热门分析、趋势预测 - ✅ **实时监控**:服务监控、性能分析、异常告警 ## 数据库设计 ### MySQL - 业务数据 #### 用户权限模块 - `sys_user` - 用户表 - `sys_dept` - 部门表 - `sys_role` - 角色表 - `sys_menu` - 菜单表 - `sys_user_role` - 用户角色关联表 - `sys_role_menu` - 角色菜单关联表 #### 书籍内容模块 - `book` - 书籍表 - `chapter` - 章节表 - `category` - 分类表 - `bookshelf` - 书架表 - `reading_record` - 阅读记录表 ### Redis - 缓存策略 - **Token缓存**:`user:token:{userId}` (7天) - **权限缓存**:`user:permissions:{userId}` (30分钟) - **菜单缓存**:`user:menus:{userId}` (1小时) - **书籍缓存**:`book:info:{bookId}` (1天) - **热门排行**:`rank:hot:books` (1小时) ### MongoDB - 内容存储 - 章节详细内容 - 书评详细信息 - 用户评论数据 ### ClickHouse - 数据分析 - 阅读行为日志 - 用户行为分析 - 统计报表数据 ## 监控与文档 | 服务 | 地址 | 账号密码 | |------|------|----------| | Eureka控制台 | http://localhost:8761 | - | | API文档 | http://localhost:8080/doc.html | - | | Druid监控 | http://localhost:8081/druid | admin/admin | ## 性能指标 R - **QPS**:单机 5000+(优化连接池后) - **响应时间**:P99 < 100ms - **数据库连接**:Druid连接池,最大50 - **Redis连接**:Lettuce连接池,最大20 - **缓存命中率**:热点数据 > 95% ## 文档说明 - **README.md** - 项目说明文档(当前文件) - **DEPLOY.md** - 详细部署文档 - **UPGRADE_GUIDE.md** - 升级指南(从旧版本升级必读) ## 技术支持 - 📧 Email: java_moon@sohu.com - 📖 API文档: http://localhost:8080/doc.html - 🐛 Issue: 请在项目仓库提交Issue ## 开源协议 MIT License --- **⭐ 如果这个项目对你有帮助,请给个Star支持一下!**