Devean 布洛克

发布 January 1, 0001  •  1 分钟  • 91 字
@startuml
start

:用户登录系统;
:发起提现请求;

:参数验证;
if (参数验证通过?) then (yes)
  :防越权token验证;
  if (token验证通过?) then (yes)
    :支付密码验证;
    if (支付密码验证通过?) then (yes)
      :检查单笔限额;
      if (在单笔限额内?) then (yes)
        :检查累计限额;
        if (在累计限额内?) then (yes)
          :风控检查;
          if (风控通过?) then (yes)
            :计算手续费;
            :保存订单;
            :更新提现订单状态为审核中;
            :冻结用户资金账户;
            :冻结系统资金账户;
            :提现资金清算订单落库;
            :内外部凭证落库;
            :检查提现处理限额;
            if (提现金额大于处理限额?) then (yes)
              :进入人工审核;
              :通知用户进入人工审核;
            else (no)
              :处理提现逻辑;
              if (预冻结成功?) then (yes)
                :调用链上账户提现转账;
                :更新订单状态为处理中;
                :通知用户提现成功;
              else (no)
                :解冻用户资金账户;
                :解冻系统资金账户;
                :通知用户预冻结失败;
              endif
            endif
          else (no)
            :通知用户风控失败;
          endif
        else (no)
          :通知用户超过累计限额;
        endif
      else (no)
        :通知用户超过单笔限额;
      endif
    else (no)
      :通知用户支付密码错误;
    endif
  else (no)
    :通知用户token验证失败;
  endif
else (no)
  :通知用户参数错误;
endif

stop
@enduml