分账MQ消息处理流程
2017-02-21 17:31:57 0 举报
登录查看完整内容
分账MQ消息处理流程主要包括以下几个步骤:首先,系统接收到分账请求后,将请求信息封装成MQ消息,并发送到MQ消息队列中。然后,消息消费者从消息队列中获取到分账请求,对请求进行解析和验证,确保请求的合法性和完整性。接下来,根据分账策略对请求进行处理,计算各参与方的分账金额。处理完成后,将分账结果更新到数据库中,并生成相应的分账记录。最后,将分账结果通过MQ消息通知给各参与方,完成整个分账过程。在整个流程中,系统需要保证消息的可靠传输、数据的一致性和安全性。
作者其他创作
大纲/内容
更新原分账明细为DELETED
否
查询统一配置的错误码列表
为空
不为空
else
将新明细的变量赋值给旧的
分账明细状态为REMITE_FAILURE
更新分账明细为WAIT_CHECK
是否Handle
发起分账
查询分账明细
是
DivideDetailOperateTypeEnum转换操作类型,貌似是INSERT
如果转账成功,则更新分账明细为SUCCESS
发送MQ消息
遍历分账明细
调用路由发起转账
分账记录的分账金额 减去 分账明细的金额
DivideDetailProcesser
更新分账明细为SUCCESS
有
查询分账订单Order
是否在统一配置列表内
更新分账订单的状态为PROCESS,并更新数据库
发送预警邮件
创建一个新的分账明细
返回分账明细列表
返回null
处理分账
是否Insert
状态SUCCESS/FINISH
查询分账记录
更新状态
判断分账订单状态
删除MQ消息
调用路由转账接口
不相同
查询分账订单
调用路由查询转账订单的状态
返回分账明细
判断分账类型
是否Query
调用路由查询打款信息
如果分账明细的状态为INIT/PROCESS/WAIT_CHECK
payplus.order.exchange_4_divideDetailDivideDetailProcesser
COMPLETE
如果转账失败(抛异常失败和返回失败状态)则更新分账明细为WAIT_CHECK
是不是YQT
抛异常
balabalabala
判断路由转账订单的状态
分账订单状态是否为INIT
遍历分账明细,同时计算总分账金额
状态是否为WAIT_CHECK
发送分账明细的MQ消息类型INSERT
将分账记录的状态修改为PROCESS,并更新数据库
DivideInfoProcesser
调用路由打款逻辑
更新分账记录
非INIT
打款
判断分账明细是否成功
处理分账明细
分账订单的状态是否为PROCESS
payplus.order.exchange_4_divideRecord处理器:DivideRecordProcesser
查询分账明细信息
推账务
判断分账订单是否为INIT
封装路由转账请求参数
列表是否为空
结束
INIT/PROCES/WAIT_CHECKS
FAIL
初始化订单
YQT
比较计算的分账金额和分账订单的金额是否相同
INIT
分账明细状态为SUCCESS 或 REMITE_FAILURE
分账
判断分账记录的状态是否为PROCESS
没有
不是PROCESS
判断分账明细状态
更新分账明细为成功 SUCCESS
查询所有状态为INIT或PROCESS的分账明细
更新分账明细
return
钱麦
0 条评论
回复 删除
下一页