_getMarketMysql(), 't_vip_user', array( 'account_address' => strtolower($accountAddr), ) ); $details = array( 'lv' => 0, 'cur' => 0, 'target' => 0, ); if ($row) { $lv = $row['vip_lv']; $cfg = mt\StakingVip::find($lv); $details['lv'] = $lv; if ($cfg) { $details['target'] = $cfg['thisPoint']; $balance = phpcommon\bnInit($row['escec_balance']); $staking = phpcommon\bnInit($row['escec_stacking']); $convert = phpcommon\bnInit($row['escec_convert']); $diff = time() - $row["last_convert_time"]; if ($diff < 0) { $diff = 0; } $eclapse = phpcommon\bnInit($diff); $depositExec = phpcommon\bnDiv(phpcommon\bnMul($convert, $eclapse), phpcommon\bnInit(365 * 24 * 3600)); if (phpcommon\bnCmp($depositExec, $convert) < 0) { $depositExec = phpcommon\bnSub($convert, $depositExec); } else { $depositExec = phpcommon\bnInit(0); } $curExec = phpcommon\bnAdd(phpcommon\bnAdd($staking, $balance), $depositExec); $convercurExec = intval(phpcommon\bnDiv($curExec, phpcommon\bnInit(1000 * 1000 * 1000 * 1000 * 1000 * 1000))); $nextlvcfg = mt\StakingVip::find($lv + 1); $upgraderequire = $cfg['require']; if ($nextlvcfg && $convercurExec >= $upgraderequire) { $details['cur'] = intval($cfg['thisPoint'] * ($convercurExec - $upgraderequire) / ($nextlvcfg['require'] - $upgraderequire)); } else if (!$nextlvcfg) { $details['cur'] = $details['target']; } } } else { $cfg = mt\StakingVip::find(0); if ($cfg) { $details['target'] = $cfg['thisPoint']; } } return $details; } }