# 剧本杀角色与剧情管理系统 **Repository Path**: lian-kairong/Drama-killing-game-characters-and-plots ## Basic Information - **Project Name**: 剧本杀角色与剧情管理系统 - **Description**: No description available - **Primary Language**: JavaScript - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2026-01-03 - **Last Updated**: 2026-01-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 剧本杀管理系统 基于 Spring Boot + Vue.js 的完整剧本杀游戏管理系统,提供剧本管理、角色管理、线索管理、游戏会话管理等核心功能,并支持前后端分离架构与 Docker 容器化部署。 ## 技术栈 ### 后端 - Java 17 - Spring Boot 2.6.13 - MyBatis-Plus 3.5.9 - MySQL 8.0 - Knife4j(Swagger2/OpenAPI2) ### 前端 - Node.js 18+ - Vue.js 3 - Element Plus - Axios ### 部署 - Docker & Docker Compose - Nginx ## 目录结构 ``` Drama-killing-game-characters-and-plots/ ├── src/ # 后端源码 │ ├── main/java/com/example/demo/ │ │ ├── controller/ # 控制器层 │ │ ├── service/ # 服务层 │ │ ├── mapper/ # 数据访问层 │ │ ├── domain/ # 实体类 │ │ ├── dto/ # 数据传输对象 │ │ ├── common/ # 公共组件 │ │ └── exception/ # 异常处理 │ └── main/resources/ # 配置文件 ├── frontend/ # 前端项目 ├── murder.sql # 数据库初始化脚本 ├── Dockerfile # 后端Dockerfile ├── docker-compose.yml # Docker Compose配置 ├── deploy.sh # 部署脚本 └── pom.xml # Maven配置 ``` ## 核心功能 ### 剧本管理 - 剧本的增删改查 - 剧本评分排行 - 剧本难度与时长管理 ### 角色管理 - 角色信息管理 - 角色与剧本关联 - 凶手角色设置 ### 线索管理 - 线索创建与编辑 - 线索解锁条件设置 - 线索与角色关联 ### 玩家管理 - 玩家注册与登录 - 玩家游戏记录 - 玩家评分系统 ### 游戏会话管理 - 游戏场次创建 - 游戏状态管理 - 游戏回合控制 ## 运行方式 ### 方式一:部署脚本(推荐) 在项目根目录执行: ```bash ./deploy.sh ``` 脚本会自动构建并启动所有服务,并输出访问地址。 ### 方式二:Docker Compose 在项目根目录执行: ```bash sudo docker compose up -d --build ``` ### 访问服务 - 前端页面:`http://localhost:80` - 后端API:`http://localhost:8123/api` - 接口文档:`http://localhost:8123/api/doc.html` ### 停止服务 ```bash sudo docker compose down ``` ### 重置数据库 如果需要清空并重新初始化数据库: ```bash sudo docker compose down -v sudo docker compose up -d --build ``` ## Docker Compose 配置 | 服务 | 端口 | 说明 | |------|------|------| | MySQL | 3306 | 数据库服务 | | 后端 | 8123 | Spring Boot 应用 | | 前端 | 80 | Vue.js 应用 | ### 数据库配置 - 数据库名称:`murder_mystery` - 用户名:`root` - 密码:`123456` - 初始化脚本:`murder.sql` ## 本地开发(不使用 Docker) ### 后端开发 1. 准备数据库 ```bash mysql -uroot -p < murder.sql ``` 2. 修改配置 编辑 `src/main/resources/application.yml`,配置数据库连接。 3. 启动后端 ```bash mvn clean package -DskipTests java -jar target/demo-0.0.1-SNAPSHOT.jar ``` ### 前端开发 1. 进入前端目录 ```bash cd frontend ``` 2. 安装依赖 ```bash npm install ``` 3. 开发模式运行 ```bash npm run dev ``` 4. 构建生产版本 ```bash npm run build ``` ## 接口文档 系统集成了 Knife4j(基于 Swagger2)接口文档,启动服务后可通过以下地址访问: - `http://localhost:8123/api/doc.html` ### 主要接口分类 - **剧本管理**:剧本的增删改查、评分排行 - **角色管理**:角色信息管理、角色分配 - **线索管理**:线索创建、解锁条件设置 - **玩家管理**:玩家注册、身份验证 - **游戏会话管理**:游戏场次创建、状态管理 ## 分页功能说明 系统所有分页接口均采用统一的分页参数格式: ```json { "current": 1, // 当前页码 "pageSize": 5 // 每页记录数 } ``` 响应格式: ```json { "code": 0, // 返回码 "data": { "records": [...], // 当前页数据 "total": 19, // 总记录数 "size": 5, // 每页记录数 "current": 1, // 当前页码 "pages": 4 // 总页数 }, "message": "ok" // 返回消息 } ``` ## 常见问题 ### 1. 启动报错:`no main manifest attribute, in app.jar` 原因:`spring-boot-maven-plugin` 的 `repackage` 配置问题。 解决:检查 `pom.xml` 中 Spring Boot Maven 插件配置,确保未跳过打包,然后重新构建。 ### 2. MySQL 初始化脚本未执行 原因:MySQL 数据目录不为空,初始化脚本只在首次启动时执行。 解决:清理数据卷后重新启动: ```bash sudo docker compose down -v sudo docker compose up -d --build ``` ### 3. 前端页面无法访问后端 API 原因:跨域配置或 API 地址配置错误。 解决:检查前端配置文件中的 API 地址是否正确,确保后端已配置跨域支持。 ### 4. 分页显示异常(total=0, pages=0) 原因:MyBatis-Plus 分页插件配置问题。 解决:当前系统采用手动分页计算,确保所有分页接口都已应用手动分页逻辑。 ## 部署说明 ### 环境要求 - Docker 20.10+ - Docker Compose 2.0+ ### 生产环境部署 1. 修改 `docker-compose.yml` 中的环境变量 2. 配置 Nginx 反向代理(可选) 3. 执行部署脚本 ## 技术支持 如有问题或建议,请联系项目维护人员。 ## 许可证 本项目采用 MIT 许可证。