生鲜配送系统
一、项目概述
1.1 项目简介
生鲜配送系统是一个基于"线上下单 + 线下自提"模式的社区生鲜O2O服务平台。系统为社区居民提供便捷的生鲜购物体验,同时赋能社区便利店/驿站成为自提点,实现降本增效的配送模式。
1.2 业务模式
- 用户端:在线浏览商品、加入购物车、选择自提点、预约取货时间、完成支付
- 平台端:商品管理、订单归集、配送批次调度、数据分析
- 自提点端:接收配送、核销订单、对账查询
1.3 核心特色
- 微信小程序原生开发,用户体验流畅
- 智能推荐附近自提点,基于地理位置
- 六位取货码核销机制,安全便捷
- 批次化配送管理,提升物流效率
- 多角色权限体系,精细化管理
二、技术架构
2.1 整体架构
采用 B/S架构 + 前后端分离 模式,由三端应用、后端服务和数据库组成:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 微信小程序端 │ │ 自提点管理端 │ │ 平台运营端 │
│ (用户客户端) │ │ (Vue3 Web) │ │ (Vue3 Web) │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │
└───────────────────────┴───────────────────────┘
│
┌────────────▼────────────┐
│ SpringBoot 后端服务 │
│ (RESTful API) │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ MySQL 数据库 │
└─────────────────────────┘
2.2 技术栈详情
后端技术栈
- 核心框架:Spring Boot 2.7.18
- 持久层:MyBatis-Plus 3.5.5
- 数据库:MySQL 8.0+
- 认证鉴权:JWT (io.jsonwebtoken 0.11.5)
- 工具库:Hutool 5.8.23
- 微信SDK:weixin-java-miniapp 4.5.0
- 开发语言:Java 1.8
前端技术栈(Web管理端)
- 框架:Vue 3.5.0 (Composition API)
- UI组件库:Element Plus 2.8.0
- 状态管理:Pinia 2.2.0
- 路由管理:Vue Router 4.4.0
- HTTP客户端:Axios 1.7.0
- 图表库:ECharts 6.0.0
- 富文本编辑器:Quill 2.0.3
- 构建工具:Vite 5.4.0
- CSS预处理器:Sass 1.77.0
小程序技术栈
- 框架:微信小程序原生框架
- UI组件:Vant Weapp
- 开发语言:JavaScript + WXML + WXSS
三、系统功能模块
3.1 微信小程序端(用户客户端)
3.1.1 首页模块
- 搜索功能:支持商品关键词模糊搜索
- 定位服务:获取用户位置,智能推荐附近自提点
- 轮播图:展示热销活动和促销信息
- 快捷入口:购物车、订单、自提点查询
- 推荐板块:热销商品榜单展示
- 分类导航:快速跳转到各商品分类
- 底部导航:首页、分类、购物车、我的
3.1.2 商品分类模块
- 左侧分类栏:一级分类列表,点击切换
- 右侧商品列表:展示商品名称、图片、价格、规格、库存状态
- 加购操作:直接加入购物车或跳转详情页
3.1.3 商品详情模块
- 图片轮播:多图展示商品外观
- 基础信息:名称、产地、规格、保质期、新鲜度
- 价格展示:当前价、原价对比
- 库存状态:实时库存显示,缺货时按钮置灰
- 规格选择:支持多规格切换(如500g/1kg)
- 详情介绍:图文详情展示
- 操作按钮:加入购物车、立即购买
3.1.4 购物车模块
- 列表管理:全选/反选、商品项展示
- 数量调整:+/- 按钮,实时计算小计
- 库存校验:超库存提示,不足提醒
- 删除操作:单个删除、批量删除
- 结算栏:选中数量统计、合计金额、去结算按钮
- 空状态:空购物车提示和引导
3.1.5 自提点选择与预约模块
- 列表展示:可用自提点列表,标注营业状态
- 距离计算:基于用户位置显示距离
- 详情展示:位置、电话、营业时间、取货指引
- 时间预约:选择预约取货日期
- 确认选择:确认并进入支付流程
3.1.6 订单结算模块
- 信息确认:商品清单、合计金额
- 自提点信息:选定的自提点详情
- 收货人信息:姓名、电话(支持修改)
- 支付方式:模拟微信/支付宝支付
- 订单备注:可选填写备注信息
- 提交订单:生成订单并跳转详情
3.1.7 订单管理模块
- 状态分类:全部、待配送、配送中、已送达、待核销、已完成、已取消
- 订单列表:按状态筛选展示订单
- 订单详情:
- 订单号、状态、金额
- 商品清单
- 自提点信息
- 取货码(待核销状态)
- 进度跟踪(时间轴展示)
- 订单操作:
- 取消订单(待配送状态)
- 查看取货凭证(待核销状态)
- 再次购买(已完成状态)
- 删除订单(已完成/已取消状态)
3.1.8 取货凭证模块
- 取货码展示:6位数字取货码(大字号显示)
- 二维码:可扫码核销
- 订单信息:订单号、自提点、预约时间
- 商品概览:商品列表简要信息
- 操作按钮:联系自提点(拨打电话)
3.1.9 个人中心模块
- 个人信息:头像、昵称、手机号(脱敏显示)
- 信息编辑:修改头像、昵称、手机号
- 订单入口:快速进入各状态订单列表
- 功能列表:
- 取货凭证
- 我的地址
- 自提点查询
- 关于我们
- 系统设置
3.2 自提点管理端(Web端)
3.2.1 数据看板
- 待办提醒:待核销订单数量高亮显示
- 数据统计:今日/本月核销订单数、核销金额
- 趋势图表:近7天核销趋势折线图
3.2.2 配送接收管理
- 筛选功能:按批次号、时间、状态筛选
- 待接收列表:
- 查看批次详情
- 核对商品明细
- 确认接收(订单状态变更为"已送达")
- 拒收/异常反馈
- 已接收记录:查看历史批次与明细
3.2.3 订单核销
- 核销方式:手动输入6位取货码查询
- 信息核对:订单号、用户信息、商品清单、预约时间
- 确认核销:核销后订单状态变更为"已完成"
- 核销记录:今日核销列表,含核销时间和操作人
3.2.4 历史订单查询
- 筛选条件:订单状态、订单号、手机号、日期范围
- 列表展示:订单详细信息、核销时间、核销人
- 详情查看:完整订单信息
3.2.5 自提点信息设置
- 信息编辑:名称、地址、营业时间、联系电话、门店照片
- 审核机制:修改后需提交平台审核
- 账号管理:修改登录密码
3.3 平台运营端(Web端)
3.3.1 运营数据看板
- 核心指标:
- 今日/本月/累计订单数
- 今日/本月/累计销售额
- 自提点数量
- 用户数量
- 图表分析:
- 订单趋势图(7天/30天/年度)
- 销售额趋势图
- 商品销售排行(热销/滞销)
- 自提点排行(核销量/销售额)
- 用户分析:用户增长与转化率
- 库存预警:低库存/缺货商品提醒
3.3.2 商品管理
- 商品列表:
- 多维度筛选(分类、状态、关键词)
- 展示销量、库存、价格、状态
- 批量操作(上架/下架/删除)
- 商品操作:
- 新增商品(基础信息、价格、库存、规格、图片、详情)
- 编辑商品(支持修改所有字段)
- 上架/下架(控制前端可见性)
- 删除商品(软删除)
- 库存调整(快捷修改库存数量)
- 图片管理:主图上传、详情图上传(支持多图)
3.3.3 商品分类管理
- 分类列表:展示所有一级分类
- 分类操作:
- 新增分类(名称、图标、排序号)
- 编辑分类(修改名称、图标、排序)
- 删除分类(需先清空该分类下的商品)
- 排序管理:设置排序号影响前端展示顺序
3.3.4 自提点管理
- 自提点列表:
- 展示名称、地址、管理员、状态
- 筛选(关键词、状态)
- 分页展示
- 自提点操作:
- 新增自提点(基础信息、管理员账号设置)
- 编辑自提点(修改信息)
- 审核自提点(处理自提点提交的修改申请)
- 启用/禁用(影响前端可见性)
- 删除自提点(需先禁用)
- 管理员分配:为自提点创建登录账号
3.3.5 订单管理
- 订单列表:
- 多维度筛选(状态、订单号、手机号、日期范围、自提点)
- 展示订单号、用户、金额、状态、自提点、时间
- 分页展示
- 订单详情:
- 订单基础信息
- 商品清单
- 用户信息
- 自提点信息
- 状态流转记录
- 订单操作:
- 查看详情
- 导出订单数据
3.3.6 配送批次管理
- 批次列表:
- 筛选(批次号、自提点、状态、日期)
- 展示批次号、自提点、配送日期、订单数、配送员、状态
- 批次操作:
- 生成批次:按自提点+日期归集订单生成配送批次
- 分配配送员:为批次指定配送员
- 配送执行:
- 待配送 → 配送中(开始配送)
- 配送中 → 已送达(完成配送)
- 查看批次详情(包含的订单列表)
3.3.7 用户管理
- 用户列表:
- 展示用户昵称、手机号(脱敏)、注册时间、订单数
- 搜索(手机号、昵称)
- 分页展示
- 用户详情:
- 基础信息
- 订单历史
- 消费统计
3.3.8 系统设置
- 管理员管理:
- 运营账号增删改查
- 角色分配(admin/store)
- 权限控制
- 基础设置:
- 平台名称
- 平台Logo
- 客服电话
- 配送费设置
- 轮播图管理
四、核心业务流程
4.1 用户下单流程
1. 用户浏览商品 → 加入购物车
2. 进入购物车 → 选择商品 → 去结算
3. 选择自提点 → 选择预约时间
4. 填写收货人信息 → 确认订单
5. 选择支付方式 → 完成支付
6. 生成订单(状态:paid,待配送)
7. 生成6位取货码
4.2 平台配送流程
1. 平台查看待配送订单
2. 按自提点+日期归集订单 → 生成配送批次
3. 为批次分配配送员
4. 配送员开始配送(状态:delivering,配送中)
5. 配送员送达自提点(状态:arrived,已送达)
6. 自提点确认接收
4.3 自提点核销流程
1. 自提点接收配送批次 → 确认接收
2. 用户到店出示取货码
3. 自提点输入取货码 → 查询订单
4. 核对订单信息(用户、商品、预约时间)
5. 确认核销 → 订单完成(状态:completed)
6. 记录核销信息(时间、操作人)
4.4 订单状态流转
unpaid(未支付)
↓ 用户支付
paid(待配送)
↓ 平台生成配送批次
delivering(配送中)
↓ 配送员送达
arrived(已送达/待核销)
↓ 自提点核销
completed(已完成)
任意状态 → cancelled(已取消)
五、数据库设计
5.1 核心数据表
admins(管理员表)
- 存储平台运营管理员和自提点管理员账号
- 通过 role 字段区分角色(admin/store)
- 通过 store_id 关联自提点
users(用户表)
- 存储小程序用户信息
- 包含微信 openid、手机号、昵称、头像
- 记录注册时间和最后登录时间
categories(商品分类表)
- 一级分类管理
- 包含分类名称、图标、排序号
- 用于前端分类导航展示
goods(商品表)
- 商品基础信息(名称、价格、库存、单位)
- 商品图片(主图、详情图,JSON格式存储)
- 商品规格(spec字段,JSON数组格式)
- 商品状态(上架/下架)
- 关联分类ID
cart(购物车表)
- 用户购物车临时数据
- 关联用户ID和商品ID
- 记录商品数量、选择的规格
- 冗余商品快照信息(名称、图片、价格)
stores(自提点表)
- 自提点基础信息(名称、地址、电话)
- 地理位置(经纬度,用于距离计算)
- 营业时间、门店照片
- 审核状态(待审核/已通过/已拒绝)
- 启用状态(启用/禁用)
- 统计信息(历史订单数)
orders(订单表)
- 订单号(唯一标识)
- 用户信息(user_id、收货人、电话)
- 自提点信息(store_id)
- 商品信息(goods_list,JSON格式)
- 金额信息(商品金额、配送费、优惠、实付金额)
- 预约信息(预约取货时间)
- 取货码(pickup_code,6位数字)
- 订单状态(unpaid/paid/delivering/arrived/completed/cancelled)
- 批次号(batch_id,关联配送批次)
- 时间信息(创建、支付、配送、完成、取消时间)
delivery_batches(配送批次表)
- 批次号(唯一标识)
- 自提点ID(store_id)
- 配送日期(delivery_date)
- 配送员(courier_name)
- 订单数量(order_count)
- 批次状态(pending/delivering/completed)
- 创建时间、完成时间
pickup_records(核销记录表)
- 订单号(order_no)
- 用户ID(user_id)
- 自提点ID(store_id)
- 核销人(verifier)
- 核销时间(verify_time)
- 用于对账和追溯
sys_settings(系统设置表)
- 键值对存储系统配置
- 平台名称、Logo、客服电话
- 配送费、轮播图等动态配置
六、API接口设计
6.1 接口规范
- 基础路径:/api
- 鉴权方式:Request Header Authorization: Bearer <token>
- 响应格式:
{
"code": 200, // 200成功,其他失败
"msg": "操作成功", // 提示信息
"data": {} // 业务数据
}
6.2 小程序端接口(/api/app)
用户认证
- POST /api/auth/wechat/login – 微信登录
- 请求:{ code, nickName, avatarUrl }
- 响应:{ token, userInfo }
商品相关
- GET /api/app/goods/categories – 获取分类列表
- GET /api/app/goods/list – 获取商品列表
- 参数:categoryId, keyword, page, limit
- GET /api/app/goods/detail/{id} – 获取商品详情
自提点相关
- GET /api/app/store/list – 获取自提点列表
- 参数:latitude, longitude, keyword
- GET /api/app/store/detail/{id} – 获取自提点详情
购物车相关
- GET /api/app/cart/list – 获取购物车列表
- POST /api/app/cart/add – 添加商品到购物车
- 请求:{ goodsId, count, spec }
- POST /api/app/cart/update – 更新购物车商品数量
- 请求:{ goodsId, count }
- POST /api/app/cart/delete – 删除购物车商品
- 请求:{ goodsIds: [101, 102] }
- POST /api/app/cart/clear – 清空购物车
订单相关
- POST /api/app/order/submit – 提交订单
- 请求:{ storeId, recipientName, recipientPhone, appointmentTime, remark, goodsList }
- 响应:{ orderNo, totalAmount, payDeadline }
- POST /api/app/order/pay – 订单支付
- 请求:{ orderNo, payMethod }
- GET /api/app/order/list – 获取订单列表
- 参数:status, page, limit
- GET /api/app/order/detail/{orderNo} – 获取订单详情
- POST /api/app/order/cancel/{orderNo} – 取消订单
- 请求:{ reason }
6.3 自提点端接口(/api/store)
门店管理
- GET /api/store/store/detail – 获取本店信息
- POST /api/store/store/update – 更新门店信息
- 请求:{ phone, businessHours, photos }
配送接收
- GET /api/store/delivery/list – 获取配送批次列表
- 参数:status, page, limit
- POST /api/store/delivery/receive – 确认接收配送
- 请求:{ batchId }
订单核销
- GET /api/store/order/list – 获取本店订单列表
- 参数:status, keyword, page, limit
- POST /api/store/order/verify – 核销订单
- 请求:{ pickupCode, orderNo }
6.4 平台运营端接口(/api/admin)
管理员认证
- POST /api/auth/admin/login – 管理员登录
- 请求:{ username, password }
- 响应:{ token, userInfo }
管理员管理
- GET /api/admin/manager/list – 获取管理员列表
- POST /api/admin/manager/create – 创建管理员
- 请求:{ username, password, name, role, storeId }
- POST /api/admin/manager/update – 更新管理员
- 请求:{ id, password, name, status }
- POST /api/admin/manager/delete/{id} – 删除管理员
商品分类管理
- GET /api/admin/category/list – 获取分类列表
- POST /api/admin/category/create – 创建分类
- 请求:{ name, icon, sortOrder }
- POST /api/admin/category/update – 更新分类
- 请求:{ id, name, icon, sortOrder }
- POST /api/admin/category/delete/{id} – 删除分类
商品管理
- GET /api/admin/goods/list – 获取商品列表
- 参数:page, limit, keyword, categoryId, status
- POST /api/admin/goods/create – 创建商品
- 请求:{ name, price, originPrice, stock, categoryId, images, description, unit, spec }
- POST /api/admin/goods/update – 更新商品
- 请求:{ id, … }
- POST /api/admin/goods/delete/{id} – 删除商品
- POST /api/admin/goods/stock/{id} – 调整库存
- 请求:{ count }
自提点管理
- GET /api/admin/store/list – 获取自提点列表
- 参数:page, limit, keyword, status
- POST /api/admin/store/create – 创建自提点
- 请求:{ name, address, phone, latitude, longitude, manager, username, password }
- POST /api/admin/store/update – 更新自提点
- 请求:{ id, … }
- GET /api/admin/store/detail/{id} – 获取自提点详情
订单管理
- GET /api/admin/order/list – 获取订单列表
- 参数:page, limit, status, keyword, daterange, storeId
- GET /api/admin/order/detail/{orderNo} – 获取订单详情
配送批次管理
- GET /api/admin/delivery/list – 获取配送批次列表
- 参数:page, limit, storeId, date, status
- POST /api/admin/delivery/create – 创建配送批次
- 请求:{ storeId, deliveryDate }
- POST /api/admin/delivery/assign – 分配配送员
- 请求:{ batchId, courierName }
- POST /api/admin/delivery/complete/{batchId} – 完成配送
数据统计
- GET /api/admin/data/analysis – 获取数据分析
- 响应:{ todayOrderUser, todaySales, todayOrderCount, stockWarningList }
系统设置
- GET /api/common/settings – 获取系统设置
- POST /api/common/settings – 更新系统设置
- 请求:{ appName, logo, servicePhone, freight }
文件上传
- POST /api/common/upload – 上传文件
- 请求:multipart/form-data
- 响应:{ url }
七、项目目录结构
7.1 后端项目结构(backend)
backend/
├── src/main/java/com/freshfood/
│ ├── FreshFoodDeliveryApplication.java # 启动类
│ ├── common/ # 通用模块
│ │ └── Result.java # 统一响应结果封装
│ ├── config/ # 配置模块
│ │ ├── AuthInterceptor.java # 认证拦截器
│ │ ├── JwtUtil.java # JWT工具类
│ │ ├── WebConfig.java # Web配置(拦截器、跨域)
│ │ └── WxMaConfiguration.java # 微信小程序配置
│ ├── controller/ # 控制器层
│ │ ├── admin/ # 平台运营端接口
│ │ ├── app/ # 小程序端接口
│ │ ├── store/ # 自提点端接口
│ │ ├── AuthController.java # 认证接口
│ │ ├── CommonController.java # 通用接口(上传等)
│ │ └── StoreController.java # 自提点公共接口
│ ├── dto/ # 数据传输对象(请求参数)
│ ├── entity/ # 实体类(数据库映射)
│ ├── exception/ # 异常处理
│ ├── mapper/ # 数据访问层(MyBatis)
│ ├── service/ # 业务逻辑层
│ └── vo/ # 视图对象(响应数据)
├── src/main/resources/
│ └── application.yml # 应用配置文件
├── uploads/ # 上传文件存储目录
└── pom.xml # Maven配置文件
7.2 前端项目结构(vue3)
vue3/
├── src/
│ ├── api/ # API接口封装
│ │ ├── auth.js # 认证接口
│ │ ├── goods.js # 商品接口
│ │ ├── category.js # 分类接口
│ │ ├── store.js # 自提点接口
│ │ ├── order.js # 订单接口
│ │ ├── delivery.js # 配送接口
│ │ └── settings.js # 设置接口
│ ├── assets/ # 静态资源
│ │ ├── images/ # 图片资源
│ │ └── styles/ # 样式文件
│ ├── components/ # 公共组件
│ │ ├── Upload/ # 上传组件
│ │ ├── ImagePreview/ # 图片预览组件
│ │ └── …
│ ├── layout/ # 布局组件
│ │ ├── Header.vue # 头部导航
│ │ ├── Sidebar.vue # 侧边栏菜单
│ │ └── index.vue # 布局容器
│ ├── router/ # 路由配置
│ │ └── index.js # 路由定义
│ ├── stores/ # 状态管理(Pinia)
│ │ ├── user.js # 用户状态
│ │ └── app.js # 应用状态
│ ├── views/ # 页面组件
│ │ ├── login/ # 登录页
│ │ ├── dashboard/ # 数据看板
│ │ │ └── index.vue # 运营端首页
│ │ ├── category/ # 分类管理
│ │ │ └── index.vue # 分类列表
│ │ ├── goods/ # 商品管理
│ │ │ ├── list.vue # 商品列表
│ │ │ └── edit.vue # 商品编辑
│ │ ├── store/ # 自提点管理
│ │ │ ├── list.vue # 自提点列表(运营端)
│ │ │ ├── dashboard.vue # 自提点看板(自提点端)
│ │ │ ├── orders.vue # 订单列表(自提点端)
│ │ │ ├── verification.vue # 订单核销(自提点端)
│ │ │ ├── delivery.vue # 配送接收(自提点端)
│ │ │ └── info.vue # 门店信息(自提点端)
│ │ ├── order/ # 订单管理
│ │ │ ├── index.vue # 订单列表(运营端)
│ │ │ └── delivery-batch.vue # 配送批次管理
│ │ ├── wechatUser/ # 用户管理
│ │ │ └── index.vue # 用户列表
│ │ └── settings/ # 系统设置
│ │ └── index.vue # 基础设置
│ ├── App.vue # 根组件
│ └── main.js # 入口文件
├── public/ # 公共资源
│ └── favicon.ico # 网站图标
├── index.html # HTML模板
├── vite.config.js # Vite配置
└── package.json # 项目依赖
7.3 小程序项目结构(min)
min/
├── pages/ # 页面目录
│ ├── index/ # 首页
│ │ ├── index.js # 页面逻辑
│ │ ├── index.json # 页面配置
│ │ ├── index.wxml # 页面结构
│ │ └── index.wxss # 页面样式
│ ├── category/ # 分类页
│ │ └── category.*
│ ├── goods/ # 商品详情页
│ │ └── detail.*
│ ├── cart/ # 购物车页
│ │ └── cart.*
│ ├── search/ # 搜索页
│ │ └── search.*
│ ├── store/ # 自提点相关
│ │ ├── list.* # 自提点列表
│ │ └── detail.* # 自提点详情
│ ├── order/ # 订单相关
│ │ ├── list.* # 订单列表
│ │ └── detail.* # 订单详情
│ ├── pickup/ # 取货凭证
│ │ └── code.* # 取货码页面
│ ├── user/ # 个人中心
│ │ └── user.*
│ ├── userInfo/ # 个人信息编辑
│ │ └── userInfo.*
│ └── about/ # 关于我们
│ └── about.*
├── components/ # 组件目录
│ └── wxParse/ # 富文本解析组件
├── utils/ # 工具类
│ ├── api.js # API接口定义
│ ├── request.js # 网络请求封装
│ ├── util.js # 通用工具函数
│ └── feedback.js # 反馈提示封装
├── images/ # 图片资源
│ └── tabbar/ # 底部导航图标
├── app.js # 小程序入口
├── app.json # 小程序配置
├── app.wxss # 全局样式
└── project.config.json # 项目配置
八、部署说明
8.1 环境要求
- 后端:
- JDK 1.8+
- Maven 3.6+
- MySQL 8.0+
- 前端:
- Node.js 20.19.0+ 或 22.12.0+
- pnpm(推荐)或 npm
- 小程序:
- 微信开发者工具
8.2 后端部署步骤
- 数据库连接信息
- 微信小程序配置(appId、appSecret)
- JWT密钥
- 文件上传路径
8.3 前端部署步骤
pnpm install
- 在 src/api/ 目录下的接口文件中修改baseURL
8.4 小程序部署步骤
九、权限控制
9.1 角色定义
- admin:平台运营管理员
- 拥有所有权限
- 可管理商品、分类、自提点、订单、配送、用户、系统设置
- store:自提点管理员
- 仅能访问自提点端功能
- 可查看本店订单、核销订单、接收配送、管理门店信息
- user:普通用户
- 小程序端用户
- 可浏览商品、下单、查看订单、核销取货
9.2 权限实现
- 后端:
- 使用JWT进行身份认证
- 通过拦截器验证token有效性
- 根据用户角色控制接口访问权限
- 自提点管理员只能访问自己所属门店的数据
- 前端:
- 登录后存储token到localStorage
- 请求时在Header中携带token
- 根据用户角色动态显示菜单
- 路由守卫控制页面访问权限
十、核心功能特性
10.1 智能推荐
- 基于用户地理位置推荐附近自提点
- 考虑自提点距离和订单承载能力
- 优先推荐2-3个最优自提点
10.2 库存管理
- 实时库存扣减
- 库存不足自动下架
- 库存预警提醒
- 支持快捷调整库存
10.3 订单核销
- 6位数字取货码
- 支持二维码扫码核销
- 防重复核销机制
- 核销记录追溯
10.4 批次化配送
- 按自提点和日期归集订单
- 统一分配配送员
- 批量状态更新
- 提高配送效率
10.5 数据统计
- 实时数据看板
- 订单趋势分析
- 商品销售排行
- 自提点绩效统计
- 用户增长分析
10.6 多规格支持
- 商品支持多规格(如不同重量、包装)
- 规格独立定价
- 规格独立库存
- JSON格式灵活存储
10.7 图片管理
- 支持多图上传
- 主图轮播展示
- 详情图文混排
- 本地文件存储
十一、安全机制
11.1 认证安全
- JWT token认证
- token过期自动刷新
- 密码加密存储
- 防止越权访问
11.2 数据安全
- SQL注入防护(MyBatis参数化查询)
- XSS攻击防护(前端输入过滤)
- CSRF防护(token验证)
- 敏感信息脱敏(手机号、身份证等)
11.3 业务安全
- 库存超卖防护(数据库锁机制)
- 订单重复提交防护(幂等性控制)
- 核销防重放(状态校验)
- 金额篡改防护(后端重新计算)
十二、性能优化
12.1 数据库优化
- 合理建立索引(user_id、goods_id、order_no等)
- 分页查询减少数据量
- 冗余字段减少关联查询
- 定期清理历史数据
12.2 接口优化
- 响应数据按需返回
- 列表接口分页加载
- 图片压缩和CDN加速
- 接口缓存(Redis,可扩展)
12.3 前端优化
- 路由懒加载
- 图片懒加载
- 组件按需引入
- 打包压缩优化
十三、扩展功能建议
13.1 短期扩展
- 优惠券系统
- 会员积分体系
- 商品评价功能
- 消息推送(订单状态变更通知)
- 数据导出功能(订单、对账单)
13.2 中期扩展
- 配送员端APP
- 实时配送轨迹
- 在线客服系统
- 营销活动管理(秒杀、拼团)
- 供应商管理系统
13.3 长期扩展
- 多城市/多区域支持
- 智能推荐算法
- 大数据分析平台
- 移动端H5商城
- 第三方平台对接(美团、饿了么)
十四、常见问题
14.1 开发问题
Q: 如何配置微信小程序?
A:
Q: 图片上传失败怎么办?
A:
Q: 跨域问题如何解决?
A: 后端已在 WebConfig.java 中配置了CORS,允许所有来源访问。生产环境建议限制具体域名。
14.2 业务问题
Q: 订单状态流转规则是什么?
A:
- unpaid(未支付)→ paid(待配送)→ delivering(配送中)→ arrived(已送达)→ completed(已完成)
- 任意状态都可以取消变为 cancelled(已取消)
Q: 取货码如何生成?
A: 订单支付成功后,系统自动生成6位随机数字作为取货码,确保唯一性。
Q: 如何防止库存超卖?
A:
Q: 配送批次如何管理?
A:
十五、联系与支持
15.1 技术文档
- API文档:api文档/API_DOCUMENTATION.md
- 后端开发任务书:api文档/后端开发任务书.md
- 功能需求清单:api文档/功能需求清单.md
15.2 项目信息
- 项目名称:生鲜配送系统
- 版本号:v1.0.0
- 开发语言:Java、JavaScript
- 数据库:MySQL 8.0
- 开发框架:Spring Boot、Vue3、微信小程序
十六、更新日志
v1.0.0 (2026-02-28)
- 完成基础功能开发
- 实现三端应用(小程序、自提点端、运营端)
- 完成核心业务流程(下单、配送、核销)
- 实现权限控制和数据统计
- 完成数据库设计和API接口开发
附录:快速开始指南
1. 克隆项目
git clone <repository-url>
cd fresh-food-delivery
2. 启动后端
cd backend
# 导入数据库
mysql -u root -p < ../fresh_delivery.sql
# 修改 application.yml 配置
# 启动项目
mvn spring-boot:run
3. 启动前端
cd vue3
pnpm install
pnpm dev
4. 启动小程序
- 使用微信开发者工具打开 min 目录
- 修改 utils/api.js 中的接口地址
- 点击编译运行
5. 默认账号
- 平台管理员:username: admin, password: 123456
- 自提点管理员:username: store, password: 123456
网硕互联帮助中心


评论前必须登录!
注册