コード例 #1
0
 public function editPostView(PoolModel $pool)
 {
     $errors = $pool->validate();
     if ($errors !== TRUE) {
         $_SESSION['tempdata']['errors'] = array_merge((array) $_SESSION['tempdata']['errors'], $errors);
         return new AdminEditPoolView(array('pool' => $pool));
     }
     if (!$pool->save()) {
         $_SESSION['tempdata']['errors'] = 'Cannot save pool.  Another pool with the same name may already exist.';
         return new AdminEditPoolView(array('pool' => $pool));
     }
     return new RedirectView('/admin/pool.php');
 }
コード例 #2
0
ファイル: pool.php プロジェクト: raetha/Bitcoin-mining-proxy
    public function statsGetView(PoolModel $pool)
    {
        if (!$pool->refresh()) {
            $_SESSION['tempdata']['errors'][] = 'Pool not found.';
            return new RedirectView('/admin/pool.php');
        }

        $viewdata = array('pool' => $pool);

        $pdo = db_connect();

        $viewdata['PoolStatsByHour'] = db_query($pdo, '
            SELECT CONCAT(HOUR(@utc_timestamp:=DATE_SUB(@utc_timestamp,INTERVAL 1 HOUR)),":00") as hour,
                   (SELECT count(*)
                      FROM work_data
                     WHERE HOUR(time_requested) = HOUR(@utc_timestamp)
                       AND DATE(time_requested) = DATE(@utc_timestamp)
                       AND pool_id = :pool_id) as getworks,
                   (SELECT count(result)
                      FROM submitted_work
                     WHERE HOUR(time) = HOUR(@utc_timestamp)
                       AND DATE(time) = DATE(@utc_timestamp)
                       AND result = 1
                       AND pool_id = :pool_id) as shares,
                   (SELECT count(result)
                      FROM submitted_work
                     WHERE HOUR(time) = HOUR(@utc_timestamp)
                       AND DATE(time) = DATE(@utc_timestamp)
                       AND result = 0
                       AND pool_id = :pool_id) as rejected,
                   (SELECT (shares + rejected) * 4294967296 / 3600 / 1000000) as mhash

              FROM submitted_work, (SELECT @utc_timestamp:=UTC_TIMESTAMP()) t

             WHERE @utc_timestamp > DATE_SUB(UTC_TIMESTAMP(), INTERVAL 24 HOUR)

             ORDER BY @utc_timestamp;
        ', array(
            ':pool_id' => $pool->id
        ));

        $viewdata['PoolStatsByDate'] = db_query($pdo, '
            SELECT DATE(@utc_timestamp:=DATE_SUB(@utc_timestamp,INTERVAL 1 DAY)) as date,
                   (SELECT count(*)
                      FROM work_data
                     WHERE DATE(time_requested) = DATE(@utc_timestamp)
                       AND pool_id = :pool_id) as getworks,
                   (SELECT count(result)
                      FROM submitted_work
                     WHERE DATE(time) = DATE(@utc_timestamp)
                       AND result = 1
                       AND pool_id = :pool_id) as shares,
                   (SELECT count(result)
                      FROM submitted_work
                     WHERE DATE(time) = DATE(@utc_timestamp)
                       AND result = 0
                       AND pool_id = :pool_id) as rejected,
                    (SELECT (shares + rejected) * 4294967296 / 86400 / 1000000) as mhash

              FROM submitted_work, (SELECT @utc_timestamp:=DATE_ADD(UTC_TIMESTAMP(),INTERVAL 1 DAY)) t

             WHERE @utc_timestamp > DATE_SUB(UTC_TIMESTAMP(), INTERVAL 1 MONTH)

             ORDER BY @utc_timestamp;
        ', array(
            ':pool_id' => $pool->id
        ));

        return new AdminPoolStatsView($viewdata);
    }