1. 立项背景和目标
随着健身人群对运动营养品需求的增长,传统线下购买渠道存在信息不透明、选购不便等问题。本项目旨在搭建一个集商品交易、售后服务和社区交流于一体的 B2C 电商平台,让用户能够方便地浏览和购买运动营养品,同时通过论坛与商家和其他用户互动。
2. 软件功能、核心功能模块
用户模块:注册登录、个人信息编辑、收货地址管理、商品收藏。
商品模块:商品列表分页展示、商品详情、商品评论、商家商品管理。
订单模块:用户下单、订单查询、订单状态更新、售后申请与处理。
论坛模块:发布话题、评论互动、话题分页浏览。
即时通讯模块:用户与商家之间实时聊天、会话列表、未读消息统计(基于 WebSocket)。
后台管理模块:用户管理、商家管理、公告管理、反馈留言管理。
3. 业务流程、功能路径描述
用户注册登录后,可浏览商品并加入收藏或直接下单;下单后可在订单列表中查看状态,如有问题可提交售后申请,由商家或管理员处理。同时,用户可在论坛发布话题、评论互动,也可通过聊天模块与商家实时沟通。管理员通过后台对用户、商家、公告、反馈等进行统一管理。
1. 整体架构和设计思路,不同模块使用的技术栈
项目采用前后端分离架构,后端基于 SpringBoot + MyBatis + MySQL,通过 RESTful API 对外提供服务。控制层使用 @RestController 统一返回 Result 封装结果,业务逻辑由 Service 层处理,数据访问由 Mapper 层完成。即时通讯模块基于 WebSocket 实现用户与商家的实时消息推送。文件上传使用 阿里云 OSS 完成图片存储。分页查询统一封装为 PageBean,参数通过 AnnouncementParam 等实体传递。
2. “我”的负责模块和结果(尽可能量化)
本人独立负责后端全部核心模块的开发与联调,包括:
用户、商家、商品、订单、地址、收藏、评论、论坛、反馈、聊天等 10+ 个 Controller;
设计并实现 20+ 张 MySQL 数据表,覆盖用户、商品、订单、售后、聊天记录等业务实体;
实现 30+ 个 RESTful 接口,支撑前端所有业务场景;
集成 WebSocket 实现用户与商家实时聊天,支持会话列表和未读消息统计;
接入阿里云 OSS 实现图片上传,统一返回文件 URL。
3. “我”遇到的难点、坑和解决方案
难点一:WebSocket 消息推送与用户在线状态判断。 解决方案:在 ChatWebSocket 中维护在线用户 Map,发送消息时根据 senderType 判断接收方是否在线,并将在线状态随消息返回给前端。
难点二:分页查询参数不统一。 解决方案:抽象出 AnnouncementParam 和 PageBean 作为统一分页模型,各模块复用,减少重复代码。
难点三:售后流程状态流转复杂。 解决方案:在 ProductController 中单独拆分售后相关接口(如 addAfterProduct、updateAfter、deleteAfter),确保售后申请与订单状态解耦,便于扩展。