request; $coinItems = $request->post('names'); if(!$coinItems){ return ['code' => 1,'data' => [],'msg' => '币种不能为空']; } if(!is_array($coinItems)){ $coinItems = [$coinItems]; } $tol_coins = ['ETC']; $tickerData = []; if($coinItems){ foreach($coinItems as $item){ $item = strtoupper($item); if(in_array($item,$tol_coins)){ $exchange = ExchangeFactory::createExchange('HuoBi'); if ($exchange->symbolExists($item)) { $quotation = $exchange->getTicker($item); if($quotation){ //格式化行情数据 foreach ($quotation as $key => $value) { $quotation[$key] = (float)sprintf("%0.4f", (double)$value); } $rate = $this->getRate(); $quotation['rmb'] = (float)sprintf("%0.2f", $rate * $quotation['last']); } } }else{ $quotation = ExchangeBusiness::getquatation($item); } if (!$quotation) { //使用Coin服务 try { $coinServer = CoinFactory::createCoin($item, '', ''); $tickerData[$item]['rmb'] = $coinServer->getPrice(); $tickerData[$item]['last'] = $coinServer->getDollar(); $tickerData[$item]['low'] = $coinServer->getLow(); $tickerData[$item]['high'] = $coinServer->getHigh(); $coinServer->__destruct(); } catch (\Exception $exception) { $tickerData[$item]['rmb'] = 0; $tickerData[$item]['last'] = 0; $tickerData[$item]['low'] = 0; $tickerData[$item]['high'] = 0; \Yii::error($exception->getMessage()); } }else{ $tickerData[$item] = $quotation; } } return ['code' => 0,'data' => $tickerData,'msg' => '行情获取成功']; } } public function actionCoinIndex() { $request = Yii::$app->request; $coinItems = $request->post('names',[]); $coin_recommendItems = $this->coinRecommendList(); $coinItems = array_merge($coinItems,$coin_recommendItems); if(!$coinItems){ return ['code' => 1,'data' => [],'msg' => '币种不能为空']; } if(!is_array($coinItems)){ $coinItems = [$coinItems]; } $fields =['id', 'sid', 'icon', 'name', 'nickname','chain']; $rows = Coin::getSelectList(1, 999, $fields,[['in','name',$coinItems]]); return ['code' => 0,'data' => $rows,'msg' => '币种列表获取成功']; } private function coinRecommendList() { $recommend_list = CoinRecommend::find()->select('cid')->where(['platform_id' => 6 ])->all(); if($recommend_list){ $coin_ids = array_column($recommend_list,'cid'); $coin_items = Coin::find()->select('name')->where(['in','id',$coin_ids])->all(); return array_column($coin_items,'name'); } return []; } /** * @return array * 获取旷工费 */ public function actionFee() { $request = Yii::$app->request; $coin = $request->post('name'); if(!$coin){ return ['code' => 1,'data' => [],'msg' => '币种不能为空']; } $fee = MinerFee::find()->where(['platform' => $coin,'type' => 2])->select('id,platform,type,fee,create_at,update_at')->asArray()->one(); if(!$fee){ return ['code' => 1,'data' => [],'msg' => '旷工费未设置']; } return ['code' => 0,'data' => $fee,'msg' => '旷工费获取成功']; } private function getRate() { $exchange = ExchangeFactory::createExchange("Bty"); $rate = $exchange->getTicker("BTY", "USDT"); return (float)$rate['rmb'] / $rate['last']; } }