/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = FundData::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 50]]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]); $query->andFilterWhere(['like', 'date', $this->date])->andFilterWhere(['like', 'fund_num', $this->fund_num])->andFilterWhere(['like', 'iopv', $this->iopv])->andFilterWhere(['like', 'accnav', $this->accnav])->andFilterWhere(['like', 'growth', $this->growth])->andFilterWhere(['like', 'rate', $this->rate]); return $dataProvider; }
/** * 获取每个基金每天的净值数据 * @param $num * @return string */ public function actionPriceDayDetailData($num) { $posts = FundData::find()->where(['fund_num' => $num])->orderBy(['date' => SORT_ASC])->all(); $data = []; foreach ($posts as $v) { $data[] = [strtotime($v['date']) * 1000, floatval($v['accnav'])]; } return json_encode($data); }
/** * 保存当前基金的每日排行 * @param $type */ public function saveSort($type) { $rate_data = ArrayHelper::getColumn(FundData::find()->where(['fund_type' => $type])->select('rate')->distinct()->orderBy(['rate' => SORT_DESC])->asArray()->all(), 'rate'); $data = FundData::find()->where(['fund_type' => $type])->all(); foreach ($data as $k => $v) { $sort = array_search($v->rate, $rate_data); $v->day_sort = $sort + 1; $v->save(false); } }