一、项目介绍
本项目是一套完整的校园跑腿下单接单系统,采用前后端分离架构,包含微信小程序端、管理后台和服务端三个部分。项目旨在为校园用户提供便捷的跑腿服务,支持多种服务类型,如跑腿代办、快递代取、软件安装等,同时为接单员提供灵活的兼职机会。
项目特点
多端支持:基于 uni-app 开发,支持微信小程序、支付宝小程序、QQ小程序、H5等多平台发布 完整业务闭环:用户下单 → 接单员接单 → 订单完成 → 费用结算 → 提现,完整的业务流程 多学校管理:支持多学校运营,每个学校可独立配置服务、区域、价格等 丰富的服务类型:跑腿、快递代取、软件安装等多种服务模式
二、项目结构目录
JP9-校园跑腿下单接单系统/
├── server/ # 后端服务项目(Midway 3.0)
│ ├── src/
│ │ ├── cert/ # 证书文件目录
│ │ ├── config/ # 配置文件
│ │ │ ├── config.default.ts # 默认配置
│ │ │ └── config.env.ts.bak # 环境配置模板
│ │ ├── controller/ # 控制器
│ │ │ ├── admin/ # 管理后台接口
│ │ │ │ ├── admin.controller.ts
│ │ │ │ ├── cash.controller.ts
│ │ │ │ ├── config.controller.ts
│ │ │ │ ├── file.controller.ts
│ │ │ │ ├── map.controller.ts
│ │ │ │ ├── richtext.controller.ts
│ │ │ │ ├── school.controller.ts
│ │ │ │ ├── schoolAnalysis.controller.ts
│ │ │ │ ├── schoolArea.controller.ts
│ │ │ │ ├── schoolOrder.controller.ts
│ │ │ │ ├── sts.controller.ts
│ │ │ │ ├── taker.controller.ts
│ │ │ │ ├── user.controller.ts
│ │ │ │ ├── wxAnalysis.controller.ts
│ │ │ │ ├── wxSubscribeMessage.controller.ts
│ │ │ │ └── wxapp.controller.ts
│ │ │ ├── api/ # 小程序端接口
│ │ │ │ ├── baseapp/
│ │ │ │ │ ├── address.controler.ts
│ │ │ │ │ ├── cash.controller.ts
│ │ │ │ │ ├── config.controller.ts
│ │ │ │ │ ├── order.controller.ts
│ │ │ │ │ ├── publish.controller.ts
│ │ │ │ │ ├── richtext.controller.ts
│ │ │ │ │ ├── school.controller.ts
│ │ │ │ │ ├── taker.controller.ts
│ │ │ │ │ └── takerAnalysis.controller.ts
│ │ │ │ ├── bank.controller.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── map.controller.ts
│ │ │ │ ├── server.controller.ts
│ │ │ │ ├── sms.controller.ts
│ │ │ │ ├── upload.controller.ts
│ │ │ │ ├── user.controller.ts
│ │ │ │ └── wxapp.controller.ts
│ │ │ └── base.controller.ts
│ │ ├── configuration.ts
│ │ └── constant.ts
│ ├── bootstrap.js
│ ├── ecosystem.config.js # PM2 配置
│ ├── package.json
│ └── tsconfig.json
│
├── admin/ # 管理后台项目(Nuxt 2.x)
│ ├── assets/ # 静态资源
│ │ ├── font/ # 字体图标
│ │ ├── images/ # 图片资源
│ │ ├── script/ # 脚本文件
│ │ └── style/ # 样式文件
│ ├── components/ # 组件
│ │ ├── base/ # 基础组件
│ │ ├── config/ # 配置组件
│ │ ├── material/ # 素材组件
│ │ ├── official/ # 官方布局组件
│ │ ├── order/ # 订单组件
│ │ ├── overview/ # 概览组件
│ │ ├── rider/ # 骑手组件
│ │ ├── school/ # 学校组件
│ │ ├── service/ # 服务组件
│ │ ├── taker/ # 接单员组件
│ │ └── user/ # 用户组件
│ ├── content/ # 内容文件
│ ├── layouts/ # 布局组件
│ ├── pages/ # 页面
│ │ ├── config/ # 配置页面
│ │ ├── material/ # 素材页面
│ │ ├── rider/ # 骑手页面
│ │ ├── school/ # 学校页面
│ │ ├── user/ # 用户页面
│ │ ├── index.vue
│ │ ├── init.vue
│ │ └── login.vue
│ ├── plugins/ # 插件
│ ├── store/ # Vuex 状态管理
│ ├── static/ # 静态文件
│ ├── nuxt.config.js
│ ├── package.json
│ └── tsconfig.json
│
├── miniprogram/ # 小程序项目(uni-app)
│ ├── public/
│ ├── src/
│ │ ├── assets/ # 静态资源
│ │ │ ├── font/ # 字体图标
│ │ │ ├── images/ # 图片资源
│ │ │ └── style/ # 样式文件
│ │ ├── components/ # 组件
│ │ │ ├── base/ # 基础组件
│ │ │ ├── location/ # 位置组件
│ │ │ ├── mine/ # 个人中心组件
│ │ │ ├── order/ # 订单组件
│ │ │ ├── publish/ # 发布组件
│ │ │ └── service/ # 服务组件
│ │ ├── mixins/ # 混入
│ │ ├── pages/ # 页面
│ │ │ ├── index/ # 首页
│ │ │ ├── login/ # 登录页
│ │ │ ├── mine/ # 个人中心
│ │ │ │ ├── address/ # 地址管理
│ │ │ │ └── taker/ # 接单员中心
│ │ │ ├── order/ # 订单页面
│ │ │ ├── publish/ # 发布页面
│ │ │ ├── service/ # 服务页面
│ │ │ │ ├── errands/ # 跑腿
│ │ │ │ ├── express/ # 快递代取
│ │ │ │ ├── play/ # 陪练陪玩
│ │ │ │ └── software/ # 软件安装
│ │ │ └── text/ # 文本详情
│ │ ├── static/ # 静态资源
│ │ ├── store/ # Vuex 状态管理
│ │ ├── utils/ # 工具函数
│ │ ├── App.vue
│ │ ├── main.ts
│ │ ├── manifest.json
│ │ ├── pages.json
│ │ └── uni.scss
│ ├── package.json
│ └── tsconfig.json
│
├── DEV.md # 开发文档
├── build.md # 部署文档
├── README.md # 项目说明
└── LICENSE # 许可证
三、项目主要技术框架
3.1 后端服务(server)
3.2 管理后台(admin)
3.3 小程序端(miniprogram)
四、项目主要功能
4.1 小程序端功能
4.1.1 用户端功能
首页:服务分类展示、轮播图、热门服务推荐 服务类型: 跑腿服务:代买代办,支持物品重量计算、价格自动核算 快递代取:快递代取服务,支持选择快递公司、重量计算
软件安装:电脑软件安装、系统重装等服务 订单管理: 发布订单 查看订单列表(全部、待接单、进行中、已完成、已取消) 订单详情查看 取消订单 个人中心: 个人信息管理 地址管理(新增、编辑、删除、设为默认) 我的订单 申请成为接单员 接单员中心(切换身份)
4.1.2 接单员端功能
接单员注册:提交申请,审核通过后成为接单员 接单员中心: 接单/拒单操作 订单状态管理 收入统计 余额管理 提现功能 提现记录 收款方式管理(银行卡等) 接单员状态管理
4.2 管理后台功能
登录:账号密码登录、二维码登录 首页概览: 订单数据统计图表 用户增长趋势 接单员排名 订单状态分布 学校管理: 学校列表 学校详情 学校编辑 区域管理(学校内区域划分) 楼栋管理 轮播图管理 服务管理(服务类型配置) 订单管理: 订单列表 订单详情 订单处理(取消、退款等) 资金流水 用户管理: 用户列表 用户编辑 管理员管理 小程序用户管理 接单员管理: 接单员列表 接单员审核 提现管理 配置管理: 基础配置 支付配置 地图配置 订阅消息配置 提现配置 时间要求配置 用户协议配置 分享配置 素材管理: 图片素材 富文本素材 数据分析: 学校数据分析 微信数据分析
五、项目安装和部署
5.1 环境要求
5.1.1 本地开发环境
Node.js: 服务端和管理后台:v16.x 及以上 小程序项目:v12.x(必须) MySQL:5.7 及以上 Redis:2.x 及以上 开发工具: VS Code 微信开发者工具 推荐工具: nvm(Node.js 版本管理) yarn(包管理器)
5.2 本地开发
5.2.1 服务端开发
进入服务端目录
cd server
配置文件 复制 /server/src/config/config.env.ts.bak为 config.local.ts修改数据库配置、Redis 配置等
// 数据库配置
orm: {
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: 'root',
database: 'ddrunv2-free',
synchronize: true,
logging: false,
}
// Redis配置
redis: {
client: {
port: 6379,
host: '127.0.0.1',
password: '',
db: 0,
},
}
安装依赖
yarn
# 或
npm install
启动项目
yarn local
# 或
npm run local
启动成功后,服务运行在 http://127.0.0.1:8001
5.2.2 管理后台开发
进入管理后台目录
cd admin
安装依赖
yarn
# 或
npm install
启动项目
yarn local
# 或
npm run local
5.2.3 小程序开发
进入小程序目录
cd miniprogram
切换 Node.js 版本(必须使用 v12.x)
nvm use 12
安装依赖
yarn
# 或
npm install
启动项目(微信小程序)
yarn local-wx
# 或
npm run local-wx
使用微信开发者工具 打开微信开发者工具 导入项目,目录为 miniprogram/dist/dev/mp-weixin
5.3 服务器部署
推荐使用宝塔面板进行服务器环境管理。
5.3.1 服务器环境准备
安装宝塔面板 安装 Nginx 1.18 安装 MySQL 5.7 或 8.x 安装 PM2 管理器(Node.js 版本 v14.18.0) 安装 Redis
5.3.2 服务端部署
上传代码到服务器
配置文件
复制 /server/src/config/config.env.ts.bak为 config.prod.ts修改生产环境配置 安装依赖
cd server
yarn
构建项目
yarn build
使用 PM2 部署
# 安装 PM2(如未安装)
npm install -g pm2
# 启动项目
pm2 start ./ecosystem.config.js
# 查看运行状态
pm2 list
# 查看日志
pm2 logs
5.3.3 管理后台部署
安装依赖
cd admin
yarn
构建项目
yarn build
构建成功后会在 admin/ 目录下生成 dist 目录。
Nginx 配置 将 dist目录配置为静态站点配置反向代理指向后端服务 API
5.3.4 小程序部署
修改 API 地址 打开 /miniprogram/src/utils/constrants.ts修改 API 地址为服务器域名
export const API = () => {
return "http://your-domain.com/api/";
};
构建项目
cd miniprogram
yarn build-wx
上传代码 打开微信开发者工具 导入项目,目录为 /miniprogram/dist/build/mp-weixin提交代码到微信公众平台 在微信公众平台提交审核并发布
5.4 多平台支持
小程序基于 uni-app 开发,支持以下平台:
微信小程序 支付宝小程序 QQ 小程序 字节跳动小程序 H5 App(Android/iOS) 快应用 360 小程序 百度小程序 京东小程序 快手小程序 飞书小程序 小红书小程序
各平台构建命令可参考 miniprogram/package.json 中的 scripts 配置。
项目地址:
夸克:https://pan.quark.cn/s/f509d2554c68
百度:https://pan.baidu.com/s/15vxpx9Ra1WX3gsapfAWLRQ?pwd=8888