<?php /** * Created by PhpStorm. * User: rlgyzhcn * Date: 18-8-7 * Time: 上午11:30 */ namespace common\service\exchange; use linslin\yii2\curl\Curl; class S extends Exchange implements ExchangeInterface { protected $supported_symbol = 'supported_symbol_s'; protected $quotation_prefix = 'quotation_s_'; protected $base_url = 'https://exapi.s.top/api/v1/market/detail?symbol=becc_st'; public function symbolExists($tag = 'BECC', $aim = "ST") { $supported = $this->redis->smembers($this->supported_symbol); if (is_array($supported) && in_array($this->formatSymbol($tag, $aim), $supported)) { return true; } return false; } /** * 转化交易对为请求变量 * * @param string $tag * @param string $aim * @return mixed */ public function formatSymbol($tag = 'BECC', $aim = 'ST') { return strtoupper($tag .'_'. $aim); } /** * 保存支持的交易对到redis数据库,使用crontab定时更新 * * @return mixed|void */ public function setSupportedSymbol() { $this->redis->sadd($this->supported_symbol, 'BTYUSDT'); } /** * 更新交易对行情保存到redis,使用crontab定时更新 * * @return mixed|void */ public function setQuotation() { $curl = new Curl(); $content = $curl->get($this->base_url, false); if (is_array($content) && isset($content['data']) && 200 === $content['code']) { $data = $content['data']; $key = $this->quotation_prefix . 'BECC_ST'; $this->redis->hmset($key, 'low', $data['low'], 'high', $data['high'], 'last', $data['close']); $this->redis->sadd($this->supported_symbol, 'BECC_ST'); } } }