Skip to content

WY202114/LinkPet

Repository files navigation

🐾 LinkPet — 宠物领养平台

连接每一只需要家的动物与每一颗愿意付出爱的心。

LinkPet 是一个面向普通用户与管理员的宠物领养平台,支持宠物发布与浏览、领养申请、社区帖子、图片上传等完整业务闭环。


✨ 功能特性

用户端

  • 首页:动态统计数据(成功领养数、待领养数、注册用户数)、全局装饰背景
  • 领养中心:按品种筛选宠物、查看宠物详情弹窗(多图轮播)、申请领养、发布宠物
  • 宠物社区:浏览帖子、发布帖子、点赞 / 取消点赞、评论 / 回复、删除自己的帖子
  • 个人中心:查看我发布的宠物 / 帖子、领养申请记录
  • 自定义品种:发布宠物时可填写自定义品种名称,提交管理员审核

管理端

  • 用户管理、宠物管理、帖子管理(包括删帖)、领养申请审核
  • 品种管理:审核用户提交的自定义品种,通过后自动创建品种记录

通用

  • JWT 无状态认证(用户端 + 管理端独立 Security 配置)
  • MinIO 图片对象存储(支持多图上传)
  • 全局统一响应格式 { code, message, data }
  • 雪花 ID Long → String 序列化,避免前端精度丢失

🛠️ 技术栈

层次 技术
后端框架 Spring Boot 3.2
持久层 MyBatis-Plus 3.5.5
安全认证 Spring Security + JWT (jjwt 0.11)
对象存储 MinIO 8.2
数据库 MySQL 8
前端框架 Vue 3 + Vite
HTTP 客户端 Axios
构建工具 Maven(多模块)
Java 版本 Java 17

📁 项目结构

LinkPet/ ├── linkpet-common/ # 公共模块:JWT、MinIO、ThreadLocal、统一响应、全局异常 ├── linkpet-model/ # 数据模型:Entity / DTO / VO ├── linkpet-mapper/ # 持久层:MyBatis-Plus Mapper + XML ├── linkpet-service/ # 业务层:Service 接口 + 实现 ├── linkpet-web-app/ # 用户端 API(端口 8080) ├── linkpet-web-admin/ # 管理端 API(独立端口) ├── linkpet-frontend/ # Vue 3 前端(Vite) │ └── src/ │ ├── api/ # 接口封装(pets / posts / auth / upload...) │ ├── views/ # 页面(home / adoption / community / guide / profile) │ ├── router/ # 路由配置 │ ├── store/ # 用户状态管理 │ └── utils/ # 工具函数(format / http) └── docs/ # 开发文档(dev-log.md / issues.md) 

🗄️ 数据库表

表名 说明
user 用户信息
pet_type 宠物品种
pet 宠物信息(含多图 JSON)
post 社区帖子
comment 评论(支持一级 + 回复)
user_action 用户行为(点赞记录)
adoption_apply 领养申请

完整建表语句见 docs/db.sql


🚀 快速开始

环境准备

  • JDK 17+
  • Maven 3.8+
  • MySQL 8.0+
  • MinIO(本地部署或云端)
  • Node.js 18+

后端启动

  1. 初始化数据库

    -- 执行建表语句 source docs/db.sql;
  2. 配置文件

    linkpet-web-app/src/main/resources/application.ymllinkpet-web-admin/src/main/resources/application.yml 中配置:

    spring: datasource: url: jdbc:mysql://localhost:3306/linkpet username: your_username password: your_password minio: endpoint: http://localhost:9000 access-key: your_access_key secret-key: your_secret_key bucket-name: linkpet
  3. 编译并启动

    # 编译整个多模块项目 mvn clean install -DskipTests # 启动用户端 cd linkpet-web-app mvn spring-boot:run # 启动管理端(新终端) cd linkpet-web-admin mvn spring-boot:run

前端启动

cd linkpet-frontend npm install npm run dev

访问 http://localhost:5173


📡 主要 API 接口

用户端(端口 8080)

方法 路径 说明
POST /auth/register 注册
POST /auth/login 登录(返回 JWT)
GET /pets 分页查询宠物列表
GET /pets/{id} 宠物详情(含点赞状态)
POST /pets 发布宠物(需登录)
DELETE /pets/{id} 删除宠物(需登录)
GET /posts 分页查询帖子列表
POST /posts 发布帖子(需登录)
PUT /posts/{id}/like 点赞 / 取消点赞
GET /comments 查询评论列表
POST /comments 发表评论(需登录)
POST /adoptions 提交领养申请(需登录)
POST /upload/image 上传图片至 MinIO
GET /stats/home 首页统计数据

管理端

方法 路径 说明
POST /admin/auth/login 管理员登录
GET /admin/pets/type-reviews 待审核自定义品种列表
PUT /admin/pets/{id}/type-review 审核品种(?approved=true/false)
GET /admin/adoptions 领养申请列表
PUT /admin/adoptions/{id} 审核领养申请

📝 开发文档

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors