Rydr计价引擎深度剖析:如何读懂网约车高峰加价、夜间时段与距离计费规则
Rydr计价引擎深度剖析如何读懂网约车高峰加价、夜间时段与距离计费规则【免费下载链接】rydrRydr - A complete ride-hailing platform built with Spring Cloud microservices项目地址: https://gitcode.com/gh_mirrors/on/rydr想搞懂网约车平台如何算出一笔订单的价钱吗本文带你快速拆解 Rydr 开源网约车平台的计价引擎service-valuation 微服务它是如何用一套规则模型实现起步价、距离计费、高峰时段加价、夜间服务费、最低消费与动态调价的。全文几乎不贴代码用图 规则模型讲解适合新手理解预估价 → 行程中实时价 → 结算价三步计价的完整链路。 核心关键词网约车计价引擎、计费规则、高峰加价、夜间计费、距离计费、Spring Cloud 微服务一、计价引擎在订单链路中的位置 ️在 Rydr 的三层微服务架构中详见 docs/architecture.md乘客下单时api-passenger通过 Feign 调用计价服务拿到预估费用行程结束后再调用结算价接口。整条链路如下计价服务对外暴露 4 个 HTTP 接口见 ValuationController.java接口作用对应场景/valuation/forecast/{orderId}计算预估价下单前报价/valuation/forecast/detail/{orderId}预估价明细展示每段收费构成/valuation/current_price实时价行程中按已走里程报价/valuation/settlement/{orderId}结算价行程结束最终扣款行程开始后乘客端会看到实时地图与起终点信息此时计价引擎已按预估模式算出价格二、规则模型一份订单价格 6 类规则叠加 计价引擎不是把规则写死在代码里而是把整套规则存成 JSONOrderRuleMirrorDao.java 读取订单镜像表启动时解析为 Rule.java 对象。一份Rule由 6 部分组成KeyRule定位规则用在哪——城市编码、服务类型快车/专车、渠道、车型等级BasicRule起步价basePrice、含公里数、含分钟数、最低消费PriceRule超起步部分后每公里 / 每分钟的单价以及分时段计费规则BeyondRule长距离加价——超过 N 公里后每公里加收NightRule夜间时段起止时间与夜间加价单价TagPrice标签费——如高速费、路桥费、停车费等附加项 一句话总结起步价打底里程/时长分段计价高峰和夜间加时区单价长距离加公里单价标签费叠加最低消费托底动态调价封顶。三、距离计费起步价 超里程 长距离加成 ️距离是最核心的计价因子。计算过程分两步拿里程预估阶段调用地图服务的/distance接口拿规划路线里程结算阶段调用/route/distance拿车辆 GPS 轨迹实际里程见 ValuationRequestTask.java。跨天行程会按天切分逐段请求再累加避免接口时间窗限制。算价格在 ValuationTask.java 中——总里程 − 起步含公里数 超起步里程乘以perKiloPrice得里程费总里程 − 长距离起算公里 超出公里数乘以perKiloPriceBeyondRule得长距离加价所有金额运算统一走 PriceHelper.java用BigDecimal保留两位小数、向下取整RoundingMode.DOWN避免浮点误差和多收乘客一分。四、夜间时段计费跨零点的时间片几何 夜间费如 22:00–06:00最大的技术难点是跨零点23:00 出发、次日 01:00 到达的行程夜间时段被切成了两段。Rydr 的解法是 TimeSlice.java——把行程时间段和计费时间段都抽象成时间片只算重叠区间isTimeOverlapped判断两个时间片是否相交!(ya || bx)一行搞定until返回重叠时长然后在 TimeMeter.java 中按天循环展开如果规则里结束时间早于开始时间如 22:00→06:00就把该天窗口整体平移一天从而正确处理跨零点夜间时段。重叠区间的时长 × 夜间每分钟单价、重叠区间的里程 × 夜间每公里单价得到nightPrice夜间服务费详见 ValuationTask.java。五、高峰加价分时段费率如何生效⏱️高峰加价如早晚高峰 1.5 倍单价由PriceRule.timeRules实现每条 TimeRule.java 是起始小时、结束小时、该时段每公里价、每分钟价四元组。计算逻辑ValuationTask.java把整段行程生成一个总时间片起点时刻 → 终点时刻对每条时段规则用TimeMeter.measure求出行程 ∩ 高峰时段的重叠时长与对应里程重叠部分按该时段的高峰单价计费各时段结果分别落库到tbl_order_rule_price_detail明细表不在任何高峰时段内的里程/时长按PriceRule基础单价补齐剩余里程/时长计费 这套时间片求交集的算法天然支持任意多条高峰规则叠加规则配置在数据库里加不加高峰费、几点到几点改配置即可无需改代码——这就是规则引擎的精髓。六、最低消费、标签费与动态调价 在 ValuationServiceImpl.java 的汇总阶段价格按固定顺序合成加总基础费起步价里程费时长费 夜间费 长距离费最低消费托底若合计 lowestPrice补差额到起步价supplementPrice动态调价按城市、车型、出发小时、星期几等维度匹配 DiscountPrice.java 折扣规则折扣率必须落在 0~1 之间且减免金额受discountMaxPrice封顶——这是供需驱动的动态定价入口标签费叠加高速费、路桥费等TagPrice逐项累加行程结束后的账单页就是这些字段的直观呈现——里程 8.8 公里、超里程 0.8 公里、时长 28 分钟、其他费用逐项列明七、工程亮点速览 ✨异步并行计价分段计价与基础计价是两个CompletableFuture并行任务thenCombine后汇总缩短报价耗时预估结果缓存 1 小时同一订单短时间重复报价直接读 Redis 缓存且校验规则 ID 变更规则快照隔离订单创建时规则 JSON 存入镜像表之后规则如何调整都不影响该订单保证计费可追溯明细全落库主价格表tbl_order_price、时段明细表、标签费表三张表建表语句见 rydr-sql.sql支持对账与纠纷回溯八、源码导读路径 想了解去看计价总流程ValuationServiceImpl.java各分项价格计算ValuationTask.java地图里程/路线获取ValuationRequestTask.java时间片重叠与跨天处理TimeMeter.java、TimeSlice.java规则模型定义charging 目录Rydr 的计价引擎展示了规则数据化 时间片几何 异步并行的经典组合是学习网约车计费系统的优质样本。【免费下载链接】rydrRydr - A complete ride-hailing platform built with Spring Cloud microservices项目地址: https://gitcode.com/gh_mirrors/on/rydr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

如何让PC微信防撤回继续有效:防撤回补丁3步上手指南

如何让PC微信防撤回继续有效:防撤回补丁3步上手指南

如何让PC微信防撤回继续有效:防撤回补丁3步上手指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com/…

2026/8/27 14:48:52 阅读更多 →
如何用SpringBoot快速实现接口幂等性设计

如何用SpringBoot快速实现接口幂等性设计

“下单按钮连点两次,结果生成了两个订单”——这不是段子,而是很多系统上线后最先暴露的脏数据来源。接口幂等性设计的本质,不是让接口“不能重复调用”,而是让重复调用产生与一次调用完全相同的效果。理解这一点至关重要&#xf…

2026/8/27 14:50:30 阅读更多 →
从一沓账单到可搜索的数字档案:Paperless-ngx 一键部署实战指南

从一沓账单到可搜索的数字档案:Paperless-ngx 一键部署实战指南

从一沓账单到可搜索的数字档案:Paperless-ngx 一键部署实战指南 【免费下载链接】paperless-ngx A community-supported supercharged document management system: scan, index and archive all your documents 项目地址: https://gitcode.com/GitHub_Trending/p…

2026/8/27 14:55:53 阅读更多 →

最新新闻

从 Ctx 上下文到访问控制:rust-web-app 请求上下文设计与 ACS 权限系统路线图(完整指南)

从 Ctx 上下文到访问控制:rust-web-app 请求上下文设计与 ACS 权限系统路线图(完整指南)

从 Ctx 上下文到访问控制:rust-web-app 请求上下文设计与 ACS 权限系统路线图(完整指南) 【免费下载链接】rust-web-app Code template for a production Web Application using Axum: The AwesomeApp Blueprint for Professional Web Develo…

2026/8/27 17:10:35 阅读更多 →
angular-ngrx-data进阶技巧:乐观保存、EntityChangeTracker变更跟踪与一键Undo的3种姿势

angular-ngrx-data进阶技巧:乐观保存、EntityChangeTracker变更跟踪与一键Undo的3种姿势

angular-ngrx-data进阶技巧:乐观保存、EntityChangeTracker变更跟踪与一键Undo的3种姿势 【免费下载链接】angular-ngrx-data Angular with ngRx and experimental ngrx-data helper 项目地址: https://gitcode.com/gh_mirrors/an/angular-ngrx-data 做 Angu…

2026/8/27 17:10:35 阅读更多 →
SlimeKT深度链接分享实战:Firebase Dynamic Links让用户一点链接直达文章详情页

SlimeKT深度链接分享实战:Firebase Dynamic Links让用户一点链接直达文章详情页

SlimeKT深度链接分享实战:Firebase Dynamic Links让用户一点链接直达文章详情页 【免费下载链接】SlimeKT An article sharing platform where you can personalize, subscribe to your favorite topics, get daily-read reminders, etc. App built using Kotlin, Dagger Hilt,…

2026/8/27 17:10:35 阅读更多 →
前端开发焦虑?收藏!深度解析AI时代如何突破职业瓶颈,小白程序员必看!

前端开发焦虑?收藏!深度解析AI时代如何突破职业瓶颈,小白程序员必看!

文章探讨了前端开发在AI和低代码工具冲击下的职业焦虑。一方面,简单工作被替代,另一方面,“35岁门槛”引发担忧。但核心价值——复杂交互设计、架构、性能优化及业务解决方案能力——仍无法被取代。文章以电商详情页重构为例,说明…

2026/8/27 17:10:35 阅读更多 →
如何用 StarTraining 搭建公司自己的在线培训平台:从课程到考试的完整部署指南

如何用 StarTraining 搭建公司自己的在线培训平台:从课程到考试的完整部署指南

如何用 StarTraining 搭建公司自己的在线培训平台:从课程到考试的完整部署指南 【免费下载链接】StarTraining 职星学院企业培训系统是一套基于点播、直播、考试、培训、面授等功能完善的在线教育系统,开源版是基于商业版精简实现的一个企业员工培训系统…

2026/8/27 17:10:35 阅读更多 →
告别触控板误触:G-Helper 一键开关华硕笔记本触控板,免重启

告别触控板误触:G-Helper 一键开关华硕笔记本触控板,免重启

告别触控板误触:G-Helper 一键开关华硕笔记本触控板,免重启 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivob…

2026/8/27 17:09:35 阅读更多 →

日新闻

Go语言构建企业级AI服务网关:统一管理英伟达等AI接口调用

Go语言构建企业级AI服务网关:统一管理英伟达等AI接口调用

1. 项目概述:从零构建一个企业级的AI服务网关 最近在帮一个做内容审核的团队做技术架构升级,他们原来的业务里,每天有几十万张图片和短视频需要过审,最初是接了几个开源的AI模型自己部署,但效果和性能一直不太稳定。后…

2026/8/27 0:00:51 阅读更多 →
网盘直链下载助手5分钟解析八大网盘真实地址

网盘直链下载助手5分钟解析八大网盘真实地址

网盘直链下载助手5分钟解析八大网盘真实地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅雷云盘 / 夸…

2026/8/27 1:06:27 阅读更多 →
从零点亮 ESP32:Arduino ESP32 开发环境搭建与首次烧录完整指南

从零点亮 ESP32:Arduino ESP32 开发环境搭建与首次烧录完整指南

从零点亮 ESP32:Arduino ESP32 开发环境搭建与首次烧录完整指南 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 Arduino ESP32 是乐鑫官方的 ESP32 系列 Ardui…

2026/8/27 1:06:27 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/26 14:45:33 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/26 17:46:43 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 14:46:37 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/26 3:50:20 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/26 17:46:39 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/26 1:24:05 阅读更多 →