账务实时交易系统设计思考-【第二节】-业务分析

【思考点滴】

作者 : 杨考  微信号 : devin_cn_hd_09_16

本文是【讲解篇】和【技术分享篇】结合起来,由于CSDN文章图片丢失,又补了一次图片。同时进行了章节拆分。

全量版             https://blog.csdn.net/yk200808/article/details/80755459
第一节:业务简介    https://blog.csdn.net/yk200808/article/details/81624677
第二节:业务分析    https://blog.csdn.net/yk200808/article/details/81624779
第三节:功能设计    https://blog.csdn.net/yk200808/article/details/81624826
第四节:热点问题    https://blog.csdn.net/yk200808/article/details/81624861
第五节:准确性      https://blog.csdn.net/yk200808/article/details/81624899
第六节:使用建议    https://blog.csdn.net/yk200808/article/details/81624917
第七节:思考总结    https://blog.csdn.net/yk200808/article/details/81624934

 

2.业务分析

如上图示,简单总结了账务实时交易系统所处的位置,

所有的业务交易都可以虚拟为订单,订单再经过账务实时交易系统的处理,就可以将金额分配到相应的账户。

如下是外卖的账务交易业务模型,现在需要思考如何根据订单的状态,实现金额的更新、分账和账单的生成。

2.1业务模型汇总

上面讲了这么多,看看需要接入的实际业务业务有哪些?业务特征是什么?业务模型是否符合理论分析(有向图)?

在线支持业务

订单分类

外卖平台单

物流订单

物流外单

随意购

自配送

百度快递

骑士打赏

CPC推广费用管理

虚拟订单

CPT费用管理

用户提现、打款

用户订单

用户订单

… …

… …

如下图示是业务模型的一个汇总,

1) 树形,

2) 包含多个账户,业务众多,角色众多

3) 多层、多级分账,

4) 任何一个层级都可以发生取消分账,或者取消部分或者全部分账

5) 单账户的交易类型丰富(如:骑士账户的申诉、奖励、补账、餐损、惩罚 ...)

6) 如果一个账户存在多种交易类型,可以通过业务或者描述信息来区分每个交易。(将图转化为树,或者将子树连接到整棵资金流树上)

总结:虽然账务交易角色众多,交易类型丰富,但是模型还是很典型的树状模型,当前接入的业务是如下图示模型,或者如下图示模型的子树。

        而且新的业务也不局限于如下模型,凡是资金流无论交易层级有多少,都可以被归结为如下模型的处理范围。

2.2 业务模型分解

2.2.1 业务典型操作归纳

针对业务模型,业务操作很简单的可以归纳为如下几个典型操作:

1)入账、

2)出账、

3) 转账、

4) 分账、

5) 取消

2.2.2 资金流的状态(无状态和有状态)

另外通过资金的依赖,可以分为无状态依赖和有状态依赖两种:

1) 无状态资金处理-没有任何的状态依赖,即罚款,

2) 有状态资金处理-用户的支付金额,需要为业务进行细分再分给相应的商户和骑士等账户,

2.2.3 账户操作:

1) 金额的增加

2) 金额的扣减

总结,业务和账户操作呈现喇叭型业务模型,或者倒锥形型业务模型

1) 底层操作接口简单

2) 生成数据格式统一

3) 支撑业务多样化

2.3 账户多样性

2.3.1 账户构建元素满足账户多样性

要接入业务众多,因此账户也变得异常的丰富。

如:青岛众包配送收入账户, 实际来讲,就是青岛市(城市)的众包配送(业务)收入账户(主体:财务)

简单的账户构建元素组合,即可完成丰富的账户信息描述。

2.3.2 账户类型是账务交易方式的体现

至于每个账户,因为金额操作的需求,需要设定不同的账户类型,

1) 现金账户,完成现金业务交易;

2) 冻结账户和淘宝的交易资金冻结功能相同,订单下单,资金入冻结账户,交易完成资金从冻结账户转出到现金账户;

3) 监察账户,提现账户...等就不做详细介绍了。

2.4 账务实时交易系统设计目标

猜你喜欢

转载自blog.csdn.net/yk200808/article/details/81624779