✅ 一、项目背景与商业价值
1.1 项目概述
随着现代社会生活节奏的加快,人们对家政服务的需求日益增长,包括:
-
上门保洁、家电清洗、维修维护等家政服务;
-
家电安装、搬家、开锁、疏通等维修服务;
-
美容美甲、推拿按摩、宠物护理等上门生活服务。
同城家政服务派单系统,就是为了解决传统家政服务存在的问题:
-
服务信息不透明、用户找不到靠谱服务;
-
师傅接单效率低,管理混乱;
-
缺乏线上化管理,运营效率低。
✅ 该系统解决方案
-
用户可以通过小程序、H5、公众号、APP多端在线下单,选择心仪的师傅;
-
师傅端实现在线抢单、接单、上门服务、费用结算;
-
管理后台实现订单管理、师傅管理、派单调度、数据统计;
-
系统源码支持二次开发与直接运营,功能可扩展性强。
1.2 核心商业模式
✅ 1. 服务撮合平台
-
平台对接家政服务师傅,用户在线下单,平台抽取佣金(比如10%-20%)。
-
支持悬赏派单与定价派单两种模式:
-
悬赏派单:用户设置服务金额,师傅接单报价。
-
定价派单:平台设定统一服务价格。
-
✅ 2. 增值服务盈利
-
会员收费:平台可设置会员权益(如优先派单、优惠券)。
-
广告位收费:商家可在平台投放广告。
-
商家入驻费:线下家政公司入驻平台,收取入驻费。
✅ 3. 数据变现
-
订单数据与用户行为数据分析,为商家提供数据报告。
1.3 功能模块
✅ 用户端
-
服务分类浏览
-
服务下单:一口价、报价、悬赏、线上下单
-
订单管理:实时状态跟踪
-
评价与投诉
-
优惠专区:优惠券、满减活动
-
师傅入驻申请
✅ 师傅端
-
实名认证
-
接单池抢单
-
消息通知
-
今日订单管理
-
我的钱包(提现、收入记录)
✅ 管理后台
-
用户管理:用户信息、实名认证
-
服务管理:服务分类、服务项目
-
师傅管理:师傅入驻审核、认证
-
订单管理:订单分配、跟踪、结算
-
数据统计与报表
✅ 技术亮点
-
一套源码多端适配(微信小程序 + H5 + 公众号 + APP)
-
Spring Boot + MyBatis Plus 后端架构,稳定高效
-
WebSocket 实时推送,确保订单状态实时更新
-
Redis 缓存优化,提升系统性能
-
分布式锁防止超卖,确保多师傅抢单一致性
🔥 二、系统架构设计
2.1 架构图
diff
复制编辑
+--------------------------------------------------+ | 用户端 (Uniapp) | | 微信小程序 / H5 / 公众号 / APP | | - 服务分类、下单、订单跟踪、评价 | | - 优惠券、支付 | +--------------------------------------------------+ ↓ +--------------------------------------------------+ | 师傅端 (Uniapp) | | - 实名认证、接单池、订单管理 | | - 消息通知、我的钱包、提现 | +--------------------------------------------------+ ↓ +--------------------------------------------------+ | 管理后台 (Vue3) | | - 用户管理、服务管理、订单管理 | | - 师傅管理、数据统计、权限管理 | +--------------------------------------------------+ ↓ +--------------------------------------------------+ | 后端服务层 | | Spring Boot + MyBatis Plus + Redis | | - 派单算法、计费、订单管理 | | - 异步任务处理(通知、超时订单释放) | +--------------------------------------------------+ ↓ +--------------------------------------------------+ | 数据存储层 | | MySQL:用户、师傅、订单、服务、评价数据 | | Redis:缓存订单状态、师傅状态 | +--------------------------------------------------+
2.2 数据库设计
👤 用户表(user)
字段 | 类型 | 说明 |
---|---|---|
id | BIGINT | 用户ID |
open_id | VARCHAR(100) | 微信用户唯一标识 |
nickname | VARCHAR(50) | 昵称 |
phone | VARCHAR(15) | 手机号 |
balance | DECIMAL(10,2) | 账户余额 |
create_time | TIMESTAMP | 注册时间 |
👷 师傅表(worker)
字段 | 类型 | 说明 |
---|---|---|
id | BIGINT | 师傅ID |
name | VARCHAR(50) | 姓名 |
phone | VARCHAR(15) | 手机号 |
service_type | VARCHAR(100) | 服务类型 |
location | VARCHAR(255) | 服务范围 |
status | INT | 状态(0:空闲 1:忙碌) |
create_time | TIMESTAMP | 注册时间 |
📦 订单表(order)
字段 | 类型 | 说明 |
---|---|---|
id | BIGINT | 订单ID |
user_id | BIGINT | 用户ID |
worker_id | BIGINT | 师傅ID |
service_id | BIGINT | 服务ID |
price | DECIMAL(10,2) | 订单金额 |
status | INT | 状态(0:进行中 1:完成) |
create_time | TIMESTAMP | 下单时间 |
⚙️ 三、核心技术实现
3.1 用户端(Uniapp + 微信小程序 + H5)
✅ 微信授权登录
javascript
复制编辑
wx.login({ success(res) { if (res.code) { // 服务器登录接口 wx.request({ url: 'https://yourdomain.com/api/login', data: { code: res.code } }); } } });
✅ 地图定位服务
-
使用腾讯地图 API,获取用户位置信息:
javascript
复制编辑
wx.getLocation({ type: 'wgs84', success(res) { console.log('用户位置:', res.latitude, res.longitude); } });
✅ WebSocket 实时订单状态推送
javascript
复制编辑
const socket = new WebSocket("wss://yourdomain.com/socket"); socket.onmessage = function(event) { const orderData = JSON.parse(event.data); updateOrderStatus(orderData); };
3.2 管理后台(Vue3 + Element-UI)
✅ 权限管理
-
使用 JWT 做权限认证:
javascript
复制编辑
const token = localStorage.getItem('token'); axios.get('/api/admin/orders', { headers: { Authorization: `Bearer ${token}` } });
✅ 数据可视化
-
使用
echarts
展示订单数据:
javascript
复制编辑
const chart = echarts.init(document.getElementById('main')); chart.setOption({ xAxis: { data: ['订单1', '订单2'] }, yAxis: {}, series: [{ type: 'bar', data: [300, 500] }] });
3.3 服务端(Spring Boot + MyBatis Plus)
✅ 派单逻辑
-
使用分布式锁防止师傅重复接单:
java
复制编辑
RLock lock = redisson.getLock("order:" + orderId); if (lock.tryLock(5, 10, TimeUnit.SECONDS)) { // 接单逻辑 lock.unlock(); }
✅ 如果你对源码感兴趣或有定制需求,欢迎联系我一起探讨!🚀