立项背景:随着移动互联网的普及,中小商家需要一个覆盖 PC 端和移动端的电商解决方案来拓展线上销售渠道。传统电商平台入驻成本高、规则多,自建电商系统成为面向中小商家的可行方向。ShopStream 的目标是提供一个功能完整、开箱即用的 B2C 电商平台,让商家快速搭建自己的在线店铺。
软件功能:系统围绕电商核心链路设计了八大功能模块。消费者端支持用户注册登录、商品浏览搜索、多规格选择、购物车管理、微信支付下单、订单跟踪、确认收货和售后退款。商家管理后台提供商品上下架与 SKU 管理、订单处理与发货、退款审核、用户管理、分类品牌管理、系统配置和操作日志。另外还实现了商品收藏、热门搜索词、分类导航等辅助功能。
业务流程:消费者打开网站或小程序 → 浏览分类/搜索关键词 → 查看商品详情页(多图、多规格、价格)→ 加入购物车 → 选择收货地址 → 微信支付 → 下单成功 → 商家收到订单 → 发货 → 消费者确认收货 → 完成交易。如有问题可发起退款申请,商家审核处理
整体架构:项目采用前后端分离架构。后端基于 Spring Boot 3 + MyBatis-Plus 构建,分为 controller、service、dao 三层,使用 Redis 缓存热点数据(商品详情、分类信息),通过 Redisson 自定义注解实现分布式锁解决库存超卖。集成 Sa-Token 做无状态 Token 认证,双资源服务器分离管理端和用户端权限。前端分别使用 Vue 3 + Element Plus(管理后台 SPA)和 Uni-app(跨端用户端,同时生成 H5 和微信小程序)。
我的负责模块:独立完成全部模块的开发。后端实现 50+ RESTful API,数据库设计约 40 张表覆盖商品、订单、用户、系统四大领域。前端完成管理后台全部页面和用户端跨端适配。
难点与解决方案:电商高并发场景下的库存超卖问题是核心难点。在秒杀等高流量场景下,多个用户同时下单可能导致同一件商品被重复扣减库存。解决方案是基于 Redisson 实现声明式分布式锁 @RedisLock 注解,利用 SpEL 表达式动态解析锁 Key(如商品 SKU ID),在扣减库存前加锁、操作完成后释放,有效防止超卖。另一个难点是多端适配,通过 Uni-app 一套代码同时生成 H5 和小程序,避免了重复开发两套前端的工作量。