生鲜配送系统
生鲜配送系统是一个基于"线上下单 + 线下自提"模式的社区生鲜O2O服务平台。系统为社区居民提供便捷的生鲜购物体验,同时赋能社区便利店/驿站成为自提点,实现降本增效的配送模式。
项目封面

项目说明
生鲜配送系统
一、项目概述
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 后端部署步骤
- 创建数据库并导入
fresh_delivery.sql - 修改
application.yml配置文件:- 数据库连接信息
- 微信小程序配置(appId、appSecret)
- JWT密钥
- 文件上传路径
- 使用Maven构建项目:
mvn clean package - 运行jar包:
java -jar target/fresh-food-delivery-1.0.0.jar - 默认访问地址:
http://localhost:8081
8.3 前端部署步骤
- 安装依赖:
cd vue3 pnpm install - 修改API接口地址(如需要):
- 在
src/api/目录下的接口文件中修改baseURL
- 在
- 开发环境运行:
pnpm dev - 生产环境构建:
pnpm build - 部署dist目录到Web服务器(Nginx、Apache等)
8.4 小程序部署步骤
- 使用微信开发者工具打开
min目录 - 修改
utils/api.js中的API接口地址 - 配置小程序AppID(在微信公众平台申请)
- 配置服务器域名白名单(在微信公众平台设置)
- 开发调试完成后上传代码
- 在微信公众平台提交审核
九、权限控制
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:
- 在微信公众平台申请小程序,获取AppID和AppSecret
- 在后端
application.yml中配置AppID和AppSecret - 在小程序开发者工具中配置AppID
- 配置服务器域名白名单
Q: 图片上传失败怎么办? A:
- 检查后端
application.yml中的上传路径配置 - 确保上传目录有写入权限
- 检查文件大小是否超过限制
- 检查文件格式是否支持
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
文档版本:v1.0
最后更新:2026-02-28
维护者:开发团队
技术分类
包含内容
适用人群
学习参考与二次开发
关于 AI源码
AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。
相关推荐
查看全部 →
本地生活小程序
本项目是一个基于微信小程序原生开发的本地生活服务平台,提供餐厅推荐、招聘信息、生活服务分类、近期活动展示等功能,是一个典型的O2O本地生活服务类小程序。

电影购票网站
基于原生 HTML、CSS、JavaScript 实现的 PC 端电影在线购票演示网站。数据使用本地 Mock 模拟,订单与座位占用状态通过浏览器 持久化,无需后端服务,直接用浏览器打开 即可运行。

家乡介绍小程序
这是一个家乡文化展示与旅游推荐的微信小程序,采用纯前端实现,使用本地Mock数据模拟后端接口。项目以广东省惠州市惠东县为示例,完整实现了景点浏览、美食推荐、乡镇介绍、历史回顾、收藏管理等核心功能,适合作为微信小程序开发学习项目或计算机设计参考。

乡村振兴三农小程序
这是一个乡村振兴与三农服务的微信小程序,采用纯前端实现,使用本地Mock数据模拟后端接口。项目完整实现了政策解读、农业科技、数字乡村、乡村旅游、农产品展销、乡风文明、人才振兴、基层党建、经验分享等核心功能模块,适合作为微信小程序开发学习项目或计算机设计参考。

图书借阅小程序
这是一个图书借阅管理的微信小程序,采用纯前端实现,使用本地Mock数据模拟后端接口。项目完整实现了图书浏览、分类筛选、搜索查询、收藏管理、借阅下单、订单管理等核心功能,适合作为微信小程序开发学习项目或计算机设计参考。

垃圾上门回收小程序
这是一个完整的垃圾上门回收服务平台,包含微信小程序端。系统实现了垃圾分类回收预约、订单管理、地址管理、系统配置等核心功能,采用Egg.js后端框架,适合作为微信小程序全栈开发学习项目或计算机设计参考。