# 17-农产品销售系统 - 功能说明
# 项目概述
面向农产品购买与商家经营的销售平台,提供商品分类、商品审核、购物车、收货地址、收藏、订单、评价和余额业务。订单创建支持立即购买与购物车结算,并按商家拆分订单。
# 项目概览
# 创新点
- 按商家拆单:一次结算中的商品按商家分组,各商家生成独立订单及明细。
- 服务端计算金额:根据商品记录价格和数量计算金额,创建订单时扣款、扣库存并登记商家余额。
- 取消联动:待发货订单取消时恢复库存并退回用户余额。
# 项目亮点
- 角色分工:提供管理员、商家、用户等业务入口。
- 业务数据组织:主初始化脚本包含 13 张表;具体业务完成程度以各功能章节及当前实现说明为准。
- 前后端分离:前端负责页面交互,后端通过控制器、服务与数据映射层提供接口。
- 操作体验:提供列表查询、表单编辑、状态展示及个人资料维护入口。
# 管理员
# 账号审核
维护用户、管理员及商家账号,处理商家状态。
# 商品审核
维护分类与商品,处理商品上下架和审核状态。
# 交易管理
查看订单、代发货及管理评价。
# 平台内容
维护公告、轮播图,查看首页统计图表。
# 商家
# 商品经营
维护本店商品、价格和库存,提交商品审核。
# 订单处理
查看本店订单,执行发货并查看相关交易数据。
# 销售记录
查看商品评价及与本店经营有关的数据。
# 用户
# 农产品浏览
浏览商品分类与详情,收藏商品。
# 选购结算
立即购买或通过购物车结算,选择收货地址并使用系统余额支付。
# 订单管理
查看个人订单、取消待发货订单及确认收货。
# 个人资料
维护地址、收藏、评价、个人信息和密码,查看余额并充值。
# 功能权限对照表
下表说明当前菜单与业务入口分工。“—”表示未列为该角色的常规入口;不代表已对每个接口完成权限安全审计。
| 功能模块 | 管理员 | 商家 | 用户 |
|---|---|---|---|
| 账号、分类和平台内容 | 管理 | — | 浏览 |
| 商品 | 审核维护 | 发布维护 | 浏览收藏 |
| 订单 | 管理及代发 | 本店发货 | 下单取消收货 |
| 评价 | 管理 | 相关评价 | 个人评价 |
| 地址、购物车和余额 | 相关数据接口 | 商家余额记录 | 个人使用 |
# 业务状态说明
- 订单:待发货 → 待收货 → 已完成;待发货时可取消为已取消。
- 商品:商家新增时进入待审核,审核及上下架操作维护商品状态,购买服务要求商品状态为上架。
- 商家注册:初始化为待审核。
# 默认账号
以下为主初始化 SQL 中能够核实的示例账号;需先导入对应脚本。这里不把脚本初始值视为当前运行数据库的实际账号或余额。
| 登录角色 | 角色标识 | 用户名 | 初始密码 |
|---|---|---|---|
| 管理员 | ADMIN | admin | 123456 |
| 商家 | MERCHANT | merchant | 123456 |
| 用户 | USER | user | 123456 |
# 核心业务流程
# 订单创建
- 选择商品或购物车记录。
- 选择本人地址。
- 校验商品状态及库存。
- 按当前价格计算并扣减余额。
- 按商家生成订单及明细。
- 扣库存并增加商家余额。
- 清理已结算购物车。
# 发货收货
- 商家查看本店待发货订单。
- 发货。
- 订单待收货。
- 用户确认收货。
- 订单已完成。
# 取消订单
- 用户选择本人的待发货订单。
- 提交取消。
- 状态变为已取消。
- 恢复库存。
- 退款到用户系统余额。
# 技术说明
# 系统架构
| 项目 | 当前源码配置 |
|---|---|
| Vue | ^3.4.29 |
| Element Plus | ^2.8.4 |
| Pinia | ^2.2.2 |
| Axios | ^1.7.5 |
| Vite | ^5.3.1 |
| Spring Boot | 3.2.10 |
| Java | 17 |
| MyBatis 集成组件 | 3.0.4 |
| 数据库 | MySQL;具体运行版本以实际部署为准 |
| 身份认证 | JWT;通过登录接口生成令牌 |
前端版本按 package.json 中的声明范围记录,不将依赖范围等同于已安装的精确版本。
# 访问地址
- 后端接口:http://localhost:1000 (opens new window),对应服务端端口配置。
- 前端开发页面:http://localhost:5173 (opens new window),项目未显式覆盖 Vite 默认端口,实际以启动日志为准。
- 登录入口:前端
/login;管理端基础路由/admin。
# 数据库
- 配置数据库名:
a_2026_17_product_system。 - 主初始化脚本:
sql/sql.sql。 - 主脚本建表数量:13 张,仅统计当前主脚本的 CREATE TABLE,不包含临时 SQL、迁移脚本或运行时改动。
- 字符集:主脚本采用 utf8mb4。
- 数据表清单:
admin、user、merchant、category、product、banner、cart、orders、order_item、address、favorite、comment、notice。
# 文件上传
- 上传接口:
POST /file/upload。 - 文件访问:
GET /file/{fileName}。 - 配置限制:单文件 100MB,单次请求 1000MB。
- 使用范围:根据业务页面上传图片或附件;具体允许类型以对应上传组件配置为准。
# 系统特色
# 按商家拆单
一次结算中的商品按商家分组,各商家生成独立订单及明细。
# 服务端计算金额
根据商品记录价格和数量计算金额,创建订单时扣款、扣库存并登记商家余额。
# 取消联动
待发货订单取消时恢复库存并退回用户余额。
# 当前实现说明
- 余额属于系统内部账户,充值与支付未核实接入银行或第三方支付网关。
- 下单时已增加商家余额,但当前取消方法仅恢复库存并退回用户余额,没有相应冲减商家余额,资金记录仍需完善。
- 订单创建和取消标注事务,但本次未运行并发下单测试,不能据此宣称解决了超卖或所有资金一致性问题。
本次按本地源码进行静态核对,未启动前后端或连接数据库执行端到端验证;上述说明反映当前代码与页面定义。