public function actionUuid($date = '') { $date = $date ? $date : date("Y-m-d"); if (!preg_match("/^\\d{4}-\\d{2}-\\d{2}\$/", $date)) { return $this->echoLog("param date format error,2016-04-28"); } $time_from = date("Y-m-d 00:00:00", strtotime($date)); $time_to = date("Y-m-d 23:59:59", strtotime($date)); $list = AccessLogs::find()->select(['uuid', 'COUNT(*) as total_number'])->where(['>=', 'created_time', $time_from])->andWhere(['<=', 'created_time', $time_to])->groupBy("uuid")->asArray()->all(); if (!$list) { return $this->echoLog('no data to handle~~'); } $date_int = date("Ymd", strtotime($date)); $date_now = date("Y-m-d H:i:s"); foreach ($list as $_item) { $tmp_uuid = $_item['uuid']; if (!$tmp_uuid) { continue; } $tmp_total_number = $_item['total_number']; $tmp_info = StatDailyUuid::find()->where(['date' => $date_int, 'uuid' => $tmp_uuid])->one(); if ($tmp_info) { $tmp_model_info = $tmp_info; } else { $tmp_model_info = new StatDailyUuid(); $tmp_model_info->date = $date_int; $tmp_model_info->uuid = $tmp_uuid; $tmp_model_info->created_time = $date_now; } $tmp_model_info->total_number = $tmp_total_number; $tmp_model_info->updated_time = $date_now; $tmp_model_info->save(0); } return $this->echoLog("it's over~~"); }