基于SpringBoot2+vue2的在线拍卖系统
温馨提示:
本文最后更新于 2026年05月28日,已超过 13 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
1. 资源
认真读完全文可以获取
2. 项目简介
本项目为一款在线拍卖系统,提供线上商品拍卖功能。系统包含前端用户门户(基于 layui)和后端管理界面(基于 Vue + Element UI),支持用户注册/登录、浏览拍卖商品、参与竞拍、生成历史竞拍记录、管理员审核竞拍、生成订单及支付等完整流程。数据库采用 MySQL,后端使用 Spring Boot + MyBatis-Plus 框架,权限控制基于 Shiro 和自定义 Token 机制。
3. 技术栈
| 层级 | 技术/框架 | 说明 |
|---|---|---|
| 后端框架 | Spring Boot 2.2.2.RELEASE | 提供 IOC、Web 支持 |
| ORM 框架 | MyBatis-Plus 2.3 + MyBatis | 简化数据库操作,支持分页 |
| 数据库 | MySQL 5.7.32 | 数据库 springbootp0eo6 |
| 权限控制 | Apache Shiro 1.3.2 + 自定义 Token | 登录认证、接口鉴权 |
| 前端管理 | Vue 2 + Element UI | 后台管理界面 |
| 前端门户 | layui + HTML/CSS/JS | 用户端页面,含轮播图、商品列表、竞拍操作等 |
| 工具库 | Hutool, Fastjson, Commons-lang3 | 字符串处理、JSON、MD5 等 |
| 构建工具 | Maven | 依赖管理 |
4. 详细介绍
4.1 系统角色
- 管理员
可管理用户、商品类型、拍卖商品、历史竞拍(审核)、竞拍订单、留言板、轮播图、竞拍公告等。 - 普通用户
可浏览拍卖商品、参与竞拍、查看自己的历史竞拍和订单、留言反馈、支付订单等。
4.2 核心模块
4.2.1 拍卖商品管理
- 表
paimaishangpin存储商品名称、类型、图片、起拍价格、商品详情、活动时间、活动状态(竞拍中/已结束)。 - 管理员可增删改查拍卖商品;前端用户可查看商品详情并点击“竞拍”参与。
4.2.2 商品类型管理
- 表
shangpinleixing维护商品分类(手机、数码、电器、书籍等),用于商品筛选。
4.2.3 历史竞拍
- 用户点击“竞拍”后,系统自动向表
lishijingpai插入一条记录,包含商品名称、类型、出价价格、用户信息、日期等。 - 该记录默认
sfsh(是否审核)为“否”,需要管理员审核。 - 管理员审核通过后,该竞拍记录生效,并自动生成对应的竞拍订单。
4.2.4 竞拍订单
- 表
jingpaidingdan存储成交订单信息,包括订单编号、商品名称、成交价格、用户信息、支付状态(ispay)。 - 用户可在个人中心查看自己的订单,并完成支付(前端模拟支付按钮)。
4.2.5 用户管理
- 表
yonghu存储用户账号(yonghuming)、密码、姓名、性别、头像、身份证、手机、邮箱、地址。 - 支持用户注册、登录、修改个人信息。
4.2.6 留言板
- 表
messages存储用户留言及管理员回复。用户可发表留言,管理员可回复。
4.2.7 系统管理
- 轮播图管理:表
config存储首页轮播图图片地址(picture1~picture3等)。 - 竞拍公告:表
news存储公告标题、简介、图片、内容,用户端可查看公告列表及详情。
4.2.8 前后端分离与权限
- 后端所有 API 均需携带
Token头进行身份验证(除@IgnoreAuth标注的接口如登录、注册、部分列表查询)。 - 前端管理后台(Vue)通过
http.js拦截器自动添加 Token。 - 用户端页面通过
localStorage存储 Token 和用户角色,判断权限按钮显示。
4.3 业务流程示例
- 用户注册/登录 → 进入商品列表页。
- 选择“竞拍中”的商品 → 点击“竞拍”按钮,填写出价(系统逻辑未完全展示,但前端会携带用户信息提交至
lishijingpai表)。 - 管理员后台查看历史竞拍记录 → 审核通过 → 系统自动生成竞拍订单(
jingpaidingdan表)。 - 用户查看订单 → 点击“支付”(模拟) → 订单状态变为“已支付”。
- 管理员可管理轮播图、公告等,维护系统首页内容。
5. 部分代码
5.1 数据库表结构示例(paimaishangpin)
CREATE TABLE `paimaishangpin` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`shangpinmingcheng` varchar(200) NOT NULL COMMENT '商品名称',
`shangpinleixing` varchar(200) NOT NULL COMMENT '商品类型',
`tupian` varchar(200) DEFAULT NULL COMMENT '图片',
`jiage` int(11) NOT NULL COMMENT '价格',
`shangpinxiangqing` longtext COMMENT '商品详情',
`huodongshijian` varchar(200) DEFAULT NULL COMMENT '活动时间',
`huodongzhuangtai` varchar(200) DEFAULT NULL COMMENT '活动状态',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='拍卖商品';
5.2 后端 Controller 示例(竞拍订单)
@RestController
@RequestMapping("/jingpaidingdan")
public class JingpaidingdanController {
@Autowired
private JingpaidingdanService jingpaidingdanService;
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, JingpaidingdanEntity jingpaidingdan, HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
jingpaidingdan.setYonghuming((String)request.getSession().getAttribute("username"));
}
EntityWrapper<JingpaidingdanEntity> ew = new EntityWrapper<>();
PageUtils page = jingpaidingdanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jingpaidingdan), params), params));
return R.ok().put("data", page);
}
// ... 其他增删改查方法
}
5.3 前端用户登录(login.html 片段)
http.request(data.role + '/login', 'get', data, function(res) {
layer.msg('登录成功', { time: 2000, icon: 6 });
localStorage.setItem('Token', res.token);
localStorage.setItem('role', jquery('#role:checked').attr('title'));
localStorage.setItem('userTable', data.role);
localStorage.setItem('adminName', data.username);
// 跳转首页
window.location.href = '../../index.html';
});
5.4 MyBatis-Plus 配置
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
typeAliasesPackage: com.entity
global-config:
id-type: 1
field-strategy: 2
db-column-underline: true
logic-delete-value: -1
logic-not-delete-value: 0
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
6. 部分截图










7. 项目总结
本项目是一个功能较为完整的在线拍卖系统,涵盖用户端和管理端。后端采用 Spring Boot + MyBatis-Plus 实现 RESTful API,数据库设计合理,包含商品、竞拍、订单、用户等核心表。权限控制通过 Token + Session 结合 Shiro 实现,前端分为 layui 用户门户和 Vue Element 管理后台,满足不同角色的操作需求。
主要亮点:
- 竞拍流程完整(用户出价 → 管理员审核 → 生成订单 → 支付)。
- 支持轮播图动态配置和公告发布。
- 前后端分离,接口统一返回
R对象。
整体而言,该项目可作为学习 Spring Boot + MyBatis-Plus + Vue 整合开发的参考案例,也可在此基础上扩展更复杂的拍卖规则和支付功能。
正文到此结束
- 本文标签: Java Spring Spring Boot
- 本文链接: https://blog.xiaobias.com/article/7
- 版权声明: 本文由十五喵原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
