@startuml
autonumber
actor "小二" as 小二
participant "ovs-sellercenter" as ovs_sellercenter
participant "taobao-finance-viewconvert-ns-s" as taobao_finance_viewconvert_ns_s
participant "taobao-settlement-ns-s" as taobao_settlement_ns_s
小二 -> ovs_sellercenter: 小二后台提交年费佣金设置
ovs_sellercenter -> ovs_sellercenter: 小二后台走审批流程
ovs_sellercenter -> 小二: 审批结果
ovs_sellercenter -> taobao_finance_viewconvert_ns_s: 审批成功后调用结算接口(BizRuleWriteFacade#saveBizRule)
taobao_finance_viewconvert_ns_s -> taobao_settlement_ns_s: 调用设置接口(BizRuleWriteService#saveBizRule)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 基础参数校验
taobao_settlement_ns_s -> taobao_settlement_ns_s: 校验计费规则因子是否存在
taobao_settlement_ns_s -> taobao_settlement_ns_s: 判断新增或修改
taobao_settlement_ns_s -> taobao_settlement_ns_s: 写入DB
taobao_settlement_ns_s -> taobao_finance_viewconvert_ns_s: 结果返回
taobao_finance_viewconvert_ns_s -> ovs_sellercenter: 结果返回
@enduml
@startuml
autonumber
participant "ovs-sellercenter" as ovs_sellercenter
participant "taobao-finance-viewconvert-ns-s" as taobao_finance_viewconvert_ns_s
participant "taobao-settlement-ns-s" as taobao_settlement_ns_s
ovs_sellercenter -> taobao_finance_viewconvert_ns_s: 调用结算年费佣金查询接口(BizRuleQueryFacade#queryBizRule)
taobao_finance_viewconvert_ns_s -> taobao_settlement_ns_s: 接口查询(BizRuleQueryService#queryBizRule)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 查询计费规则
taobao_settlement_ns_s -> taobao_settlement_ns_s: 构建佣金因子表达式
taobao_settlement_ns_s -> taobao_settlement_ns_s: 查询DB
taobao_settlement_ns_s -> taobao_settlement_ns_s: 构建接口返回参数
taobao_settlement_ns_s -> taobao_finance_viewconvert_ns_s: 结果返回
taobao_finance_viewconvert_ns_s -> ovs_sellercenter: 结果返回
@enduml
@startuml
autonumber
actor "商家" as 商家
participant "taobao-merchant-onboarding-ns-s" as taobao_merchant_onboarding_ns_s
participant "taobao-settlement-ns-s" as taobao_settlement_ns_s
participant "taobao-fund-manage-ns-s" as taobao_fund_manage_ns_s
participant "ipay" as ipay
alt 年费试算
商家 -> taobao_merchant_onboarding_ns_s: 商家入驻
taobao_merchant_onboarding_ns_s -> taobao_settlement_ns_s: 年费试算(StandardSettlementTrialService#trialCalculate)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 调用汇金进行年费试算
taobao_merchant_onboarding_ns_s -> 商家: 展示需要缴纳年费金额
end
alt 年费预缴
商家 -> taobao_merchant_onboarding_ns_s: 商家确认扣费
taobao_merchant_onboarding_ns_s -> taobao_settlement_ns_s: 发送扣费请求(SingleBillingSettlementAcquireService#singleAcquire)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 调用汇金IBizGwService.submit
taobao_settlement_ns_s -> taobao_settlement_ns_s: 年费计算(StdSyncRatingSettleProcess#doRating)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 记录账单
taobao_settlement_ns_s -> taobao_fund_manage_ns_s: 年费代扣
taobao_fund_manage_ns_s -> ipay: 年费代扣请求(商家余额户转平台账户)
ipay -> taobao_fund_manage_ns_s: 结果返回
taobao_fund_manage_ns_s -> taobao_settlement_ns_s: 结果返回
taobao_settlement_ns_s -> taobao_merchant_onboarding_ns_s: 结果返回
end
alt 年费账单查询
商家 -> taobao_merchant_onboarding_ns_s: 年费缴纳结果查询
taobao_merchant_onboarding_ns_s -> taobao_settlement_ns_s: 年费账单查询(StandardSettlementQueryService#queryFcBillByConditions)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 从db查询fcbill表数据
taobao_settlement_ns_s -> taobao_merchant_onboarding_ns_s: 结果返回
taobao_merchant_onboarding_ns_s -> 商家: 结果返回
end
@enduml
@startuml
autonumber
participant "ovs-sellercenter" as taobao_merchant_onboarding_ns_s
participant "taobao-fund-manage-ns-s" as taobao_fund_manage_ns_s
participant "ipay" as ipay
taobao_merchant_onboarding_ns_s -> taobao_merchant_onboarding_ns_s: 监听放款消息 && 定时任务
taobao_merchant_onboarding_ns_s -> taobao_merchant_onboarding_ns_s: 查询小二后台设置的保证金金额
taobao_merchant_onboarding_ns_s -> taobao_merchant_onboarding_ns_s: 查询保证金余额确认冻结还是解冻?
alt 保证金余额查询
taobao_merchant_onboarding_ns_s -> taobao_fund_manage_ns_s: 保证金余额查询(FundManageUserAssetQueryFacade#userAssertQuery)
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 参数校验
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 组装查询参数
taobao_fund_manage_ns_s -> ipay: 资产查询
ipay -> taobao_fund_manage_ns_s: 余额返回
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 结果组装
taobao_fund_manage_ns_s -> taobao_merchant_onboarding_ns_s: 结果返回
end
alt 保证金冻结
taobao_merchant_onboarding_ns_s -> taobao_merchant_onboarding_ns_s: 保证金不足
taobao_merchant_onboarding_ns_s -> taobao_fund_manage_ns_s: 保证金冻结(SettleFundManageFacadeServiceImpl#settleFundTransfer)
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 幂等校验
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 生成冻结单据
taobao_fund_manage_ns_s -> ipay: 保证金冻结(从商家余额户冻结)
ipay -> taobao_fund_manage_ns_s: 冻结结果返回
taobao_fund_manage_ns_s -> taobao_merchant_onboarding_ns_s: 冻结结果返回
end
alt 保证金解冻
taobao_merchant_onboarding_ns_s -> taobao_merchant_onboarding_ns_s: 保证金过多
taobao_merchant_onboarding_ns_s -> taobao_fund_manage_ns_s: 保证金解冻(SettleFundManageFacadeServiceImpl#settleFundTransfer)
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 幂等校验
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 生成解冻单据
taobao_fund_manage_ns_s -> ipay: 保证金解冻(解冻到商家余额户)
ipay -> taobao_fund_manage_ns_s: 解冻结果返回
taobao_fund_manage_ns_s -> taobao_merchant_onboarding_ns_s: 解冻结果返回
end
@enduml
@startuml
autonumber
participant "taobao-trade-ns-s" as 交易
participant "taobao-settlement-ns-s" as taobao_settlement_ns_s
participant "taobao-fund-manage-ns-s" as taobao_fund_manage_ns_s
participant "taobao-payment-ns-s" as taobao_payment_ns_s
participant "ipay" as ipay
alt 收单
交易 --> taobao_settlement_ns_s: 支付成功通知
taobao_settlement_ns_s -> taobao_settlement_ns_s: 执行收单接口(TradeSettlementAcquireFacadeService#tradeOrderAcquire)
taobao_settlement_ns_s -> 交易: 组装交易单
taobao_settlement_ns_s -> taobao_payment_ns_s: 组装支付单
taobao_settlement_ns_s -> taobao_settlement_ns_s: 金额校验(支付和交易金额是否一致,包含金本位金额)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 计算分摊
taobao_settlement_ns_s -> taobao_settlement_ns_s: 组装收单视图
taobao_settlement_ns_s -> taobao_settlement_ns_s: 收单创建资金单,资金池
taobao_settlement_ns_s -> taobao_settlement_ns_s: 创建资金归集超时任务
end
alt 资金归集
taobao_settlement_ns_s -> taobao_settlement_ns_s: 定时任务,执行资金归集接口(TradeSettlementLoanFacadeServiceImpl#fundPretreatment)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 幂等检查
taobao_settlement_ns_s -> taobao_settlement_ns_s: 判断是否做资金归集
taobao_settlement_ns_s -> taobao_settlement_ns_s: 创建资金归集执行单
taobao_settlement_ns_s --> taobao_fund_manage_ns_s: 发送通知给资金管理
taobao_settlement_ns_s -> taobao_settlement_ns_s: 更新执行单状态为成功
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 执行资金管理转账服务接口(SettleFundManageFacade#settleFundTransfer)
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 参数校验
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 幂等校验
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 初始化资金归集转账单
taobao_fund_manage_ns_s -> ipay: 资金归集(担保户转待结算户)
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 更新资金归集转账单状态
end
alt 放款
交易 --> taobao_settlement_ns_s: 确认收货消息
taobao_settlement_ns_s --> taobao_settlement_ns_s: 执行放款接口(TradeSettlementLoanFacadeServiceImpl#confirmGoodsLoan)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 幂等检查
taobao_settlement_ns_s -> taobao_settlement_ns_s: 查询资金池
taobao_settlement_ns_s -> taobao_settlement_ns_s: 业务检查(资金归集、订单状态等检查)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 创建放款执行单,扣减资金池
taobao_settlement_ns_s -> taobao_settlement_ns_s: 处理放款因子
taobao_settlement_ns_s -> taobao_settlement_ns_s: 资金分成计算
taobao_settlement_ns_s -> taobao_settlement_ns_s: 销账
taobao_settlement_ns_s --> taobao_fund_manage_ns_s: 发送消息
taobao_settlement_ns_s -> taobao_settlement_ns_s: 更新执行单状态为成功
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 执行资金管理转账服务接口(SettleFundManageFacade#settleFundTransfer)
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 幂等校验
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 初始化放款单
taobao_fund_manage_ns_s -> ipay: 放款(货款金额:待结算户转商家支付宝余额,运费&佣金:待结算户转平台户)
taobao_fund_manage_ns_s -> taobao_fund_manage_ns_s: 更新放款单状态
end
@enduml
@startuml
autonumber
participant "taobao-reverse-ns-s" as 逆向
participant "taobao-settlement-ns-s" as taobao_settlement_ns_s
participant "taobao-fund-manage-ns-s" as taobao_fund_manage_ns_s
participant "taobao-payment-ns-s" as taobao_payment_ns_s
participant "ipay" as ipay
逆向 -> taobao_settlement_ns_s: 发起退款(TradeSettlementRefundFacadeServiceImpl#createRefund)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 幂等检查
taobao_settlement_ns_s -> taobao_payment_ns_s: 业务检查(支付状态检查、主订单退款检查)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 校验退款金额限制
taobao_settlement_ns_s -> taobao_settlement_ns_s: 退款金额计算
taobao_settlement_ns_s -> taobao_settlement_ns_s: 创建退款执行单 更新资金池
taobao_settlement_ns_s --> taobao_fund_manage_ns_s: 发起退款准备(SettleFundManageFacade#settleFundTransfer)
taobao_fund_manage_ns_s --> taobao_fund_manage_ns_s: 幂等检查
taobao_fund_manage_ns_s --> taobao_fund_manage_ns_s: 初始化退款款转账单
taobao_fund_manage_ns_s --> taobao_fund_manage_ns_s: 业务检查
taobao_fund_manage_ns_s --> taobao_settlement_ns_s: 退款准备完成
taobao_settlement_ns_s --> taobao_payment_ns_s: 发送退款消息
taobao_payment_ns_s -> ipay: 调用ipay退款(待结算户转担保护)
@enduml
@startuml
autonumber
participant "taobao-trade-ns-s" as 交易
participant "服务中台" as 服务中台
participant "众安保险" as 众安保险
participant "taobao-settlement-ns-s" as taobao_settlement_ns_s
participant "taobao-fund-manage-ns-s" as taobao_fund_manage_ns_s
participant "ipay" as ipay
交易 --> 交易: 交易下单,打保险服务标(七天无理由)
交易 --> 服务中台: 支付成功消息
服务中台 --> 服务中台: 创建服务单
服务中台 --> taobao_settlement_ns_s: 发起结算请求(SingleBillingSettlementAcquireService#singleAcquire)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 请求参数校验
taobao_settlement_ns_s -> taobao_settlement_ns_s: 构建汇金参数;
taobao_settlement_ns_s -> taobao_settlement_ns_s: 组装因子
taobao_settlement_ns_s -> taobao_fund_manage_ns_s: 调用ipay汇率接口
taobao_fund_manage_ns_s -> ipay: 查询汇率
taobao_settlement_ns_s -> 交易: 查询交易获取订单的实付金额;
taobao_settlement_ns_s -> taobao_settlement_ns_s: 组装账号(卖家账号->平台账户)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 调用汇金接口(IBizGwService.submit);
taobao_settlement_ns_s -> taobao_settlement_ns_s: 将金额作为保额,同步试算出保费HKD(1%)
taobao_settlement_ns_s -> 服务中台: 同步受理成功,将计费结果返回
服务中台 -> 众安保险: 发起投保
众安保险 -> 众安保险: 投保成功
taobao_settlement_ns_s -> taobao_settlement_ns_s: 收单执行 - 异步计费→记账→销账(stdFcRatingSettleProcess.dealMsg);
taobao_settlement_ns_s -> taobao_fund_manage_ns_s: 保费代扣
taobao_fund_manage_ns_s -> ipay: 执行代扣
ipay -> taobao_fund_manage_ns_s: 代扣成功
taobao_settlement_ns_s --> 服务中台: 异步结果通知
服务中台 -> 服务中台: 状态更新
@enduml
@startuml
autonumber
participant "taobao-trade-ns-s" as 交易
participant "taobao-reverse-ns-s" as 逆向
participant "服务中台" as 服务中台
participant "众安保险" as 众安保险
participant "taobao-settlement-ns-s" as taobao_settlement_ns_s
participant "taobao-fund-manage-ns-s" as taobao_fund_manage_ns_s
participant "ipay" as ipay
逆向 -> 逆向: 发起退款
逆向 -> 服务中台: 逆向单打服务标(七天无理由)
服务中台 -> 服务中台: 检验并创建服务单
服务中台 -> 众安保险: 提交申请
众安保险 -> 众安保险: 受理理赔
众安保险 -> 服务中台: 更新状态
服务中台 -> 逆向: 更新状态
逆向 -> 服务中台: 填写运单号
服务中台 -> 众安保险: 运单号
众安保险 -> 众安保险: 收货确认
众安保险 -> 众安保险: 理赔打款
众安保险 -> 服务中台: 更新状态
服务中台 -> taobao_settlement_ns_s: 保险理赔(SingleBillingSettlementAcquireService#singleAcquire)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 请求参数校验
taobao_settlement_ns_s -> taobao_settlement_ns_s: 校验投保订单是否成功?
taobao_settlement_ns_s -> taobao_settlement_ns_s: 构建汇金参数;
taobao_settlement_ns_s -> taobao_settlement_ns_s: 组装因子
taobao_settlement_ns_s -> taobao_fund_manage_ns_s: 调用ipay汇率接口
taobao_fund_manage_ns_s -> ipay: 查询汇率
taobao_settlement_ns_s -> 交易: 查询交易获取订单的实付金额;
taobao_settlement_ns_s -> taobao_settlement_ns_s: 组装账号(平台账户->卖家账户)
taobao_settlement_ns_s -> taobao_settlement_ns_s: 调用汇金接口(IBizGwService.submit);
taobao_settlement_ns_s -> taobao_settlement_ns_s: 收单执行 - 根据保额和赔付比例确定赔付金额
taobao_settlement_ns_s -> taobao_settlement_ns_s: 收单执行 - 异步计费→记账→销账(stdFcRatingSettleProcess.dealMsg);
taobao_settlement_ns_s -> taobao_fund_manage_ns_s: 发起代付
taobao_fund_manage_ns_s -> ipay: 执行代付
ipay -> taobao_fund_manage_ns_s: 代付完成
taobao_fund_manage_ns_s -> taobao_settlement_ns_s: 代付完成
taobao_settlement_ns_s --> 服务中台: 发送销账消息,更新状态
服务中台 -> 逆向: 更新状态
@enduml