<?php
/**
 * Created by PhpStorm.
 * User: rlgyzhcn
 * Date: 18-6-26
 * Time: 下午7:21
 */

namespace common\service\exchange;

use Yii;
use linslin\yii2\curl\Curl;

class Bitnasdaq extends Exchange implements ExchangeInterface
{
    protected $supported_symbol = 'supported_symbol_bitnasdaq';
    protected $quotation_prefix = 'quotation_bitnasdaq_';
    protected $base_url = 'https://www.bitnasdaq.com/';

    public function formatSymbol($tag = 'BTC', $aim = 'USDT')
    {
        return strtolower(trim($tag) . trim($aim));
    }

    public function setSupportedSymbol()
    {
        $curl = new Curl();
        $api = $this->base_url . '/api/v1/ticker/24hr';
        $res = $curl->get($api, false);//json
        if (is_array($res)) {
            foreach ($res as $item) {
                $this->redis->sadd($this->supported_symbol, strtolower($item['symbol']));
            }
        }
    }

    public function setQuotation()
    {
        $curl = new Curl();
        $api = $this->base_url . '/app/tradeMarket/coinPrice';
        $res = $curl->get($api, false);
        if (is_array($res) && isset($res['obj'])) {
            $data = $res['obj'];
            foreach ($data as $key => $item) {
                $low = isset($item['minPrice']) ? $item['minPrice'] : 0;
                $high = isset($item['maxPrice']) ? $item['maxPrice'] : 0;
                $last = isset($item['currentExchangPrice']) ? $item['currentExchangPrice'] : 0;
                $open = isset($item['openPrice']) ? $item['openPrice'] : 0;
                $vol = isset($item['transactionSum']) ? $item['transactionSum'] : 0;
                $cache_key = strtolower($this->quotation_prefix . str_replace('_', '', $key));
                $this->redis->hmset($cache_key, 'low', $low, 'high', $high, 'last', $last, 'open', $open, 'vol', $vol);
                $this->redis->sadd($this->supported_symbol, strtoupper(str_replace('_', '', $key)));
            }
        }
    }

}