# CityBite-智慧城市探店外卖平台 **Repository Path**: git_bai/skyreach-takeaway ## Basic Information - **Project Name**: CityBite-智慧城市探店外卖平台 - **Description**: 这是我作为Java后端开发完成的项目:CityBite — 智慧城市探店外卖平台。基于 Spring Boot 2.7 + MyBatis + MySQL 构建,集成了 JWT 认证、微信支付 V3、阿里云 OSS 文件存储与 Knife4j 接口文档。涵盖员工管理、菜品分类、套餐组合、店铺发现与下单支付等完整外卖业务流程,是一套适合学习与二次开发的智慧城市 O2O 外卖解决方案。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-01-25 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CityBite - Skyreach Takeaway 基于 Spring Boot 2.7.3 的外卖点餐后端项目。当前仓库处于后台管理能力建设阶段,已实现员工管理、分类管理、JWT 登录认证等基础能力;菜品、套餐、订单、支付、报表等模块已保留部分实体、DTO/VO 和工具类,业务接口仍待继续补齐。 ## 当前功能 | 模块 | 当前状态 | |------|----------| | 员工管理 | 已实现登录、新增、分页查询、启禁用、详情、编辑 | | 分类管理 | 已实现新增、分页查询、删除、编辑、启禁用、按类型查询 | | JWT 认证 | 已实现后台管理接口拦截与员工 id 上下文透传 | | 公共能力 | 已有统一返回、业务异常、常量、JWT/HTTP/OSS/微信支付工具类 | | 菜品/套餐/订单等 | 已有部分 Entity、DTO、VO,业务接口待补齐 | ## 技术栈 - JDK 8+ - Spring Boot 2.7.3 - Maven 多模块 - MyBatis + PageHelper - MySQL + Druid - Knife4j / Swagger 2 - Lombok - JWT ## 项目结构 ```text skyreach-takeaway/ ├── sky-common/ # 公共模块:常量、异常、工具类、配置属性、统一返回 ├── sky-pojo/ # 数据模型:Entity、DTO、VO ├── sky-server/ # 服务模块:Controller、Service、Mapper、配置、启动类 │ └── src/main/resources/ │ ├── application.yml │ ├── application-dev.yml │ └── mapper/ # MyBatis XML 映射文件 └── pom.xml # 父 POM,统一依赖管理 ``` ## 本地启动 ### 环境要求 - JDK 8+ - Maven 3.6+ - MySQL 5.7+ ### 配置环境变量 项目不再建议把真实密码和密钥提交到仓库。启动前请按本机环境设置以下变量: ```bash export DB_HOST=localhost export DB_PORT=3306 export DB_NAME=sky_take_out export DB_USERNAME=root export DB_PASSWORD=your_password export JWT_ADMIN_SECRET=your_jwt_secret ``` 如需调整 JWT 过期时间或请求头名称,可选配置: ```bash export JWT_ADMIN_TTL=144000000 export JWT_ADMIN_TOKEN_NAME=token ``` ### 启动服务 ```bash mvn clean install -DskipTests cd sky-server mvn spring-boot:run ``` 接口文档地址: ```text http://localhost:8080/doc.html ``` ## 当前工程化状态 - 已采用 Maven 多模块组织代码。 - 当前没有提交数据库初始化脚本,需自行准备 `sky_take_out` 数据库及表结构。 - 当前没有测试用例、Docker Compose、CI/CD 配置,后续建议逐步补齐。 - 当前配置文件已改为环境变量占位,真实密钥请保存在本地环境或部署平台密钥管理中。 ## 推荐开发流程 后续项目改动统一遵守以下流程: 1. 从 `master` 新建功能分支,命名格式:`feature/功能名字`。 2. 在 feature 分支完成开发和自测。 3. 通过 `mvn clean test` 或至少 `mvn -DskipTests compile` 验证。 4. 提交 commit。 5. 合并回 `master`。 6. 推送 `master` 到远程仓库。 ## 下一步建议 - 补充数据库迁移脚本,例如 Flyway。 - 增加单元测试和接口测试。 - 增加 Docker Compose 管理 MySQL/Redis。 - 增加 CI 检查 Maven 编译、测试和代码格式。 - 将 MD5 密码方案升级为 BCrypt。