开发一套同城跑腿代办小程序时,设置服务时间范围需兼顾用户下单便利性、骑手工作节奏和业务场景特性,可通过多维度配置实现灵活管控。具体方案如下:
全局基础服务时间
设置平台默认服务时段(如每日 6:00-23:00),作为所有用户下单的基础参考,超出此时段下单时提示“当前非服务时间,可预约次日服务”。
支持按日期类型差异化配置:工作日(周一至周五)、(周六至周日)、节假日分别设置不同时间(如节假日延长至 24:00)。
骑手个性化服务时间
骑手端提供 “工作时间设置” 入口,可自主选择接单时段(如 “仅 10:00-18:00接单”),系统仅在该时段向其推送订单。
支持设置 “休息时段”(如每日 12:00-13:00 关闭接单),避免骑手疲劳工作。
区域差异化服务时间
针对不同城市 / 商圈设置专属时间(如 A 区服务至 22:00,B 区服务至24:00),结合区域消费习惯调整(如夜经济活跃区延长服务)。
特殊区域(如写字楼集中区)可设置 “午休加急时段”(12:00-14:00),匹配用户集中需求。
服务类型时效差异
按服务品类设置时间限制:如 “文件急送” 支持 24 小时服务,“生鲜代购” 仅7:00-21:00(确保商品新鲜度)。
预约单支持未来 7 天内的时间选择(如 “预约明天 9:00 取件”),即时单仅显示当前可服务时段。
时间规则数据模型
javascript
https:// 全局服务时间表(global_service_time){ id: 1, type: "weekday", https:// 工作日/weekend/holiday startTime: "06:00", endTime: "23:00", areaId: null, https:// null表示全平台,非null表示特定区域 serviceType: "all" https:// 适用服务类型(all/express/shopping)}https:// 骑手工作时间表(rider_service_time){ riderId: "rider_123", weekdays: [1,2,3,4,5], https:// 周一至周五 startTime: "10:00", endTime: "18:00", breakTime: { start: "12:00", end: "13:00" } https:// 午休时段}
前端时间选择与校验
用户下单时,根据当前区域和服务类型,动态加载可用时间范围:
javascript
https:// 获取可用服务时间async function getAvailableTime(areaId, serviceType) { const res = await request('/api/service-time', { areaId, serviceType }); const { globalTime, isWithinService } = res.data; https:// 若当前不在服务时间,显示预约选项 if (!isWithinService) { this.setData({ showBooking: true, nextAvailableTime: globalTime.nextStart }); }}
时间选择器限制:仅展示符合规则的时段(如全局服务至 23:00,则选择器大时间为 23:00)。
订单时间冲突处理
骑手接单时,系统校验订单时间是否在其设置的工作时段内,冲突则提示 “该订单时间不在您的工作时段,是否接单?”。
预约单临近服务时间(如 1 小时前),向骑手推送提醒 “您有预约单将于 10:00 开始,请做好准备”。
临时调整机制
后台支持手动开启 “特殊服务时段”(如暴雨天临时缩短至 20:00),生效后实时同步至前端,用户下单时显示提示“因天气原因,服务截止时间调整为 20:00”。
重大活动(如双十一)可设置 “临时加时服务”,并向骑手推送额外补贴政策(如 22:00 后接单每单加 5 元)。
时间可视化展示
首页用简洁图标标注当前服务状态(如 “正在服务中 6:00-23:00”),非服务时段显示“服务已结束,可预约明日订单”。
骑手端 “我的工作台” 显示当日工作时长统计(如 “已工作 6 小时,剩余 2 小时”),避免超时工作。
通过以上配置,既能保障服务的规范性和骑手的合理工作节奏,又能灵活适配不同场景的时间需求,提升用户下单体验和平台运营效率。
小程序开发,app开发,软件开发,系统开发