### 1. 立项背景和目标
随着线上购物、商品管理和订单履约逐渐成为零售业务的基础能力,一个电商系统需要同时支撑消费者购物、商家经营和平台管理三类角色。DatasetSystem 以综合类电商平台为业务原型,围绕“商品浏览、购物车、下单、支付、评价、售后、商家处理、平台治理”形成完整业务闭环。
本项目的建设目标包括:
- 面向消费者提供注册登录、商品浏览、购物车、下单支付、订单管理、评价、售后和地址管理等基础购物能力。
- 面向商家提供商品管理、订单发货、售后处理和经营数据查看能力。
- 面向管理员提供用户管理、类目管理、商品审核、订单治理、优惠券配置、首页内容配置和报表分析能力。
- 通过前后端分离、模块化后端和关系型数据库设计,形成结构清晰、便于演示和后续扩展的课程项目。
### 2. 软件功能模块介绍
#### 用户端功能
用户端面向普通消费者,主要功能包括:
- 注册与登录:支持账号注册、用户名密码登录、验证码注册/找回密码和模拟第三方登录。
- 商品浏览:支持首页推荐、类目浏览、商品列表、商品详情、SKU 信息和商品图片展示。
- 购物车:支持加入购物车、修改数量、勾选商品、删除商品和结算前校验。
- 订单与支付:支持创建订单、查看订单列表和详情、取消订单、确认收货,以及模拟支付成功后回写订单状态。
- 地址管理:支持新增、编辑、删除和设置默认收货地址。
- 优惠券与营销:支持优惠券列表、领取优惠券和查看我的优惠券。
- 评价与售后:支持订单评价、追评、查看售后列表、发起售后申请和取消售后。
- 个人中心:支持个人资料维护、账号绑定信息管理和消费统计查看。
#### 商家端功能
商家端面向平台入驻商家,主要功能包括:
- 商家工作台:查看本店商品、订单、售后等经营概况。
- 商品管理:查看本店商品,提交商品新增或修改申请。
- 订单处理:查看本店订单,对已支付订单进行发货处理。
- 售后处理:查看售后工单,并对用户售后申请进行同意或拒绝处理。
#### 管理端功能
管理端面向平台运营和治理人员,主要功能包括:
- 用户管理:查看用户列表,维护用户状态、角色和基础信息。
- 类目管理:维护商品分类体系,支撑商品归类和前台分类浏览。
- 商品治理:查看商品数据,审核商家提交的商品变更申请。
- 订单与售后治理:查看全局订单、处理异常订单和售后争议。
- 优惠券管理:创建优惠券,维护优惠券发放和使用规则。
- 首页配置:维护首页中间橱窗等展示内容。
- 报表分析:查看销售统计、订单趋势、热销商品等运营数据。
### 3. 业务流程功能描述
#### 用户购物主流程
用户进入系统后,可以先浏览首页推荐或通过分类页查找商品。进入商品详情页后,用户选择 SKU 并加入购物车。结算时系统校验商品状态、价格、库存和收货地址,生成订
### 1. 整体架构和设计思路
项目采用前后端分离的模块化单体架构。前端位于 `frontend/`,负责页面展示、路由跳转、表单交互和调用 API;后端位于 `backend/`,负责接口服务、业务规则、权限校验和数据库访问;MySQL 负责存储用户、商家、商品、订单、支付、售后、优惠券、报表等核心数据。
整体请求链路为:
1. 浏览器访问 React 单页应用。
2. 前端通过 Axios/API 封装访问后端 REST 接口。
3. Express 根据路由分发到对应业务模块。
4. 后端按 `routes -> controller -> service -> repo` 分层处理请求。
5. repo 层通过 `mysql2` 访问 MySQL,并将结果返回给前端。
后端模块按业务域拆分,例如 `auth`、`users`、`catalog`、`cart`、`orders`、`payments`、`reviews`、`aftersales`、`seller`、`admin`、`marketing`、`uploads` 等。每个模块内部尽量保持职责单一:路由层声明接口,控制器层处理参数和响应,服务层承载业务逻辑,仓储层负责 SQL 和数据访问。
前端采用统一 React 应用承载用户端、商家端和管理端,通过路由和权限守卫区分访问范围。普通用户访问 `/`、`/category`、`/cart`、`/orders` 等页面;商家访问 `/seller` 下的工作台、商品和订单页面;管理员访问 `/admin` 下的用户、分类、商品、订单、优惠券、首页配置和报表页面。
### 2. 数据库设计思路
数据库采用 MySQL。核心业务表按电商领域对象拆分:
- 用户与身份:`users`、`user_identities`、`auth_verification_codes`
- 商家:`sellers`
- 商品与类目:`categories`、`product_spus`、`product_skus`、`product_images`
- 库存:`warehouses`、`inventory`
- 购物车与订单:`cart_items`、`orders`、`order_items`、`order_addresses`
- 支付与退款:`payments`、`refunds`
- 售后与评价:`aftersale_tickets`、`reviews`、`review_followups`、`review_images`
- 营销与报表:`coupons`、`user_coupons`、`promotions`、`report_sales_daily` 等
商品采用 SPU/SKU 模型,SPU 表示商品主体,SKU 表示具体可售规格;订单