实现了自动扫描 WAITING 状态的订单,通过 ISmartDispatchService.recommendRiders 方法进行智能派单,并将订单和推荐的师傅关联保存到中间表中。
AutoDispatchQuartz 每5分钟自动扫描等待状态的订单OrderDispatchServiceImpl 实现智能派单逻辑WAITING(0) 更新为 ALLOCATED(6)kx_order_rider_recommendorder_no: 订单编号rider_id: 推荐的师傅IDrider_name: 师傅姓名match_score: 匹配度分数recommend_order: 推荐排序(1表示最优推荐)status: 推荐状态(0-待处理, 1-已分配, 2-师傅拒绝, 3-超时)KxOrderRiderRecommendController 提供CRUD操作KxOrderRiderRecommend.java - 中间表实体类KxOrderRiderRecommendVo.java - 视图对象KxOrderRiderRecommendBo.java - 业务对象KxOrderRiderRecommendMapper.java - 数据访问接口KxOrderRiderRecommendMapper.xml - MyBatis映射文件IOrderDispatchService.java - 派单服务接口OrderDispatchServiceImpl.java - 派单服务实现IKxOrderRiderRecommendService.java - 推荐记录服务接口KxOrderRiderRecommendServiceImpl.java - 推荐记录服务实现KxOrderRiderRecommendController.java - 管理控制器AutoDispatchQuartz.java - 自动派单定时任务kx_order_rider_recommend.sql - 中间表创建脚本WAITING 的订单SmartDispatchParamBo 参数ISmartDispatchService.recommendRiders 获取推荐师傅ALLOCATED0 */5 * * * ?)系统会自动运行,无需人工干预。
可以通过以下API手动触发订单派单:
POST /rider/orderRiderRecommend/dispatch/{orderNo}
可以通过以下API查询订单的推荐师傅:
GET /rider/orderRiderRecommend/listByOrderNo/{orderNo}
kx_order_rider_recommend.sql 创建中间表ISmartDispatchService 智能派单服务