# Pet Service Management System 宠物服务管理系统 - 一个完整的宠物服务预约管理平台,支持用户管理、宠物档案、服务预约、房态管理等功能。 ## 项目简介 本项目是一个基于 Spring Boot 开发的宠物服务管理后端系统,为宠物主人提供便捷的在线预约服务,同时为管理员提供完善的后台管理功能。 ## 技术栈 | 技术 | 版本 | 说明 | |-----|------|------| | Spring Boot | 3.5.15 | 核心框架 | | MyBatis | 3.0.5 | ORM 框架 | | MySQL | 8.x | 关系型数据库 | | Java | 17 | 开发语言 | | Maven | - | 构建工具 | | OpenAPI/Swagger | 2.8.16 | API 文档 | ## 功能特性 ### 用户端功能 - **用户认证**:注册、登录、登出 - **个人中心**:信息管理、密码修改、头像上传 - **宠物档案**:添加宠物、疫苗记录、驱虫记录 - **服务预约**:浏览套餐、选择房型、提交预约 - **预约管理**:查看预约状态、申请取消、支付定金 ### 管理端功能 - **用户管理**:查看注册用户、宠物档案详情 - **预约管理**:审核预约、处理取消申请 - **套餐管理**:新增/修改/删除服务套餐 - **房型管理**:房态查看、手动调整房态 - **排班管理**:员工排班管理 ## 快速开始 ### 环境要求 - JDK 17+ - MySQL 8.x - Maven 3.6+ ### 安装步骤 1. **克隆项目** ```bash git clone cd server ``` 2. **配置数据库** 修改 `src/main/resources/application.yaml` 中的数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/pet_service_management_system username: your_username password: your_password ``` 3. **创建数据库** ```sql CREATE DATABASE pet_service_management_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 4. **运行项目** ```bash # 使用 Maven Wrapper ./mvnw spring-boot:run # 或打包后运行 ./mvnw clean package java -jar target/server-0.0.1-SNAPSHOT.jar ``` 5. **访问 API 文档** 启动后访问:`http://localhost:8080/swagger-ui.html` ## 项目结构 ``` server/ ├── src/main/java/space/anyi/petServiceManagementSystem/server/ │ ├── ServerApplication.java # 主启动类 │ ├── common/ # 公共类(响应封装、异常) │ ├── config/ # 配置类 │ ├── controller/ # 控制器层 │ │ ├── AuthController.java │ │ ├── UserController.java │ │ ├── PetController.java │ │ ├── AppointmentController.java │ │ └── admin/ # 管理员接口 │ ├── service/ # 服务层 │ ├── mapper/ # MyBatis Mapper │ ├── entity/ # 数据库实体 │ ├── dto/ # 数据传输对象 │ ├── vo/ # 视图对象 │ ├── interceptor/ # 拦截器 │ └── util/ # 工具类 ├── src/main/resources/ │ ├── application.yaml # 应用配置 │ └── mapper/ # MyBatis XML 映射文件 └── pom.xml # Maven 配置 ``` ## API 概览 ### 认证接口 | 方法 | 端点 | 说明 | |------|------|------| | POST | `/auth/register` | 用户注册 | | POST | `/auth/login` | 用户登录 | | POST | `/auth/logout` | 退出登录 | ### 用户接口 | 方法 | 端点 | 说明 | |------|------|------| | GET | `/user/{id}` | 获取用户信息 | | PUT | `/user` | 修改用户信息 | | PUT | `/user/updatePassword` | 修改密码 | ### 宠物接口 | 方法 | 端点 | 说明 | |------|------|------| | GET | `/pets` | 获取宠物列表 | | POST | `/pets` | 新增宠物 | | GET | `/pets/{id}` | 获取宠物详情 | | GET | `/pets/{id}/vaccinations` | 疫苗记录 | | GET | `/pets/{id}/deworming` | 驱虫记录 | ### 预约接口 | 方法 | 端点 | 说明 | |------|------|------| | POST | `/appointments` | 提交预约 | | GET | `/appointments` | 我的预约列表 | | POST | `/appointments/{id}/cancel` | 申请取消 | | POST | `/appointments/{id}/pay-deposit` | 支付定金 | ### 管理员接口 | 方法 | 端点 | 说明 | |------|------|------| | GET | `/admin/users` | 用户列表 | | GET | `/admin/appointments` | 全部预约 | | PUT | `/admin/appointments/{id}/review` | 审核预约 | | POST | `/admin/packages` | 新增套餐 | | POST | `/admin/boarding-rooms` | 新增房型 | | POST | `/admin/schedules` | 添加排班 | ## 数据库设计 ### 核心表 - `user` - 用户表 - `pet` - 宠物表 - `appointment` - 预约表 - `package` - 服务套餐表 - `boarding_room` - 寄养房型表 - `boarding_room_status` - 房型状态表 - `schedule` - 排班表 - `vaccination_record` - 疫苗记录表 - `deworming_record` - 驱虫记录表 ## 开发规范 ### 分层架构 - **Controller**:处理 HTTP 请求,参数校验 - **Service**:业务逻辑,事务管理 - **Mapper**:数据访问层 - **Entity**:数据库实体 - **DTO**:请求参数封装 - **VO**:响应数据封装 ### 代码规范 - 所有 Controller API 必须添加 OpenAPI 注解 - 请求参数使用 DTO,响应数据使用 VO - 业务逻辑写在 Service 层,Controller 只负责委托 - Entity 字段必须添加中文注释 - 关键业务步骤添加注释说明 ## 安全配置 - **认证方式**:Session 认证 - **密码加密**:MD5 + SALT - **Session 超时**:30 分钟 - **跨域配置**:已配置 CORS ## 相关项目 - **前端项目**:位于 `../ui/` 目录,使用 Vite + React + TypeScript 开发 ## 开发命令 ```bash # 启动开发服务器 ./mvnw spring-boot:run # 运行测试 ./mvnw test # 打包 ./mvnw clean package # 跳过测试打包 ./mvnw clean package -DskipTests ``` ## 许可证 [MIT License](LICENSE) --- **作者**:anyi **版本**:1.0.0