宠物服务系统是一个现代化的Web应用,旨在为宠物主人、服务提供商和平台管理员提供全方位的服务管理解决方案。系统采用前后端分离架构,具有高可扩展性和易维护性。
- 用户认证: 注册/登录与JWT身份验证
- 宠物管理: 宠物档案管理(姓名、品种、年龄、健康状况等)
- 服务预约: 在线选择服务、预约时间、查看订单状态
- 个人中心: 个人资料管理、订单历史、宠物信息管理
- 积分商城: 积分兑换礼品功能
- 服务管理: 服务项目发布、价格设置、服务描述
- 日程管理: 预约时间表管理、可用时间段设置
- 收入管理: 收入统计、财务报表
- 评价管理: 查看用户评价、回复评价
- 店铺管理: 店铺信息管理、营业时间设置
- 员工管理: 员工信息管理、排班安排、业绩统计
- 用户管理: 用户列表、权限分配、账户状态管理
- 服务管理: 服务审核、分类管理、平台规则设置
- 订单管理: 订单监控、纠纷处理
- 商家审核: 商家入驻申请审核
- 数据统计: 平台运营数据分析
- 系统配置: 参数配置、系统维护
- 日志管理: 操作日志、安全审计
| 技术 | 版本 | 描述 |
|---|---|---|
| Spring Boot | 3.2.5 | 应用框架 |
| Spring Security | 3.2.5 | 安全框架 |
| Spring Data Redis | 3.2.5 | Redis集成 |
| MyBatis-Plus | 3.5.7 | ORM框架 |
| MySQL | 8+ | 关系型数据库 |
| JWT | 0.12.5 | JSON Web Token |
| Maven | 3.9+ | 依赖管理 |
| 技术 | 版本 | 描述 |
|---|---|---|
| Vue.js | 3.4.21 | JavaScript框架 |
| Vue Router | 4.3.0 | 路由管理 |
| Pinia | 2.1.7 | 状态管理 |
| Element Plus | 2.6.3 | UI组件库 |
| Axios | 1.7.2 | HTTP客户端 |
| Vite | 5.2.8 | 构建工具 |
- Docker - 容器化部署
- Docker Compose - 多容器编排
pet-service-system/
├── backend/ # Spring Boot 后端服务
│ ├── src/main/java/com/petservice/
│ │ ├── common/ # 通用工具类
│ │ ├── config/ # 配置类
│ │ ├── controller/ # 控制器层 (REST API)
│ │ ├── dto/ # 数据传输对象
│ │ ├── entity/ # 实体类 (JPA实体)
│ │ ├── mapper/ # 数据访问层 (MyBatis-Plus)
│ │ ├── security/ # 安全相关
│ │ └── service/ # 业务逻辑层
│ └── src/main/resources/
│ └── application.yml # 配置文件
├── frontend/ # Vue.js 前端项目
│ ├── src/
│ │ ├── api/ # API接口定义
│ │ ├── assets/ # 静态资源
│ │ ├── components/ # 可复用组件
│ │ ├── layouts/ # 布局组件
│ │ ├── router/ # 路由配置
│ │ ├── stores/ # Pinia状态管理
│ │ ├── utils/ # 工具函数
│ │ ├── views/ # 页面组件
│ │ │ ├── admin/ # 管理员页面
│ │ │ ├── community/ # 社区页面
│ │ │ ├── home/ # 首页
│ │ │ ├── order/ # 订单页面
│ │ │ ├── points/ # 积分商城
│ │ │ ├── provider/ # 服务提供商页面
│ │ │ ├── service/ # 服务页面
│ │ │ └── user/ # 用户页面
│ │ ├── App.vue # 根组件
│ │ └── main.js # 入口文件
├── sql/ # 数据库脚本
│ ├── pet_service.sql # 数据库结构
│ ├── fix_test_data.sql # 测试数据
│ └── ... # 其他迁移脚本
├── docker-compose.yml # Docker编排配置
├── Dockerfile # 后端Dockerfile
└── nginx.conf # Nginx配置
- Docker & Docker Compose (推荐)
- 或 Java 17 + Maven + Node.js 16+ + MySQL 8 + Redis 7
- 确保已安装Docker和Docker Compose
- 克隆项目到本地
- 在项目根目录下运行:
docker-compose up -d系统将自动启动MySQL、Redis、后端和前端服务,大约等待1-2分钟待服务完全启动后,访问 http://localhost 即可使用系统。
- 安装Java 17和Maven
- 启动MySQL和Redis服务
- 创建数据库并导入SQL文件
# 导航到后端目录
cd backend
# 构建并运行项目
mvn spring-boot:run后端默认运行在 http://localhost:8081
- 安装Node.js (版本 >= 16)
- 在新终端窗口中导航到前端目录
# 安装依赖
cd frontend
npm install
# 启动开发服务器
npm run dev前端默认运行在 http://localhost:5173
使用Docker Compose时,数据库会自动创建并初始化数据。
- 在MySQL中创建名为
pet_service的数据库 - 执行SQL目录下的数据库初始化脚本
CREATE DATABASE pet_service CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE pet_service;
SOURCE sql/pet_service.sql;
-- 如果需要测试数据,也可以执行
SOURCE sql/fix_test_data.sql;修改 backend/src/main/resources/application.yml 中的数据库连接信息:
spring:
datasource:
url: jdbc:mysql://localhost:3306/pet_service?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&allowPublicKeyRetrieval=true
username: root # 修改为你的数据库用户名
password: 123456 # 修改为你的数据库密码- JWT认证: 使用JSON Web Token实现无状态认证
- 密码加密: 用户密码使用BCrypt加密存储
- 权限控制: 基于角色的访问控制(RBAC)
- 输入验证: 请求参数校验防止注入攻击
``http POST /api/auth/login Content-Type: application/json
{ "username": "test@example.com", "password": "password123" }
### 获取服务列表
``http
GET /api/services
Authorization: Bearer {token}
- 构建后端JAR包:
cd backend
mvn clean package -DskipTests
java -jar target/pet-service-system-1.0.0.jar --spring.profiles.active=prod- 构建前端静态资源:
cd frontend
npm run build我们欢迎任何形式的贡献:
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
本项目采用 MIT 许可证,详情请参见 LICENSE 文件。
如有问题,请通过GitHub Issues联系。
感谢所有为本项目做出贡献的人!
⭐ 如果这个项目对你有帮助,请给个Star支持一下吧!







