女孩去旅行,给男朋友带回了一个难解的 Bug
沉默是金总会发光大家好我是沉默前两周女朋友去了开封旅游。回来没多久她就在微信上跟我吐槽了一件糟心事她在两个平台都买了景区联票因为行程太赶忘记退掉其中一个平台的票。现在两个平台的票都显示已使用无法退款。听到这里我第一反应是这不就是买重复票了吗比如很多景区像广州白云山、陈家祠都是买票要选具体日期过期就作废所以我当时猜测她可能是在抖音 美团买了同一天的票后来只用了一个平台的票另一个忘退。这种情况其实很常见。但很快我就发现事情远远没这么简单。如果只是重复买票你们也就看不到这篇小破文了。-01-原来开封景区的票是这样卖的随着我继续了解才发现开封景区的售票模式非常特殊。主要有两种1. 单景区购票你去哪个景点就买哪个票。例如万岁山武侠城铁塔公园龙亭景区这种模式适合只去一两个景区。但开封景区很多如果这样买非常不划算。2. 景区联票所以当地景区会推出联票套餐。例如2景区联票4景区联票6景区联票多个景区合作价格更便宜。问题就出在这里。我女朋友当时先在抖音买了一个4景区联票包含万岁山武侠城翰园碑林开封城墙铁塔公园后来她朋友又发现美团有一个更划算的 6 景区联票包含万岁山武侠城翰园碑林开封城墙铁塔公园龙亭景区天波杨府于是就出现了一个经典场景同一个人在两个平台买了两个不同的景区联票-02-但这里有两个关键规则事情开始变得有意思了。因为平台还有两个规则规则一支持随时退平台承诺在截止日期之前可以随时退款。如果到期还没使用系统自动退款。规则二两个订单都显示已使用但女朋友打开订单发现抖音订单已使用美团订单已使用这就很离谱。因为她实际上只玩了一次。为什么两个订单都被核销了-03-事情的关键一开始我以为景区是二维码扫码入园这样的话平台订单 → 对应二维码 → 精准核销。但我又猜错了。开封景区使用的是人脸识别入园流程是这样的购票时填写身份证进入景区时刷脸 → 自动放行到这里我突然意识到票务系统的逻辑一定很复杂。于是我忍不住从程序员视角开始分析整个系统。我大致推测系统流程是这样第一步识别用户游客刷脸人脸识别 → 获取身份证系统确认你是谁。第二步查询订单系统查询这个身份证在哪些平台买过票例如抖音美团携程然后匹配当前景区是否包含在联票中。第三步订单核销逻辑这里才是最复杂的部分。因为可能出现很多情况。情况1一个平台买一个景区最简单。进景区→ 核销订单平台结算给景区。情况2一个平台买联票例如万岁山 铁塔公园这时候系统很可能会先锁单等到最后一个景区完成才真正核销。原因很简单因为游客可能同时在多个平台买票。情况3多个平台买同一个景区例如抖音万岁山美团万岁山这时候系统必须决定核销哪个平台最可能的策略是时间优先谁先买就先核销谁。情况4多个平台买联票这就是我女朋友的情况。关键来了。抖音联票万岁山翰园碑林开封城墙铁塔公园美团联票万岁山翰园碑林开封城墙铁塔公园龙亭天波杨府注意龙亭 天波杨府只有美团有。理论上只要去了其中一个景区系统就能判断应该核销美团订单。-04-最巧合的一件事发生了她们当天的游玩顺序是万岁山→ 翰园碑林→ 开封城墙→ 铁塔公园→ 天波杨府→ 龙亭景区也就是说先玩了四个重合景区。这时候对于抖音联票来说4个景区已经全部完成满足核销条件。而系统又采用时间优先核销抖音是先买的。于是系统核销抖音订单当她们继续玩天波杨府龙亭系统又认为美团联票开始被使用。于是又锁定了美团订单。但她们只玩了这两个景区。剩余景区没去。三天后系统自动核销于是就出现了一个神奇的结果抖音订单已使用美团订单已使用-05-总结后来我打电话联系抖音客服。说明情况后成功完成了退款。女朋友在旁边跟我聊着旅游趣事。但我脑子里一直在想这个票务系统其实有 Bug。如果让我来设计系统我第一反应是增加二维码核销通道。但这个方案很快被我自己否掉。因为用户仍然可以刷脸入园问题依然存在。更合理的方案当系统检测到同一用户多个平台多个订单应该提示请选择核销订单例如请选择平台[抖音][美团]这样就可以彻底避免多平台重复核销的问题。很多人旅行结束后会想风景好不好美食怎么样而我旅行后想的是这个系统怎么设计更合理。这可能就是程序员的职业病吧。热门文章一套能保命的高并发实战指南架构师必备用 AI 快速生成架构图-06-粉丝福利站在职业的十字路口我们或许都曾感到迷茫投出的简历总是没有回音面试时不知如何展现自己的优势未来的职场道路该如何规划技术管理能力提升如何跨越第一步如果你正在经历这些我很乐意用我的经验为你提供一些帮助。无论是修改简历、1对1求职陪跑职业规划咨询还是迈向技术Leader或提升管理效能欢迎你加我我们像朋友一样聊聊。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2424080.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!