对调用方影响
如果是想减少对调用方的影响,可以不更改URL但是更改返回的状态码
对domain的影响
domain可以拆分成三个个方法,一个是用来处理请求,那么就是检查入参和状态。并且把当前状态改成审批中从而拒绝其他所有请求,另两个方法处理审批结果,因为审批结果有通过和未通过两种情况。这两种情况的处理可以合成一个方法也可以分成两个方法,分成两个方法时入参更加明确。
锁定
这个锁定并非处理并发的LOCK,而是要给domain增加一个状态。一直等待审批结束后(通过或不通过)再来处理
原业务流程中加入审批流会将原有的domain方法变成两个,一个申请,一个执行。申请的时候需要锁定。
超时
有的时候再审批还未结束时,由于时间的变化,就有新的变化
时间
如果一个业务动作引入了审批,那么业务时间是按照发起申请的时间还是审批通过的时间呢?
发起时间
这个更接近于事情的本质,缺点是相关操作没有发生,从对接第三方看来事件是在审批通过时才发生(例如退费)
审批时间
由于审批未必能通过,所以在按月汇总表等页面处理,对于审批中是否统计就有疑问。所以为了得到稳定不变的数据,采用审批时间(也就是实际业务动作发生时间)比较好