# backend **Repository Path**: aibf2/backend ## Basic Information - **Project Name**: backend - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-04 - **Last Updated**: 2025-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 剧本杀小程序 - 后端服务 基于 Java 21 + Spring Boot 3 + PostgreSQL 构建的现代化后端服务。 ## 🚀 技术栈 - **Java 21** - 最新LTS版本,支持虚拟线程 - **Spring Boot 3.2** - 最新稳定版 - **PostgreSQL 16** - 强大的开源数据库 - **Redis 7** - 高性能缓存 - **Spring Security + JWT** - 安全认证 - **Spring Data JPA** - ORM框架 - **Flyway** - 数据库版本管理 - **MinIO** - 对象存储 - **Docker** - 容器化部署 ## 📋 功能模块 - ✅ 用户认证(微信登录) - ✅ 剧本管理 - ✅ 组局系统 - ✅ 订单管理 - ✅ 评论系统 - ✅ 收藏功能 - ✅ 限时抢购 - ✅ 文件上传 - ✅ 支付集成 ## 🏗️ 项目结构 ``` backend/ ├── src/main/java/com/jbs/ │ ├── config/ # 配置类 │ ├── controller/ # 控制器 │ ├── service/ # 业务逻辑 │ ├── repository/ # 数据访问 │ ├── entity/ # 实体类 │ ├── dto/ # 数据传输对象 │ ├── exception/ # 异常处理 │ ├── security/ # 安全相关 │ └── util/ # 工具类 ├── src/main/resources/ │ ├── db/migration/ # 数据库迁移脚本 │ └── application.yml # 配置文件 ├── docker-compose.yml # Docker编排 └── Dockerfile # Docker镜像 ``` ## 🛠️ 快速开始 ### 前置要求 - JDK 21+ - Maven 3.9+ - Docker & Docker Compose ### 本地开发 1. **克隆项目** ```bash git clone https://github.com/your-repo/jbs-backend.git cd jbs-backend ``` 2. **配置环境变量** ```bash cp .env.example .env # 编辑 .env 文件,填入微信小程序配置 ``` 3. **启动依赖服务** ```bash # 启动 PostgreSQL, Redis, MinIO docker-compose up -d postgres redis minio ``` 4. **运行应用** ```bash # 开发模式 mvn spring-boot:run # 或使用 IDE 运行 JbsBackendApplication.java ``` 5. **访问服务** - API: http://localhost:8080 - Swagger UI: http://localhost:8080/swagger-ui.html - MinIO Console: http://localhost:9001 ### Docker部署 ```bash # 构建并启动所有服务 docker-compose up -d # 查看日志 docker-compose logs -f app # 停止服务 docker-compose down ``` ## 📝 API文档 ### 认证接口 #### 微信登录 ```http POST /api/auth/wx-login Content-Type: application/json { "code": "微信登录code" } ``` #### 获取用户信息 ```http GET /api/auth/me Authorization: Bearer {token} ``` ### 剧本接口 #### 获取剧本列表 ```http GET /api/scripts?page=1&size=20&category=REASONING&sort=rating ``` #### 获取剧本详情 ```http GET /api/scripts/{id} ``` ### 组局接口 #### 创建组局 ```http POST /api/groups Authorization: Bearer {token} Content-Type: application/json { "scriptId": 1, "title": "周末推理局", "playDate": "2024-11-25", "playTime": "19:00", "location": "剧本杀店", "maxPlayers": 6, "description": "寻找推理爱好者" } ``` #### 加入组局 ```http POST /api/groups/{id}/join Authorization: Bearer {token} ``` ## 🔧 配置说明 ### application.yml ```yaml spring: datasource: url: jdbc:postgresql://localhost:5432/jbs_db username: postgres password: postgres data: redis: host: localhost port: 6379 jwt: secret: your-secret-key expiration: 86400000 wechat: mini: app-id: ${WECHAT_APP_ID} app-secret: ${WECHAT_APP_SECRET} ``` ### 环境变量 | 变量名 | 说明 | 默认值 | |-------|------|--------| | DB_HOST | 数据库地址 | localhost | | DB_PORT | 数据库端口 | 5432 | | DB_NAME | 数据库名 | jbs_db | | DB_USERNAME | 数据库用户名 | postgres | | DB_PASSWORD | 数据库密码 | postgres | | REDIS_HOST | Redis地址 | localhost | | REDIS_PORT | Redis端口 | 6379 | | JWT_SECRET | JWT密钥 | - | | WECHAT_APP_ID | 微信AppID | - | | WECHAT_APP_SECRET | 微信AppSecret | - | ## 🗄️ 数据库设计 ### 核心数据表 - **users** - 用户表 - **scripts** - 剧本表 - **groups** - 组局表 - **orders** - 订单表 - **comments** - 评论表 - **stores** - 店铺表 详细表结构见 `src/main/resources/db/migration/V1__Initial_Schema.sql` ## 🚦 测试 ```bash # 运行单元测试 mvn test # 运行集成测试 mvn verify # 生成测试报告 mvn jacoco:report ``` ## 📦 构建部署 ### 构建JAR包 ```bash mvn clean package java -jar target/jbs-backend.jar ``` ### 构建Docker镜像 ```bash docker build -t jbs-backend:latest . ``` ### 生产环境部署 1. **使用Docker Compose** ```bash docker-compose -f docker-compose.prod.yml up -d ``` 2. **使用Kubernetes** ```bash kubectl apply -f k8s/ ``` 3. **使用云服务** - 阿里云ECS + RDS + Redis - 腾讯云CVM + 云数据库 - AWS EC2 + RDS + ElastiCache ## 📊 监控运维 ### 健康检查 ```http GET /actuator/health ``` ### 性能指标 ```http GET /actuator/metrics ``` ### 日志查看 ```bash tail -f logs/jbs-backend.log ``` ## 🔒 安全建议 1. **生产环境配置** - 使用强密码 - 启用HTTPS - 配置防火墙 - 定期备份 2. **JWT配置** - 使用强密钥(至少256位) - 合理设置过期时间 - 实现Token刷新机制 3. **数据库安全** - 限制连接IP - 使用SSL连接 - 定期更新 ## 🤝 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📄 许可证 MIT License ## 📞 联系方式 - 项目地址: https://github.com/your-repo/jbs-backend - 问题反馈: https://github.com/your-repo/jbs-backend/issues --- **Happy Coding!** 🎉