博主介绍:
所有项目都配有从入门到精通的安装教程,可二开,提供核心代码讲解,项目指导。
项目配有对应开发文档、解析等
项目都录了发布和功能操作演示视频;
项目的界面和功能都可以定制,包安装运行!!!
如果需要联系我,可以在CSDN在文章末尾或者个人简介可以获取联系方式
一、为什么你需要这套源码?
市面上家政系统动辄上万,且二次开发困难。我的这套系统:
-
✅ 开箱即用:导入数据库、修改配置即可运行
-
✅ 功能完整:覆盖用户端、服务端、管理端全流程
-
✅ 代码规范:注释清晰,方便二次定制
-
✅ 技术支持:购买后提供一对一答疑
二、系统功能全景图
2.1 用户端(小程序/H5)
-
服务分类浏览(保洁、保姆、月嫂、家电清洗等)
-
在线预约下单(选择时间、地址、备注)
-
订单实时跟踪(状态推送通知)
-
服务评价与投诉
-
优惠券领取与使用
2.2 服务人员端(App)
-
抢单/派单模式切换
-
服务打卡(开始/结束)
-
收入提现(绑定微信/支付宝)
-
工作日程管理
2.3 管理后台(Web)
-
订单审核与调度
-
人员入驻审核
-
财务对账报表
-
数据看板(日活、转化率、客单价)
三、技术架构一览
| 层级 | 技术选型 |
|---|---|
| 前端用户端 | Uni-app(一套代码多端适配) |
| 前端管理端 | Vue 3 + Element Plus |
| 后端 | Spring Boot 2.7 + MyBatis-Plus |
| 数据库 | MySQL 8.0 + Redis |
| 文件存储 | 阿里云OSS / 本地存储 |
| 消息推送 | WebSocket + 短信接口 |
| 部署 | Docker + Nginx |
四、核心业务逻辑实现
4.1 自动派单算法
@Component
public class AutoDispatchStrategy {
/**
* 根据距离、评分、空闲状态自动匹配最优服务人员
*/
public Worker matchBestWorker(OrderRequest request) {
// 1. 筛选附近5公里内空闲人员
List<Worker> candidates = workerMapper.selectAvailable(
request.getLng(), request.getLat(), 5000);
// 2. 按综合评分排序(评分权重60%,接单量权重40%)
candidates.sort((a, b) ->
Double.compare(b.getScore() * 0.6 + b.getOrderCount() * 0.4,
a.getScore() * 0.6 + a.getOrderCount() * 0.4));
// 3. 返回最优人员
return candidates.isEmpty() ? null : candidates.get(0);
}
}
4.2 订单超时自动取消
@Component
public class OrderTimeoutHandler {
@Scheduled(fixedRate = 60000) // 每分钟检查一次
public void cancelTimeoutOrders() {
LocalDateTime deadline = LocalDateTime.now().minusMinutes(30);
List<Order> timeoutOrders = orderMapper.selectList(
new LambdaQueryWrapper<Order>()
.eq(Order::getStatus, 0) // 待接单
.lt(Order::getCreateTime, deadline));
timeoutOrders.forEach(order -> {
order.setStatus(-1); // 已取消
order.setCancelReason("超时未接单,系统自动取消");
orderMapper.updateById(order);
// 发送通知给用户
notificationService.sendCancelNotice(order.getUserId());
});
}
}
4.3 微信支付集成
@PostMapping("/createPay")
public Result<String> createPayment(@RequestBody PayRequest request) {
// 调用微信统一下单API
WxPayUnifiedOrderRequest wxRequest = new WxPayUnifiedOrderRequest();
wxRequest.setOutTradeNo(request.getOrderNo());
wxRequest.setTotalFee(request.getAmount().multiply(new BigDecimal("100")).intValue());
wxRequest.setBody("家政服务 - " + request.getServiceName());
wxRequest.setSpbillCreateIp(IpUtil.getClientIp());
wxRequest.setNotifyUrl(payConfig.getNotifyUrl());
wxRequest.setTradeType("JSAPI");
WxPayUnifiedOrderResult result = wxPayService.unifiedOrder(wxRequest);
return Result.success(result.getPrepayId());
}
五、部署三步走
-
环境准备:安装JDK 11、MySQL 8、Redis、Nginx
-
导入数据库 :执行
init.sql创建表结构和初始数据 -
启动服务 :运行
start.sh一键启动后端,前端打包后放入Nginx目录
六、软件截图展示
用户端





商家端


员工端

管理端











