这两天构思了一个 物流运费的维护架构 大的流程是这样的
每次修改或者添加运费都会形成一个快照,根据快照记录可以方便的回溯历史价格。缺点就是比较复杂,数据存储的比较多。
我设计了六个表,用来维护运费的价格和一些其他费用的价格。
这个表的设计原则是只读只写的。其中 BaseFee 和 OtherFee 是可以当成值类型数据公用的。当然也可以无情连续插入新的数据。
其他费用组 引用了 基础费用组,这里要说明一下,有一些其他费用,比如燃油费,它是按照基础费用算出来的一定比例收费的。
最后是 UI 设计
这里考虑到基础费用很多,所以采用导入+预览的方式。
介绍一下 其他费用都有哪几种,以及他们是如何收费的。
1、操作费 按票收取,每个重量段的操作费有可能不一样,这里把他当成 基础运费的跟随价格-操作费 一次性导入。
2、折扣1 对基础费用打折
3、折扣2 对基础费用 和 操作费 打折
4、燃油费1 对基础费用按照百分比收取
5、燃油费2 对基础费用按照百分比收取
6、附加费 按票收取,费用固定
7、干线费 按重量计算,非跟随价格。
最终分解成 #总费用 = #基础费用 + sum( #其他费用)
每一种其他费用使用一种算法实现,把最后结果相加即可。