AI源码
AI源码AI 精选 · 优质源码 · 助力学习

生鲜配送系统

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

评分:4.8/5.0
销量:25
发布:2026/3/2
难度:L2 进阶级
💬 联系咨询观看视频介绍
永久使用权限
免费更新维护
技术支持服务

项目封面

截图 1

项目说明

生鲜配送系统

一、项目概述

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 后端部署步骤

  1. 创建数据库并导入 fresh_delivery.sql
  2. 修改 application.yml 配置文件:
    • 数据库连接信息
    • 微信小程序配置(appId、appSecret)
    • JWT密钥
    • 文件上传路径
  3. 使用Maven构建项目:
    mvn clean package
    
  4. 运行jar包:
    java -jar target/fresh-food-delivery-1.0.0.jar
    
  5. 默认访问地址:http://localhost:8081

8.3 前端部署步骤

  1. 安装依赖:
    cd vue3
    pnpm install
    
  2. 修改API接口地址(如需要):
    • src/api/ 目录下的接口文件中修改baseURL
  3. 开发环境运行:
    pnpm dev
    
  4. 生产环境构建:
    pnpm build
    
  5. 部署dist目录到Web服务器(Nginx、Apache等)

8.4 小程序部署步骤

  1. 使用微信开发者工具打开 min 目录
  2. 修改 utils/api.js 中的API接口地址
  3. 配置小程序AppID(在微信公众平台申请)
  4. 配置服务器域名白名单(在微信公众平台设置)
  5. 开发调试完成后上传代码
  6. 在微信公众平台提交审核

九、权限控制

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:

  1. 在微信公众平台申请小程序,获取AppID和AppSecret
  2. 在后端 application.yml 中配置AppID和AppSecret
  3. 在小程序开发者工具中配置AppID
  4. 配置服务器域名白名单

Q: 图片上传失败怎么办? A:

  1. 检查后端 application.yml 中的上传路径配置
  2. 确保上传目录有写入权限
  3. 检查文件大小是否超过限制
  4. 检查文件格式是否支持

Q: 跨域问题如何解决? A: 后端已在 WebConfig.java 中配置了CORS,允许所有来源访问。生产环境建议限制具体域名。

14.2 业务问题

Q: 订单状态流转规则是什么? A:

  • unpaid(未支付)→ paid(待配送)→ delivering(配送中)→ arrived(已送达)→ completed(已完成)
  • 任意状态都可以取消变为 cancelled(已取消)

Q: 取货码如何生成? A: 订单支付成功后,系统自动生成6位随机数字作为取货码,确保唯一性。

Q: 如何防止库存超卖? A:

  1. 下单时检查库存是否充足
  2. 使用数据库行锁防止并发问题
  3. 支付成功后扣减库存
  4. 取消订单时恢复库存

Q: 配送批次如何管理? A:

  1. 平台按自提点和日期归集订单
  2. 生成配送批次并分配配送员
  3. 配送员送达后自提点确认接收
  4. 批次内所有订单状态同步更新

十五、联系与支持

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源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。

QQ: 861077046
邮箱: 861077046@qq.com
已服务 25+ 位用户
立即咨询

相关推荐

查看全部 →
本地生活小程序
小程序
进阶

本地生活小程序

本项目是一个基于微信小程序原生开发的本地生活服务平台,提供餐厅推荐、招聘信息、生活服务分类、近期活动展示等功能,是一个典型的O2O本地生活服务类小程序。

小程序
4.869
电影购票网站
HTML
NEW
进阶

电影购票网站

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

HTML大作业
4.869
家乡介绍小程序
小程序
进阶

家乡介绍小程序

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

小程序
4.824
乡村振兴三农小程序
小程序
进阶

乡村振兴三农小程序

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

小程序
4.889
图书借阅小程序
Node
进阶

图书借阅小程序

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

Node小程序Vue2+1
4.865
垃圾上门回收小程序
Node
进阶

垃圾上门回收小程序

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

Node小程序Vue2+1
4.877