首页 > 其他分享 >滴滴网约车订单的开票,如何减少对订单的耦合?

滴滴网约车订单的开票,如何减少对订单的耦合?

时间:2024-05-10 22:52:33浏览次数:28  
标签:滴滴 订单 开发票 网约车 主表 开票

滴滴网约车订单的开发票页面,见下方移动端页面截图。业务操作大家应该都知道,勾选一笔或多笔订单,点击“下一步”进行开发票。

 

滴滴网约车日订单量有1千多万。在技术层面,如何设计,来让开票业务最大程度上减少对订单表的耦合呢?

 

先来回顾一下滴滴网约车订单大致的开票流程。

开票页面,用户勾选订单 点击“下一步”,申请开票    
     

 

进入开票详情页

选择发票类型,

填写开票信息、

选择发票接收方式

   
     
开票异常,重开发票 点击“提交”,确认提交开票

开票历史查询

(即:查询已开票记录)

 

我们先来看看“需求直译”模式的实现方式:

  1. 订单表上增加字段 是否开票。
  2. 开票页面 展示 是否开票=false 的订单。
  3. 订单发生开票后,保存开票主表和开票订单表,同时设置订单的 是否开票=true。
  4. 订单开票失败后, 重置订单的 是否开票=false。
  5. 开票历史查询页,查询 开票主表和开票订单表。

其中,关于开票主表和开票明细表,开票主表保存开票信息,如发票类型、开票信息、发票接收方式,开票订单表保存开票时所选择的订单。开票主表与开票订单表 在系统里 以 开票单号 来关联(滴滴查询已开票记录时,并未展示这个开票单号,毕竟用户不关注这个东东,可见滴滴产品在用户体验上的拿捏还是很到位的)。

 

缺点是很明显的。

从程序设计方面来说,开票与订单产生耦合。因开票业务,需要修改订单的 是否开票 字段。

从系统性能方面来说,滴滴的订单量大,因此而产生的对订单表的update操作会影响订单表性能。这个比较要命。

 

变换一下思路,我们来看看更好的实现方式,让开票与订单彻底解耦。

​首先,在订单完成时,。。。(待续,你琢磨琢磨)

 

 

 

扩展阅读:人人都是产品经理号上,产品经理解读→6个方面解析:滴滴的开发票流程

标签:滴滴,订单,开发票,网约车,主表,开票
From: https://www.cnblogs.com/buguge/p/18185432

相关文章

  • 用一个查询从销售订单直通供应商账单-NetSuite
    朗读全文Yourbrowserdoesnotsupporttheaudioelement.有什么用用一个查询从销售订单直通供应商账单NetSuite:从SO销售订单,到PO采购订单,到Bill供应商账单下面文章的分享仅作为演示在SuiteQLQueryToo中的展示,现实情况下的应用可以非常灵活(由于范围广泛无法此文章中......
  • 酒店订单管理系统搭建教程
    1、演示环境配置centos7.9、mysql5.7、php7.22、宝塔创建站点记录创建站点时候创建的数据库信息3、上传fastadmin压缩包点击开始上传4、解压上传的fastadmin5、配置网站目录和运行目录运行目录选择public点击保存即可6、配置伪静态选择thinkphp7、直接访问域......
  • EBS:销售订单历史记录
    EBSR12.x 销售订单修改历史记录--订单行修改记录表SELECT*FROMONT.OE_ORDER_LINES_HISTORYOOLHWHEREHEADER_ID=15871343--SO#102602476109ORDERBYLINE_NUMBER,SHIPMENT_NUMBER/*HIST_COMMENTS:历史记录说明HIST_TYPE_CODE:历史记录类型,如:CANCELLA......
  • 生产订单报工
    CO11N:报工"定义BAPI变量DATA:LS_RETURNTYPEBAPIRET1.DATA:LT_TIMETICKETSTYPETABLEOFBAPI_PP_TIMETICKET.DATA:LS_TIMETICKETSTYPEBAPI_PP_TIMETICKET.DATA:LT_DETAILTYPETABLEOFBAPI_CORU_RETURN.DATA:LS_......
  • 泛型模板化设计使用-订单搜索接口
    泛型模板化设计使用-订单搜索接口1.定义订单搜索接口packagecom.example.core.mydemo.java.templateQuery;//暂不使用该接口//publicinterfaceSearchService<TextendsBaseRequest,FextendsBaseResponse>{publicinterfaceSearchService<T,F>{/***订单......
  • Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算
    Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算1.定义请求和返回对象的上下文对象packagecom.example.core.mydemo.java.filter;importjava.time.LocalDateTime;publicclassOrderReqContext{/***租客会员号*/StringmemNo;......
  • 大厂为什么不用MQ实现订单到期关闭?
    消息队列(MessageQueue,简称MQ)是一种高效处理异步消息的技术手段,广泛应用于系统解耦、流量削峰和异步处理等场景。然而,当涉及到特定的业务逻辑,比如订单到期自动关闭这种定时和精确控制业务流程的场景时,很多大型互联网企业往往选择其他技术方案而非MQ。下面将探讨背后的原因。一致......
  • FICO内部订单详细解析
    内部订单是用来对企业内部某项工作或者任务编制计划、归集成本、结算的载体。比如市场推广活动、内部团队活动、研发项目、投资项目、在建工程项目等。内部订单需要区别于销售订单、采购订单和生产订单。销售订单和采购订单是企业与外部单位以合同或者契约为纽带,在执行交易后,最终......
  • 顺通高效鞋业订单发货系统,保障货物快速准确送达
    一个高效、准确的订单发货系统,不仅能够提升客户满意度,还能有效降低成本,增强企业的竞争力;不仅能够迅速处理订单,减少客户等待时间,还能提高客户满意度。高效、准确的订单发货系统是企业服务质量的体现,也是企业竞争力的重要组成部分。许多成功的企业已经通过实施高效订单发货系统取得......
  • SAP-修改销售订单税额
    SAP-修改销售订单税额用户需要通过接口实现,修改行上的MWSI或MWST税额(两个不会同时存在),前台通过事务码VA02可以直接修改如图示字段。观察字段名称,需要修改字段为定价值(KOMV-KWERT),相关字段有条件金额或百分比(KOMV-KBETR),条件基值(KOMV-KAWRT)。通过BAPI_SALESORDER_CHANG......