023 SpringBoot实现萌宠集市

专注于分享 Java 方向的 代码 辅导内容,欢迎交流

萌宠集市 PetMall

一个基于 Spring Boot 3.x/2.7 + MyBatis-Plus 的宠物交易平台,提供宠物发布、浏览、交易、订单、钱包、收藏、公告等完整功能,并配有独立的商家管理与平台管理后台。

项目简介

萌宠集市(PetMall)是一个安全可靠的宠物交易平台,买家可以浏览、搜索、收藏宠物,通过钱包担保完成交易;卖家可以发布宠物、管理订单;平台管理员负责宠物审核、用户管理、分类与公告维护。

技术栈

分类 技术
后端框架 Spring Boot 2.7.18
ORM MyBatis-Plus 3.5.3.1
数据库 MySQL 8.0 / MariaDB
认证鉴权 JWT + Spring Security Crypto (BCrypt)
前端 原生 HTML/CSS/JavaScript
构建工具 Maven
Java 版本 JDK 8+(17 需补 JAXB 依赖)

功能总览

用户端

  • 用户注册 / 登录(JWT 认证)
  • 宠物分类浏览、关键词搜索、筛选排序
  • 宠物详情(图片轮播、卖家信息、收藏)
  • 购物车(加入、移除、结算)
  • 订单流程(下单、支付、取消、发货、确认收货)
  • 钱包(充值、交易流水)
  • 发布宠物(等待平台审核)
  • 我的发布(编辑、下架、重新上架、删除)
  • 我的收藏、个人中心(资料、密码修改)

管理端

  • 宠物审核(通过 / 驳回)
  • 宠物管理(强制下架、状态筛选)
  • 订单管理(全量订单查询)
  • 用户管理(禁用、删除)
  • 分类管理(增删)
  • 公告管理(发布、编辑、删除、启停用)

快速开始

1. 环境准备

  • JDK 8+(或 JDK 17 + JAXB 依赖,pom 已内置)
  • Maven 3.6+
  • MySQL 8.0 / MariaDB

2. 初始化数据库

复制代码
-- 使用项目自带脚本创建库表与种子数据
mysql -u root -p < sql/pet_mall.sql

3. 配置数据库连接

修改 src/main/resources/application.yml

复制代码
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/pet_mall?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: 123456

petmall:
  upload:
    dir: /workspace/uploads   # 图片上传保存目录

应用首次启动时会自动创建默认管理员账号 admin / 123456

4. 构建与启动

复制代码
mvn clean package -DskipTests
java -jar target/pet-mall.jar

启动成功后访问 http://localhost:8080

5. 演示账号

角色 账号 密码
平台管理员 admin 123456
卖家 seller01 123456
买家 buyer01 123456

功能截图说明

用户端

首页

平台门户首页,包含 Hero 宣传区、宠物分类导航、搜索筛选栏、萌宠展示网格与平台公告。

游客可浏览全部在售宠物,点击分类图标按「猫咪 / 狗狗 / 兔子 / 仓鼠 / 鸟类 / 爬宠 / 鱼类」筛选,也可按关键词、性别、疫苗、价格进行搜索排序。

宠物详情

展示宠物图片轮播、品种信息、价格、卖家信息、浏览量,并提供「加入购物车」「立即购买」「收藏」操作。

已售出的宠物会展示「已售出」状态,无法再次购买。

用户登录

账号密码登录,登录成功后跳转首页,支持记录跳转来源。

用户注册

注册账号需填写用户名(3-20位)、密码(6-20位)、昵称与手机号,手机号需符合大陆手机格式。

公告详情

平台公告详情页,展示公告标题、内容与发布时间。

买家首页(已登录)

登录后顶部导航显示昵称与头像,可直达购物车、订单、发布、收藏、钱包等入口。

购物车

展示加入购物车的宠物,支持勾选、删除,并可一键结算生成订单。

我的订单

买家视角的订单列表,支持按状态筛选(待付款 / 待发货 / 待收货 / 已完成 / 已取消),可执行支付、取消、确认收货等操作。

我的收藏

展示收藏的宠物卡片,点击可进入详情。

我的钱包

展示钱包余额与收支流水,支持在线充值(单次最高 5000 元),流水区分充值、购买支出、售出收入。

个人中心

修改昵称、手机号、头像以及登录密码。

宠物详情(可购买)

在售宠物的详情页展示完整购买操作按钮。

我的发布(卖家)

卖家查看自己发布的宠物列表,包含审核状态(待审核 / 在售 / 已售出 / 已下架 / 审核驳回),支持编辑、下架、重新上架、删除。

发布宠物

填写分类、名称、品种、年龄、性别、毛色、疫苗、描述、价格与封面图片,发布后等待平台审核。

卖家订单

卖家视角的订单列表,展示售出记录,支持发货操作。

卖家钱包

卖家收到货款后钱包余额增加,流水记录售出收入。

管理端

管理端登录

管理员通过独立登录入口进入管理后台。

宠物审核

对待审核宠物进行审核,可查看详情、点击「通过」上架或「驳回」。

宠物管理

按状态筛选全部宠物,支持强制下架违规宠物。

订单管理

查看平台全部订单,按状态筛选,掌握交易全貌。

用户管理

查看用户列表(余额、手机号、注册时间),支持禁用、删除用户。

分类管理

维护宠物分类,支持新增、删除分类。

公告管理

发布平台公告,支持编辑、删除、启用 / 停用公告。

项目结构

复制代码
src/main/java/com/petmall/
├── controller/            # 用户端控制器(认证、宠物、购物车、订单、钱包、收藏、公告)
│   └── admin/             # 管理端控制器(审核、宠物、订单、用户、分类、公告)
├── service/               # 业务逻辑层
├── mapper/                # MyBatis-Plus Mapper
├── entity/                # 实体类(User、Pet、Order、Cart、Favorite 等)
├── dto/                   # 请求参数对象
├── config/                # 配置(WebConfig、拦截器、上传、JWT、MyBatis-Plus)
├── interceptor/           # 登录拦截器、管理员拦截器
├── util/                  # JWT、当前用户上下文
├── common/                # 统一返回、异常、分页
├── init/                  # 启动初始化(创建默认管理员)
src/main/resources/
├── static/                # 前端页面(用户端 + admin 管理端)
└── application.yml        # 应用配置
sql/pet_mall.sql           # 数据库初始化脚本

API 概览

模块 路径前缀 说明
认证 /api/auth/* 注册、登录
宠物 /api/pet/* 列表、详情、发布、我的发布、上下架
购物车 /api/cart/* 加购、移除、清空、列表
订单 /api/order/* 下单、支付、取消、发货、收货
钱包 /api/wallet/* 交易流水
用户 /api/user/* 个人信息、充值、改密
收藏 /api/favorite/* 添加、移除、列表
公告 /api/announcement/* 公告列表、详情
文件 /api/file/* 图片上传
管理端 /api/admin/* 审核、宠物管理、订单、用户、分类、公告
相关推荐
花哥码天下1 小时前
docker流水线
java
十二同学啊1 小时前
Drools规则引擎:让复杂业务规则从代码中解耦
java·后端·开源
周先生FullStack2 小时前
Mac + 容器本地 MySQL/Redis 环境搭建与网络原理实战
java·spring boot·微服务·容器·架构·个人开发
吠品2 小时前
Nginx负载均衡配置与线上故障排查的一些经验
java·开发语言·数据库
边境悍匪2 小时前
蜗牛学苑 Java 智能体学习 Day44|Vue 前端项目搭建 思维导图复盘
java·开发语言·spring boot·学习·阿里云
万年咸鱼2 小时前
public class 和 class 的区别详解
java
焦虑的说说2 小时前
redis知识汇总
java·redis
Wang's Blog2 小时前
Java 接入Redis: 密码认证与远程连接配置
java·服务器·redis