Commit 2af4d47a authored by shajiaiming's avatar shajiaiming

后台配置

parent 04404eee
......@@ -6,27 +6,84 @@ use api\base\BaseController;
use common\models\psources\CoinAirDropTrade;
use common\models\psources\CoinSupportedSymbol;
use common\service\chain33\Chain33Service;
use linslin\yii2\curl\Curl;
use Yii;
use yii\helpers\ArrayHelper;
class SupportedSymbolController extends BaseController
{
public function actionSearch()
public function actionIndex()
{
$platform_withhold_id = Yii::$app->request->get('id', '');
if (empty($platform_withhold_id)) {
$platform_id = Yii::$app->request->get('platform_id', '');
if (empty($platform_id)) {
$msg = '参数不能为空';
$code = -1;
$data = null;
goto doEnd;
}
$coinSupportedSymbol = CoinSupportedSymbol::find()->select('symbol')->where(['platform_withhold_id' => $platform_withhold_id])->asArray()->all();
$data = array_column($coinSupportedSymbol, 'symbol');
$parentSupportedSymbol = CoinSupportedSymbol::find()->where(['platform_id' => $platform_id])->groupBy('currency')->all();
$market = [];
foreach ($parentSupportedSymbol as $val) {
$coin_name[] = $val->coinInfo->name;
}
$curl = new Curl();
$data = [
"names" => $coin_name
];
$params = json_encode($data);
$curl->setHeader('Content-Type', 'application/json');
$curl->setRawPostData($params);
$res = $curl->post(\Yii::$app->params['biqianbao'].'/interface/coin/coin-index', true);
$res = json_decode($res, true);
$res = array_column($res['data'],NULL,'id');;
foreach ($parentSupportedSymbol as &$val) {
$temp = [];
$temp['id'] = (int)$val->currency;
$temp['name'] = $val->coinInfo->name;
$temp['icon'] = $val->coinInfo->icon;
$temp['isToken'] = (1 == $val->coinInfo->treaty) ? true : false;
$temp['isParacross'] = ('BTY' == strtoupper($val->coinInfo->platform)) ? false : true;
$temp['url'] = 'http://www.huifen.com';
$temp['platfrom'] = $val->coinInfo->platform;
$temp['rmb'] = isset($res[$val->currency]['rmb']) ? $res[$val->currency]['rmb'] : 0.00;
$temp['usd'] = isset($res[$val->currency]['usd']) ? $res[$val->currency]['usd'] : 0.00;
array_push($market, $temp);
$coin_name[] = $val->coinInfo->name;
}
foreach ($market as &$val) {
$childSupportedSymbol = CoinSupportedSymbol::find()->where(['platform_id' => $platform_id, 'currency' => $val['id']])->all();
$tokens = [];
foreach ($childSupportedSymbol as $child) {
$curl = new Curl();
$data = [
"names" => [$child->baseCurrencyInfo->name]
];
$params = json_encode($data);
$curl->setHeader('Content-Type', 'application/json');
$curl->setRawPostData($params);
$res = $curl->post(\Yii::$app->params['biqianbao'].'/interface/coin/coin-index', true);
$res = json_decode($res, true);
$temp = [];
$temp['id'] = (int)$child->base_currency;
$temp['name'] = $child->baseCurrencyInfo->name;
$temp['icon'] = $child->baseCurrencyInfo->icon;
$temp['isToken'] = (1 == $child->baseCurrencyInfo->treaty) ? true : false;
$temp['isParacross'] = ('BTY' == strtoupper($child->baseCurrencyInfo->platform)) ? false : true;
$temp['url'] = 'http://www.huifen.com';
$temp['platfrom'] = $child->baseCurrencyInfo->platform;
$temp['rmb'] = isset($res['data'][0]['rmb']) ? $res['data'][0]['rmb'] : 0.00;
$temp['usd'] = isset($res['data'][0]['usd']) ? $res['data'][0]['usd'] : 0.00;
array_push($tokens, $temp);
}
$val['tokens'] = $tokens;
}
$code = 0;
$msg = 'success';
doEnd :
return ['code' => $code, 'msg' => $msg, 'data' => $data];
return ['code' => $code, 'msg' => $msg, 'data' => $market];
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@
namespace backend\controllers;
use backend\models\coin\CoinSupportedSymbolForm;
use common\models\psources\Coin;
use common\models\psources\CoinSupportedSymbol;
use Yii;
......@@ -23,7 +24,11 @@ class CoinSupportedSymbolController extends BaseController
$where[] = ['platform_id' => $id];
}
$data = CoinSupportedSymbol::getList($page, $limit, $where);
$data['code'] = 0;
foreach ($data['data'] as &$val) {
$val->currency = $val->coinInfo->name;
$val->base_currency = $val->baseCurrencyInfo->name;
}
Yii::$app->response->format = 'json';
return $data;
}
......@@ -33,32 +38,25 @@ class CoinSupportedSymbolController extends BaseController
public function actionAdd()
{
$this->layout = false;
$model = new CoinSupportedSymbolForm();
$model->scenario = 'add';
if (Yii::$app->request->isPost) {
Yii::$app->response->format = 'json';
$data = Yii::$app->request->post();
if ($model->load($data, '') && $model->validate()) {
$currency = Coin::find()->select('id')->where(['name' => $data['currency']])->asArray()->one();
$base_currency = Coin::find()->select('id')->where(['name' => $data['base_currency']])->asArray()->one();
$coinSupportedSymbol = new CoinSupportedSymbol();
$coinSupportedSymbol->platform_id = $data['platform_id'];
$coinSupportedSymbol->currency = $data['currency'];
$coinSupportedSymbol->base_currency = $data['base_currency'];
$coinSupportedSymbol->currency = $currency['id'];
$coinSupportedSymbol->base_currency = $base_currency['id'];
$result = $coinSupportedSymbol->save();
if ($result === true) {
$this->success('添加成功', '/admin/coin-supported-symbol/list?id=' . $data['platform_id']);
}
}
//表单验证失败
$errors = $model->errors;
if ($errors) {
foreach ($errors as $key => $item) {
$errors = $item[0];
break;
if ($result != true) {
return ['code' => -1, 'msg' => current($model->firstErrors)];
}
} elseif (isset($result) && $result['code'] != 0) {
$errors = $result['message'];
}
$this->error($errors, Yii::$app->request->getReferrer());
return ['code' => 0, 'msg' => 'succeed'];
}
$platform_id = Yii::$app->request->get('platform_id');
return $this->render('add', ['model' => $model, 'platform_id' => $platform_id]);
......
......@@ -2,13 +2,15 @@
namespace backend\models\coin;
use common\models\psources\Coin;
use yii\base\Model;
class CoinSupportedSymbolForm extends Model
{
public $id;
public $platform_withhold_id;
public $symbol;
public $platform_id;
public $currency;
public $base_currency;
public function formName()
{
......@@ -18,34 +20,26 @@ class CoinSupportedSymbolForm extends Model
public function rules()
{
return [
[['platform_withhold_id', 'symbol'], 'required', 'on' => 'add'],
[['id', 'platform_withhold_id', 'symbol'], 'required', 'on' => 'update'],
[['platform_id', 'currency', 'base_currency'], 'required', 'on' => 'add'],
[['id', 'platform_id', 'currency', 'base_currency'], 'required', 'on' => 'update'],
[['currency', 'base_currency'], 'isExist']
];
}
public function attributeLabels()
public function scenarios()
{
return [
'id' => 'ID',
'platform_withhold_id' => '对应链',
'symbol' => '货币对',
'add' => ['platform_id', 'currency', 'base_currency'],
'update' => ['id', 'platform_id', 'currency', 'base_currency'],
];
}
public function scenarios()
public function isExist($attribute, $params)
{
return [
'add' => [
'platform_withhold_id',
'symbol'
],
'update' => [
'id',
'platform_withhold_id',
'symbol'
],
];
$coin_model = Coin::find()->where(['name' => $this->currency])->one();
if (false == $coin_model) {
$this->addError($attribute, '币种不存在');
return false;
}
}
}
\ No newline at end of file
......@@ -3,8 +3,12 @@
<form id="addData">
<input name="_csrf" type="hidden" value="<?= Yii::$app->request->getCsrfToken() ?>">
<div class="input-group my-group">
<span class="input-group-addon">币种名称</span>
<input name="coin_name" type="text" class="form-control" lay-verify="required">
<span class="input-group-addon">交易货币</span>
<input name="currency" type="text" class="form-control" lay-verify="required">
</div>
<div class="input-group my-group">
<span class="input-group-addon">基础货币</span>
<input name="base_currency" type="text" class="form-control" lay-verify="required">
</div>
<input class="layui-input" name="platform_id" type="hidden" value="<?= $platform_id ?>"
lay-verify="required">
......
......@@ -14,8 +14,24 @@ var tableIns = table.render({
loading: true,
cols: [[
{field: 'id', title: 'ID'},
{field: 'currency', title: '交易货币'},
{field: 'base_currency', title: '基础货币'},
{
field: 'currency',
title: '交易货币',
//templet: function (data) {
//var name = JSON.parse(data.name);
//console.log(typeof (data.name), name.zh);
//return name.zh
//}
},
{
field: 'base_currency',
title: '基础货币',
//templet: function (data) {
//var name = JSON.parse(data.name);
//console.log(typeof (data.name), name.zh);
//return name.zh
//}
},
{field: 'create_time', title: '创建时间'},
{field: 'id', title: '操作', templet: '#operationTpl'}
]],
......@@ -58,10 +74,10 @@ $('#add').click(function () {
btn1: function () {
$.post('/admin/coin-supported-symbol/add', $("#addData").serialize(), function (rev) {
layer.msg(rev.msg);
if (rev.code == 0) {
//if (rev.code == 0) {
layer.close(index);
table.reload("table1", {});
}
//}
});
}
});
......@@ -69,4 +85,5 @@ $('#add').click(function () {
});
return false;
});
\ No newline at end of file
......@@ -16,9 +16,9 @@ class CoinSupportedSymbol extends BaseActiveRecord
$query = $query->andWhere($item);
}
$count = $query->count();
$data = $query->offset(($page - 1) * 10)->limit($limit)->asArray()->all();
$data = $query->offset(($page - 1) * 10)->limit($limit)->all();
return ['count' => $count, 'data' => $data];
return ['count' => $count, 'data' => $data, 'code' => 0];
}
public function addOne($params)
......@@ -36,4 +36,20 @@ class CoinSupportedSymbol extends BaseActiveRecord
return ['code' => $exception->getCode(), 'message' => $exception->getMessage()];
}
}
// public function attributes()
// {
// return array_merge(parent::attributes(), ['code']);
// }
public function getCoinInfo()
{
return $this->hasOne(Coin::class, ['id' => 'currency']);
}
public function getBaseCurrencyInfo()
{
return $this->hasOne(Coin::class, ['id' => 'base_currency']);
}
}
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