Commit 9a9a1dc7 authored by shajiaiming's avatar shajiaiming

计价货币

parent f693ddea
......@@ -19,12 +19,14 @@ class BaseController extends Controller
public $header_list = [];
public $lang;
public $currency_id;
public $platform_id;
private static $default_header_list = [];
public function init()
{
if ('cli' !== php_sapi_name()){
if ('cli' !== php_sapi_name()) {
$this->header_list = self::$default_header_list;
$this->fzmCrossHeader();
}
......@@ -33,9 +35,15 @@ class BaseController extends Controller
public function fzmCrossHeader()
{
$this->lang = \Yii::$app->request->headers->get('lang') ?? 'zh-CN';
if ('en' == strtolower($this->lang)){
if ('en' == strtolower($this->lang)) {
$this->lang = 'en-US';
}
if (\Yii::$app->request->headers->get('FZM-PLATFORM-ID')) {
$this->platform_id = \Yii::$app->request->headers->get('FZM-PLATFORM-ID');
}
if (\Yii::$app->request->headers->get('FZM-CURRENCY-ID')) {
$this->currency_id = \Yii::$app->request->headers->get('FZM-CURRENCY-ID');
}
}
public function beforeAction($action)
......@@ -75,7 +83,7 @@ class BaseController extends Controller
'errmsg' => $errmsg,
];
if($data !== null) {
if ($data !== null) {
$result['data'] = Yii::createObject('yii\rest\Serializer')->serialize($data);
}
......@@ -83,7 +91,7 @@ class BaseController extends Controller
$response->format = Response::FORMAT_JSON;
//jsonp数据格式
if(!is_null($callback)) {
if (!is_null($callback)) {
Yii::$app->getResponse()->format = Response::FORMAT_JSONP;
$result = [
'data' => $result,
......
......@@ -15,6 +15,7 @@ use common\business\Chain33Business;
use common\business\CoinBusiness;
use common\business\ExchangeBusiness;
use common\models\psources\Coin;
use common\models\psources\CoinCurrency;
use common\models\psources\CoinPlatformWithHold;
use common\models\psources\CoinRecommend;
use common\models\psources\MinerFee;
......@@ -243,6 +244,12 @@ class CoinController extends BaseController
foreach ($chains as $key => $value) {
$chain_quotation[$value] = ExchangeBusiness::getquatation($value);
}
$currency = CoinCurrency::find()->where(['pj_id' => $this->currency_id])->one();
if (false != $currency) {
$last = Yii::$app->redis_currency->hmget('quotation_boc_' . 'CNY_' . $currency->symbol, 'last');
}
foreach ($result['data'] as $key => &$value) {
if (!isset($value['nickname']) || empty($value['nickname'])) continue;
$nickname = json_decode($value['nickname'], true);
......@@ -252,6 +259,7 @@ class CoinController extends BaseController
$value['chain_quotation'] = $chain_quotation[$value['chain']] ?: null;
$value['chain_rmb'] = isset($value['chain_quotation']['rmb']) ? $value['chain_quotation']['rmb'] : 0;
$value['chain_usd'] = isset($value['chain_quotation']['usd']) ? $value['chain_quotation']['usd'] : 0;
$value['country_rate'] = (false == $currency) ? '' : (float)sprintf("%0.4f", $last[0] * $value['rmb']);
}
return $result;
}
......@@ -365,7 +373,7 @@ class CoinController extends BaseController
if (1 == $coin_info['treaty']) {
$platform_with_hold['exer'] = 'user.p.' . $platform . '.token';
if ('BTY' !== strtoupper($platform)) {
$platform_with_hold['tokensymbol'] = $platform.'.'.$coin_name;
$platform_with_hold['tokensymbol'] = $platform . '.' . $coin_name;
} else {
$platform_with_hold['tokensymbol'] = $coin_name;
}
......
......@@ -3,6 +3,8 @@
namespace api\controllers;
use common\components\Tools;
use common\models\psources\CoinCurrency;
use common\models\psources\CoinSupportedCurrency;
use Yii;
use yii\data\Pagination;
use linslin\yii2\curl\Curl;
......@@ -291,7 +293,7 @@ class TickerController extends BaseController
'btcusdt',
'ethusdt'
]
],[
], [
'exchange' => 'zhaobi',
'symbol' => [
'btyusdt'
......@@ -306,7 +308,7 @@ class TickerController extends BaseController
'btcusdt',
'ethusdt'
],
],[
], [
'exchange' => 'dag',
'symbol' => [
'dagusdt'
......@@ -322,7 +324,7 @@ class TickerController extends BaseController
'btcusdt',
'ethusdt'
],
],[
], [
'exchange' => 'bitnasdaq',
'symbol' => [
'bncusdt'
......@@ -344,4 +346,31 @@ class TickerController extends BaseController
return ['code' => $code, 'msg' => $msg, 'data' => $data];
}
public function actionCurrency()
{
$code = 0;
$data = null;
$platform_id = $this->platform_id;
if (false == $platform_id) {
$code = -1;
$msg = '请求参数错误!';
goto doEnd;
}
$currency = CoinSupportedCurrency::find()->where(['platform_id' => $platform_id])->all();
foreach ($currency as $val) {
$val->pj_id = $val->currency->pj_id;
$val->pj_name = $val->currency->pj_name;
$val->pj_symbol = $val->currency->pj_symbol;
unset($val->id);
unset($val->platform_id);
unset($val->currency_id);
}
$data = $currency;
$code = 0;
$msg = 'success';
doEnd :
return ['code' => $code, 'msg' => $msg, 'data' => $data];
}
}
\ No newline at end of file
......@@ -26,7 +26,7 @@ class CoinCurrency extends BaseActiveRecord
{
return [
[['pj_id', 'pj_name'], 'required'],
[['icon', 'lang'], 'safe'],
[['pj_symbol', 'lang'], 'safe'],
[['platform_id', 'currency_id'], 'integer'],
];
}
......@@ -42,8 +42,8 @@ class CoinCurrency extends BaseActiveRecord
public function scenarios()
{
$scenarios = [
self:: SCENARIOS_CREATE => ['pj_id', 'pj_name', 'icon', 'lang'],
self:: SCENARIOS_UPDATE => ['id', 'pj_id', 'pj_name', 'icon', 'lang'],
self:: SCENARIOS_CREATE => ['pj_id', 'pj_name', 'pj_symbol', 'lang'],
self:: SCENARIOS_UPDATE => ['id', 'pj_id', 'pj_name', 'pj_symbol', 'lang'],
];
return array_merge(parent:: scenarios(), $scenarios);
}
......
......@@ -48,6 +48,11 @@ class CoinSupportedCurrency extends BaseActiveRecord
return array_merge(parent:: scenarios(), $scenarios);
}
public function attributes()
{
return array_merge(parent::attributes(), ['pj_id', 'pj_name', 'pj_symbol']);
}
public function getCurrency()
{
return $this->hasOne(CoinCurrency::className(), ['id' => 'currency_id']);
......
......@@ -2,13 +2,12 @@
namespace console\controllers;
use common\business\Chain33Business;
use common\models\psources\CoinGameBet;
use common\service\chain33\Chain33Service;
use common\service\exchange\ExchangeBuilderFactory;
use common\service\exchange\ExchangeFactory;
use yii\console\Controller;
use Yii;
use linslin\yii2\curl\Curl;
use yii\console\Controller;
use voku\helper\HtmlDomParser;
use common\models\psources\CoinSupportedCurrency;
use common\service\exchange\ExchangeBuilderFactory;
class TickerController extends Controller
{
......@@ -22,7 +21,7 @@ class TickerController extends Controller
$ticker_builder->TickerSort();
});
}
echo date('Y-m-d H:i:s') .'排序更新成功' . PHP_EOL;
echo date('Y-m-d H:i:s') . '排序更新成功' . PHP_EOL;
return 0;
}
......@@ -30,7 +29,36 @@ class TickerController extends Controller
{
$ticker_builder = ExchangeBuilderFactory::create('Huobi');
$ticker_builder->hotTickerUpdate();
echo date('Y-m-d H:i:s') .'更新成功' . PHP_EOL;
echo date('Y-m-d H:i:s') . '更新成功' . PHP_EOL;
return 0;
}
public function actionCurrency()
{
$currency_model = CoinSupportedCurrency::find()->groupBy('currency_id')->all();
$curl = new Curl();
foreach ($currency_model as $val) {
go(function () use ($val, $curl) {
\Co::sleep(0.5);
$response = $curl->setPostParams([
'erectDate' => '',
'nothing' => '',
'pjname' => $val->currency->pj_id
])->post('http://srh.bankofchina.com/search/whpj/search.jsp');
$response = iconv('UTF-8', 'GBK//TRANSLIT', $response);
$html = HtmlDomParser::str_get_html($response);
$div = ($html->find('div.BOC_main'));
foreach ($div->find('td') as $key => $e) {
if ($key == 5) {
$key = 'quotation_boc_' . 'CNY_' . $val->currency->symbol;
$currency = rtrim(sprintf('%.6f', 1 / ($e->innertext / 100)), '0');
Yii::$app->redis_currency->hmset($key, 'low', $currency, 'high', $currency, 'last', $currency, 'open', $currency);
}
}
});
}
echo date('Y-m-d H:i:s') . '计价货币更新成功' . PHP_EOL;
return 0;
}
}
\ No newline at end of file
......@@ -2,14 +2,13 @@
namespace wallet\controllers;
use common\models\psources\CoinCurrency;
use common\models\psources\CoinSupportedCurrency;
use common\service\trusteeship\TrusteeShipService;
use Yii;
use common\models\Admin;
use yii\helpers\ArrayHelper;
use wallet\base\BaseController;
use common\models\psources\CoinPlatform;
use yii\helpers\ArrayHelper;
use common\models\psources\CoinCurrency;
use common\models\psources\CoinSupportedCurrency;
use common\service\trusteeship\TrusteeShipService;
class WalletController extends BaseController
{
......@@ -156,14 +155,4 @@ class WalletController extends BaseController
return ['code' => $code, 'msg' => $msg, 'data' => $data];
}
public function actionCurrencyUpdate()
{
$currency_model = CoinSupportedCurrency::find()->groupBy('currency_id')->all();
$pj_id = [];
foreach ($currency_model as $val) {
$pj_id[] = $val->currency->pj_id;
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment