public function stat($params) { $query = SentSms::find(); $this->load($params); $query->select(['COUNT(`STATUS`) as `all`', 'SUM(`Status`) as `succeed`', "DATE_FORMAT(SmsTime,'%Y-%m-%d') as `date`"]); $query->addGroupBy("TO_DAYS(SmsTime)"); if (!empty($this->SmsTime) && strpos($this->SmsTime, " 至 ")) { list($startTime, $endTime) = explode(" 至 ", $this->SmsTime); $startTime = $startTime . " 00:00:00"; $endTime = $endTime . " 23:59:59"; $query->andFilterWhere(["between", "SmsTime", $startTime, $endTime]); } $dataProvider = new ArrayDataProvider(['allModels' => $query->asArray()->all()]); return $dataProvider; }