platform_id; if (false == $platform_id) { $this->code = -1; $this->msg = '参数错误'; goto doEnd; } $type = Yii::$app->request->get('type', 1); $recommend_category = WalletRecommendCategory::find()->select('id, name') ->where(['wallet_type' => (int)$type, 'platform_id' => (int)$platform_id]) ->orderBy('sort')->limit(1)->asArray()->all(); if (empty($recommend_category)) { goto doEnd; } foreach ($recommend_category as &$category) { $name = json_decode($category['name'], true); $category['name'] = isset($name[$this->lang]) ? $name[$this->lang] : ''; $recommend_coin = WalletRecommendCoin::find()->where(['category_id' => $category['id']])->all(); $items = []; foreach ($recommend_coin as $coin) { $temp['icon'] = $coin->coin['icon']; $temp['name'] = $coin->coin['name']; $temp['platform'] = $coin->coin['platform']; $temp['chain'] = $coin->coin['chain']; $temp['treaty'] = $coin->coin['treaty']; $temp['exchange_id'] = $coin->coin['exchange_id']; $nickname = json_decode($coin->coin['nickname'], true); $temp['nickname'] = isset($nickname[$this->lang]) ? $nickname[$this->lang] : ''; $introduce = json_decode($coin->coin['introduce'], true); $temp['introduce'] = isset($introduce[$this->lang]) ? $introduce[$this->lang] : ''; array_push($items, $temp); } $category['items'] = $items; } $result = $recommend_category[0]['items']; //获取行情信息 $coin_names = array_column($result, 'name'); $coin_names = array_merge($coin_names, array_column($result, 'chain')); $coin_quotations = ExchangeBusiness::getQuatationByNames($coin_names); $ticker = ['low' => 0, 'high' => 0, 'last' => 0, 'open' => 0, 'vol' => 0, 'rmb' => 0, 'usd' => 0]; foreach ($result as $key => &$val) { $val['chain_quotation'] = isset($coin_quotations[strtoupper($val['chain'])]) ? $coin_quotations[strtoupper($val['chain'])] : []; $result[$key] = array_merge($val, isset($coin_quotations[strtoupper($val['name'])]) ? $coin_quotations[strtoupper($val['name'])] : $ticker); $val['chain_rmb'] = isset($val['chain_quotation']['rmb']) ? $val['chain_quotation']['rmb'] : 0; $val['chain_usd'] = isset($val['chain_quotation']['usd']) ? $val['chain_quotation']['usd'] : 0; } $this->data = $result; doEnd : return ['code' => $this->code, 'data' => $this->data, 'msg' => $this->msg]; } public function actionIndex() { $platform_id = $this->platform_id; if (false == $platform_id) { $this->code = -1; $this->msg = '参数错误'; goto doEnd; } $type = Yii::$app->request->get('type', 1); $recommend_category = WalletRecommendCategory::find()->select('id, name') ->where(['wallet_type' => (int)$type, 'platform_id' => (int)$platform_id]) ->andWhere(['>', 'sort', 1]) ->orderBy('sort')->asArray()->all(); if (empty($recommend_category)) { goto doEnd; } foreach ($recommend_category as &$category) { $name = json_decode($category['name'], true); $category['name'] = isset($name[$this->lang]) ? $name[$this->lang] : ''; $recommend_coin = WalletRecommendCoin::find()->where(['category_id' => $category['id']])->all(); $items = []; foreach ($recommend_coin as $coin) { $temp['icon'] = $coin->coin['icon']; $temp['name'] = $coin->coin['name']; $temp['platform'] = $coin->coin['platform']; $temp['chain'] = $coin->coin['chain']; $temp['treaty'] = $coin->coin['treaty']; $temp['exchange_id'] = $coin->coin['exchange_id']; $nickname = json_decode($coin->coin['nickname'], true); $temp['nickname'] = isset($nickname[$this->lang]) ? $nickname[$this->lang] : ''; $introduce = json_decode($coin->coin['introduce'], true); $temp['introduce'] = isset($introduce[$this->lang]) ? $introduce[$this->lang] : ''; array_push($items, $temp); } $category['items'] = $items; } $this->data = $recommend_category; doEnd : return ['code' => $this->code, 'data' => $this->data, 'msg' => $this->msg]; } }