【立项背景和目标】
消费升级背景下,中小品牌方需要一套兼顾内容质感与交易效率的自营商城系统。本项目为个人独立开发的中高端 B2C 购物平台,目标是在一套系统内跑通「用户购物 + 商家运营」双端闭环,并验证个性化推荐算法在真实订单链路中的落地效果。
【核心功能】
用户端 13 个页面:注册登录(手机号+短信验证码)、商品分类/搜索/列表筛选、商品详情、购物车、订单全流程(下单/支付/取消/确认收货)、物流时间线跟踪、商品评价、售后退款、消息通知、收藏夹、个性化推荐,支持简/繁/英式/美式 4 种语言与亮暗双主题。
管理后台 8 个页面:ECharts 数据看板、用户管理、商品管理(多语言信息+上下架+编辑精选)、树形分类管理、订单发货、售后审核、推荐效果分析。
【业务流程】
用户注册登录 → 浏览/搜索商品 → 加入购物车 → 勾选结算 → 选择地址提交订单 → 在线支付 → 管理端发货并生成物流单 → 用户跟踪物流时间线 → 确认收货 → 评价商品;异常路径支持超时未支付自动取消并回补库存,售后申请 → 后台审核 → 退款处理全链路闭环。
【整体架构与设计思路】
前后端分离三层架构。后端:Spring Boot 3.2.5 + MyBatis-Plus + MySQL 8.0(13 张表)+ JDK 17,JWT 无状态认证 + 过滤器链鉴权,用户端/管理端接口隔离并做双重权限校验;前端:用户端与管理后台为两个独立 Vue 3 + Vite 5 + Pinia + Element Plus 工程,共用同一套 REST API(40+ 个接口);测试层:Python + pytest + Playwright。
【我的贡献与结果】
独立完成需求分析、数据库设计、前后端开发、自动化测试全流程,产出用户端 13 页面 + 管理后台 8 页面。核心模块:① 基于余弦相似度的协同过滤推荐——埋点采集 VIEW/CART/LIKE/PURCHASE 四类加权行为,Top-20 相似用户生成 Top-10 推荐结果,内存缓存 + 凌晨定时刷新;② 订单模块——事务保证下单扣库存一致性,定时任务实现 30 分钟未支付自动取消并回补库存;③ 物流跟踪/售后/消息通知完整业务闭环。
【难点、坑与解决方案】
1、推荐冷启动:新用户行为不足时推荐列表为空。设计「行为不足 5 条自动降级热门榜」策略,保证任何入口都有内容可渲染。
2、E2E 测试登录态脆弱:UI 登录慢且易失败。改为 API 登录获取真实 JWT 后注入浏览器,60 个用例约 75 秒跑完、通过率 100%。
3、测试数据污染:下单用例消耗库存、残留购物车。制定数据无污染策略(取消订单回补库存、测试地址用后即删、管理后台只读),支持一键重复回归。
4、多语言与安全:实现 4 语言 i18n 体系(前端语言包 + 数据库多语言字段 + 后端按语言参数返回),全链路接入 XSS 消毒、SQL 参数化、越权校验,并通过前后端安全审计。