分销系统代码解析
2022-12-06 11:15:38 1 举报
分销系统核心代码解析
作者其他创作
大纲/内容
onMessage(处理监听消息)
流程结束
抛出异常
成功
不存在
商品分享码不存在或已失效
内部检查
更新佣金记录对象
updateWithdrawStatus
规则校验
存在
直接调用
接口
先查询账户
计算佣金值
主题:JOB_CENTER_TOPIC,标签:SETTLE
记录账户锁定详情
判定
修改结算状态为已结算
自定义分页
初始化账户和账户扩展信息
AccountDetailListener
未超限
更新订单快照的refundState
计算账户余额并保存
定时任务
从内存获取分销配置
AppUserCancellationListener
settleForLastMonth
返回余额
未作任何校验
佣金为空
根据结算情况更新 快照表以及佣金表
异常信息
查询体现规则
添加成功
添加账户流水
更新分销订单快照
分销开启
非拉新,佣金超限时需要保存佣金记录,佣金值为0
WithdrawListener
首次注册
再次注册用户
保存拉新奖励记录(返回佣金)
executeLocalTransaction
事务监听器
返回具体佣金
满足
商品不存在
分销关系是否存在
打款成功
用户
佣金值置为0
初始化账户
不允许修改账户信息只可以修改账户扩展信息
等待财务人员线下打款
账户不存在
removeRelation(删除分销关系)
事务提交
JobSettleListener
不是已结算
DistSettleTask
createRelation(创建分销关系)
OrderPaymentListener
createRefundSnapshot(创建退款单快照)
根据订单号查询分销订单
主题:WITHDRAW_CENTER_TOPIC标签:AUDIT
解析参数
账户未锁定
订单不是分销订单或订单不存在
去重查询(同一个用户,同一笔订单,同一个渠道,只有一条记录)
发送消息
账户信息
分销快照记录已存在
监听
构造分销关系用户上下级实体
余额为0
保存退款快照
不满足条件
查询待结算的分销订单
保存分销佣金记录(返回佣金)
查到该笔提现记录
SettleListener
再次构造添加实体
查询账户
非拉新
相关人员
退款单不存在
订单不存在
添加佣金记录
商品存在
保存账户流水
提交提现申请
不够提现
此订单状态为已结算
检查佣金记录是否存在
账户余额锁定
余额=账户余额-锁定余额
AccountTask
够提现
事务回滚
更新佣金记录的refundState
判断手机号
判断奖励类型
批量通过待提现申请
单例模式+策略模式,先获取订单消息处理对象
添加一条待结算的分销报表数据
分销关系不存在
内部处理
账户整体锁定
insertUserAccountDetail
查询所有待提现申请
解析参数,构造查询实体
用户不存在
创建订单快照
该笔提现申请不存在,请核实
返回null
关注
发送消息(事务)
从内存获取商品码
拉新
直接返回余额
提现金额和余额比对
用户分销佣金超过限制
佣金值为已存在的值
提现申请
OrderRefundListener
解锁账户表和账户锁定表
checkLocalTransaction
分销玩法未开启
createOrderSnapshot(创建分销订单)
添加提现支付记录
用户注册
回填信息(账户当前余额、锁定余额、账户锁定表主键)
AppUserRegisterListener.java
先查询提现方式
分销系统代码解析
根据订单号判断:1、查询该订单是否待审核或者待打款的退款单;2、查询该订单未退款金额;计算:1、一级、二级分销佣金叠加以及拉新奖励计算。构建:1、构造结算实体类,将发给账户系统
账户存在
获取余额
0 条评论
下一页