美文网首页电商体系Java技术升华分布式&高可用
基于中台思想的物流系统设计(四):物流服务与物流详情

基于中台思想的物流系统设计(四):物流服务与物流详情

作者: 5998069a25c6 | 来源:发表于2018-11-25 17:28 被阅读9次

    一、概述

    在物流系统中,中台只负责物流订单的流转,具体的物流履行往往需要对接第三方快递公司。由于第三方快递公司的技术标准不一样,因此我们需要对第三方快递公司的接口进行封装,这里涉及到两大类封装,一个是下发请求的封装,一个是接收回传的物流详情的封装。对于下发快递公司,我们不仅仅是接口层面的封装,而是抽象出了一套服务模板,让快递公司的物流服务以一种产品形式呈现给商家和用户。对于物流详情,我们会设计一套自己的数据模型,来对接不同的快递公司。

    二、物流服务

    1、概念模型

    物流服务从模型上又分成三个部分:服务模板、快递公司模型和运费模板。物流服务从流程上来说分成三个阶段:物流服务的表达、物流服务的路由、物流服务的履行。

    首先我们会录入快递公司,并且配置好快递公司的运费模板,然后我们会编辑服务模板,最后我们把可以提供相应服务的快递公司挂载到对应的服务模板下面。完成上面的步骤后,商家就可以针对不同的商品选择对应的服务模板,挂载了服务模板的商品在用户交易下单的时候是可以看到物流服务的,这时候就会让用户选择服务模板下的不同快递公司,然后根据快递公司的运费模板进行物流费用的计算,从而完成订单金额的计算,后续商家发货的时候,中台会根据订单上的物流服务快照信息,调用不同的快递公司进行发货。

    2、数据模型

    ER数据模型如下图所示:

    2.1、logistics_service

    描述:物流服务模板

    索引字段:id、service_code

    2.2、logistics_company

    索引字段:id、company_code

    2.3、logistics_service_company

    描述:物流服务模板与物流公司的关联表

    索引:id、service_id、company_id

    2.4、freight_template

    描述:运费模板

    索引:id、company_id、company_code

    2.5、freight_template_detail

    描述:运费模板明细

    索引:id、template_id、sendAreaCode、receiveAreaCode

    三、物流详情

    1、流程设计

    物流订单发货的时候,会发送异步消息,物流详情接收到消息后创建一个物流详情单,然后去订阅第三方快递公司,然后快递公司会异步回传物流详情给我们。对于一些无法订阅物流详情的快递公司,我们通过定时任务定时批量查物流详情,同步到我们的数据库中。

    2、数据模型

    2.1、logistics_detail

    描述:物流详情单

    索引:id、lg_detail_code、unique(outer_id,outer_order_type)

    2.2、logistics_detail_node

    索引:id、lg_detail_code

    四、总结

    物流服务和物流详情是对第三方快递公司的一层抽象和封装,相对来说比较简单,下一篇文章我们将进入重点内容:产品服务层的设计。

    联系邮箱:public@space-explore.com

    (未经同意,请勿转载)

    相关文章

      网友评论

      • 爱你千千万万遍:请问物流详情单号是什么意思啊,他的作用是什么啊。一个物流单号不都有对应的订单号吗?
        5998069a25c6:@爱你千千万万遍 正常情况一个订单对应一个运单号,这时候只会有一个物流详情单,如果拆单的情况下,物流详情肯定是跟着拆单后的订单走的,所以你可以理解成每个物流详情单号对应一个运单号
        爱你千千万万遍:@银河1号 您的意思是每个物流详情单号对应一个运单号吗?还是说一个物流详情单号对应一个订单号?请问在您的设计中三者的关系是什么啊,因为一个订单号是可以有多个运单号嘛
        5998069a25c6:物流详情单号就是主键对应的一个业务单号,比如主键是1001,那么物流详情单号就可以设计成LD1001,这样设计的目的是:如果外部系统需要保存物流详情单,那么保存这个业务单号可以方便识别

      本文标题:基于中台思想的物流系统设计(四):物流服务与物流详情

      本文链接:https://www.haomeiwen.com/subject/cpopqqtx.html