基于Spring Boot与Vue的校园二手书本交易平台实现方案
一、系统架构设计
采用前后端分离架构:
- 前端:Vue 3 + TypeScript + Pinia + Element Plus
- 后端:Spring Boot 2.7 + Spring Security + JWT + MyBatis-Plus
- 数据库:MySQL 8.0 + Redis(缓存/会话)
- 文件存储:阿里云OSS(书籍图片)
- 部署:Nginx(前端) + Docker(后端)
二、核心功能模块
- 用户系统
- 学生注册/登录(学号验证+邮箱验证)
- 第三方登录(微信/QQ)
- 角色管理:买家、卖家、管理员
- 信用评分体系(交易后互评)
- 书籍交易
graph TD
A[发布书籍] --> B[书籍审核]
B --> C[前端展示]
C --> D[加入购物车]
D --> E[生成订单]
E --> F[线下交易]
F --> G[确认收货]
G --> H[信用评价]
- 搜索系统
- 多维度检索:书名/ISBN/专业/课程号
- 智能推荐:基于用户浏览历史
- 书籍状态筛选:全新/九成新/有笔记
- 订单管理
- 订单状态机:待支付 → 待交接 → 已完成 → 已评价
- 校内交接点选择:图书馆/教学楼/宿舍区
- 后台管理
- 书籍审核(OCR识别ISBN)
- 违规内容处理
- 交易数据统计(热销书籍TOP10)
三、数据库设计(核心表)
表名 | 字段说明 |
---|---|
book | ISBN, 书名, 专业分类, 原价, 售价 |
user | 学号, 学院, 信用分, 微信绑定 |
order | 订单状态, 交接地点, 时间窗口 |
comment | 评分, 评语, 图片凭证 |
message | 站内信通知(交易动态) |
四、关键技术实现
- 安全认证
// JWT认证过滤器
public class JwtFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response,
FilterChain chain) {
String token = extractToken(request);
if (token != null && jwtUtil.validateToken(token)) {
Authentication auth = jwtUtil.getAuthentication(token);
SecurityContextHolder.getContext().setAuthentication(auth);
}
chain.doFilter(request, response);
}
}
- 书籍智能推荐
# 协同过滤推荐(Python微服务)
def recommend_books(user_id):
# 1. 获取用户历史行为数据
# 2. 计算相似用户矩阵
# 3. 返回Top5推荐书籍
return book_list
- 实时消息推送
// Vue前端使用WebSocket
const socket = new WebSocket('wss://api.xxx.com/msg');
socket.onmessage = (event) => {
store.commit('addMessage', JSON.parse(event.data));
}
五、性能优化策略
- 缓存机制
- Redis缓存热销书籍列表(TTL=10分钟)
- @Cacheable注解缓存课程书籍目录
- 图片优化
- WebP格式转换(压缩率70%)
- CDN分发静态资源
- SQL优化
/* 使用覆盖索引 */
CREATE INDEX idx_book_course ON book(course_id, status)
六、部署方案
+-----------------+
| 阿里云SLB |
+-------+---------+
|
+----------------+-----------------+
| |
+------+------+ +-------+------+
| Nginx | | Nginx |
| (静态资源) | | (Vue前端) |
+------+------+ +--------------+
|
+-------+--------+
| Spring Boot |
| 集群 (Docker) |
+-------+--------+
|
+-----------+-----------+
| |
+----+-----+ +-----+----+
| MySQL | | Redis |
| 主从复制 | | 哨兵模式 |
+----------+ +----------+
七、特色创新点
- 校园地图集成
- 交接点实时位置展示
- 路径规划(集成高德API)
- 课本识别系统
- 手机扫描ISBN自动填充书籍信息
- 封面识别补全数据
- 课程关联系统
- 对接教务API显示课程所需教材
- 按学期/教师筛选书籍
- 环保积分体系
- 成功交易获“绿色积分”
- 积分兑换打印券/文具
八、安全防护措施
- 敏感操作二次验证(短信/邮箱)
- 交易资金第三方担保(微信支付分)
- 定期漏洞扫描(OWASP ZAP)
- 敏感数据加密存储(AES-256)
开发周期:
- 原型设计:2周
- 核心功能开发:8周
- 测试优化:2周
- 校园试点运行:持续迭代
注意事项:
- 遵守《电子商务法》要求实名认证
- 教材交易需规避版权问题
- 隐私政策符合GDPR标准
该方案兼顾实用性与校园特色,通过技术手段解决线下交易痛点,预计可提升校园书本流通率40%以上。