_getSelfMysql(), // 't_hash_rate', // array( // 'account_id' => myself()->_getAccountId(), // 'task_id' => $taskId, // 'period' => $period, // ) // ); $row = myself()->_getSelfMysql()->execQueryOne( 'SELECT * FROM t_hash_rate WHERE account_id=:account AND period=:period AND task_id=:task_id ORDER BY idx DESC LIMIT 1', array( ':account' => myself()->_getAccountId(), ':period' => $period, ':task_id' => $taskId, ) ); if (!$row){ $row = array(); } return $row; } public static function getCount($period){ $count = 0; $rows = SqlHelper::ormSelect( myself()->_getSelfMysql(), 't_hash_rate', array( 'account_id' => myself()->_getAccountId(), 'period' => $period, ) ); foreach ($rows as $row){ $hashMeta = AchievementsPower::find($row['task_id']); if ($hashMeta['task_type'] != AchievementsPower::TYPE5){ $count += 1; } } return $count; } public static function add($taskId,$period){ SqlHelper::insert( myself()->_getSelfMysql(), 't_hash_rate', array( 'account_id' => myself()->_getAccountId(), 'period' => $period, 'task_id' => $taskId, 'createtime' => myself()->_getNowTime(), 'modifytime' => myself()->_getNowTime() ) ); } public static function rewardAdd($period,$reward){ SqlHelper::upsert( myself()->_getSelfMysql(), 't_hash_rate_reward', array( 'account_id' => myself()->_getAccountId(), 'period' => $period, ), array( 'reward' => function () use($reward) { return "reward + ${reward}"; }, 'modifytime' => myself()->_getNowTime() ), array( 'account_id' => myself()->_getAccountId(), 'period' => $period, 'reward' => $reward, 'createtime' => myself()->_getNowTime(), 'modifytime' => myself()->_getNowTime() ) ); } public static function getMyHashRate($period){ $row = SqlHelper::ormSelectOne( myself()->_getSelfMysql(), 't_hash_rate_reward', array( 'account_id' => myself()->_getAccountId(), 'period' => $period, ) ); $myHashRate = 0; if ($row){ $myHashRate = $row['reward']; } return $myHashRate; } public static function getMyCurrentHashRate(){ $currentPeriod = myself()->_callMtStatic('AchievementsCycle', 'getCurrentPeriod'); if (empty($currentPeriod)) { return 0; } $row = SqlHelper::ormSelectOne( myself()->_getSelfMysql(), 't_hash_rate_reward', array( 'account_id' => myself()->_getAccountId(), 'period' => $currentPeriod['id'], ) ); $myHashRate = 0; if ($row){ $myHashRate = $row['reward']; } return $myHashRate; } public static function decMyCurrentHashRate($val){ $val = intval($val); $currentPeriod = myself()->_callMtStatic('AchievementsCycle', 'getCurrentPeriod'); if ($currentPeriod) { SqlHelper::update( myself()->_getSelfMysql(), 't_hash_rate_reward', array( 'account_id' => myself()->_getAccountId(), 'period' => $currentPeriod['id'], ), array( 'reward' => function () use($val) { return "GREATEST(0, reward - ${val})"; }, ) ); } } public static function getTotalByAccount($accountId,$period){ $row = SqlHelper::ormSelectOne( myself()->_getSelfMysql(), 't_hash_rate_reward', array( 'account_id' => $accountId, 'period' => $period, ) ); $totalHashRate = 0; if ($row){ $totalHashRate = $row['reward']; } return $totalHashRate; } }