/** * * @return \yii\data\ActiveDataProvider */ public static function findErrorLogByAppId() { $p_get = \Yii::$app->request->get(); if (!$p_get['id']) { $p_get['id'] = 1; } $model = new ErrorLog(); $dataProvider = new ActiveDataProvider(['query' => $model->find()->where("ApplicationId=:appid", [":appid" => $p_get['id']]), 'pagination' => ['pagesize' => 20]]); return $dataProvider; }
public function search($params) { $query = ErrorLog::find(); $this->load($params); if (!$this->validate()) { return $dataProvider; } if (isset($params['id'])) { $query->andWhere(['ApplicationId' => $params['id']]); } if (isset($params['ErrorLogSearch']['start_date']) && !empty($params['ErrorLogSearch']['start_date'])) { $query->andWhere(" AddDate>=:start_date", [':start_date' => $params['ErrorLogSearch']['start_date']]); } if (isset($params['ErrorLogSearch']['end_date']) && !empty($params['ErrorLogSearch']['end_date'])) { $query->andWhere(" AddDate<=:end_date", [':end_date' => $params['ErrorLogSearch']['end_date']]); } if (isset($params['ErrorLogSearch']['Parameter']) && !empty($params['ErrorLogSearch']['Parameter'])) { $query->andWhere(['like', 'Parameter', $params['ErrorLogSearch']['Parameter']]); } if (isset($params['ErrorLogSearch']['Method']) && !empty($params['ErrorLogSearch']['Method'])) { $query->andWhere(['like', 'Method', $params['ErrorLogSearch']['Method']]); } $query->orderBy('AddDate desc '); $dataProvider = new ActiveDataProvider(['query' => $query]); return $dataProvider; }
public function search($params) { $query = ErrorLog::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['AddDate' => SORT_DESC]]]); $this->load($params); if (!$this->validate()) { return $dataProvider; } if ($this->ApplicationId != "all") { $query->andFilterWhere(['ApplicationId' => $this->ApplicationId]); } $query->andFilterWhere(['>=', 'AddDate', $this->start_date]); $query->andFilterWhere(['<=', 'AddDate', $this->end_date]); $query->andFilterWhere(['like', 'Parameter', $this->Parameter])->andFilterWhere(['like', 'Method', $this->Method]); return $dataProvider; }
public static function findAllLineEcharts() { #获得所有错误类型 $allErrorsType = \common\models\ApplicateName::find()->asArray()->select('appname')->where('logtype=0')->all(); foreach ($allErrorsType as $oneDate) { $fitAllErrorsType[] = $oneDate['appname']; } $whereString = implode(',', $fitAllErrorsType); #获得最近五天的数据 $fitDate = date('Y-m-d 00:00:00'); $after5Date = date('Y-m-d 00:00:00', strtotime('-5 day', strtotime($fitDate))); $fiveDateLists = \common\models\ErrorLogDay::find()->where(["ApplicationId" => $fitAllErrorsType])->andWhere('Date>:sd AND Date<=:ed', [':sd' => $after5Date, ':ed' => $fitDate])->asArray()->orderBy("Date desc")->All(); //如果为空,就取最后一个时间,以最后一个时间点为准 //标记是否为最新的数据 $isToday = true; if (empty($fiveDateLists)) { $lastDay = \common\models\ErrorLogDay::find()->orderBy("Id desc")->one(); if (empty($lastDay)) { return []; } $fitDate = date('Y-m-d 00:00:00', strtotime($lastDay->Date)); $after5Date = date('Y-m-d 00:00:00', strtotime('-5 day', strtotime($fitDate))); $fiveDateLists = \common\models\ErrorLogDay::find()->where(["ApplicationId" => $fitAllErrorsType])->andWhere('Date>:sd AND Date<=:ed', [':sd' => $after5Date, ':ed' => $fitDate])->asArray()->orderBy("Date desc")->All(); if (empty($fiveDateLists)) { return []; } $isToday = false; } #//开始处理这五天的数据 $fitdates = []; foreach ($fiveDateLists as $key => $oneDate) { //处理成2016-5-6形式的日期 $toIntDay = date("Y-m-d", strtotime($oneDate['Date'])); $fitdates[$oneDate['ApplicationId']][$toIntDay] = floatval($oneDate['Number']); } #对处理了的数据再处理一遍,不存在的数据加上0 $outCharts = []; $outCharts['categories'] = []; $outCharts['series'] = []; foreach ($fitdates as $key => $oneDate) { $start_date = date('Y-m-d', strtotime($fitDate)); for ($i = 1; $i <= 5; $i++) { if (!in_array($start_date, $outCharts['categories'])) { $outCharts['categories'][] = $start_date; } if (!isset($oneDate[$start_date])) { $fitdates[$key][$start_date] = 0; } $start_date = date('Y-m-d', strtotime("-1 day", strtotime($start_date))); } ksort($fitdates[$key]); } //处理一个上面显示的数据 foreach ($fitdates as $key => $oneDate) { $outCharts['series'][] = ['name' => $key, 'type' => 'line', 'smooth' => true, 'data' => array_values($oneDate)]; $outCharts['toptip'][] = $key; } $outCharts['categories'] = array_reverse($outCharts['categories']); //标记是否为今天的数据,如果是今天的数据,那么对今天的数据进行实时统计处理 if ($isToday) { $fitDate = date('Y-m-d 00:00:00'); $after1Date = date('Y-m-d 00:00:00', strtotime('+1 day', strtotime($fitDate))); //因为上面已经做了判断,所以今天的数据肯定会存在 //获得今天最新的数据 $errorstatusLists = \common\models\ErrorLog::find()->select("count(*) nums,ApplicationId")->where('AddDate>:sd AND AddDate<=:ed', [':sd' => $fitDate, ':ed' => $after1Date])->groupBy('ApplicationId')->indexBy('ApplicationId')->asArray()->all(); //对上面的数组进行处理 foreach ($outCharts['series'] as $key => $oneVaue) { //把最近一个元素推出 array_pop($outCharts['series'][$key]['data']); //推入一个新元素 //如果没有这个数组就推入一个0的数据 if (!isset($errorstatusLists[$oneVaue['name']]['nums'])) { array_push($outCharts['series'][$key]['data'], 0); } else { array_push($outCharts['series'][$key]['data'], floatval($errorstatusLists[$oneVaue['name']]['nums'])); } } } return $outCharts; }
public static function getYearList() { //获取错误日志最先的时间 $errorlog = ErrorLog::find()->where("AddDate>0")->orderBy("AddDate asc")->limit(1)->one(); $add_date = $errorlog->AddDate; $str_year = date("Y", strtotime($add_date)); $cur_year = date("Y"); $cur_month = date("n"); $diff = $cur_year - $str_year + 1; $year = $cur_year; $item = array(); $key = 0; for ($i = 0; $i < $diff; $i++) { if ($i == 0) { if ($cur_month > 6) { $item[$key] = $year . "下半年"; $key -= 1; } } else { $item[$key] = $year . "下半年"; $key -= 1; } $item[$key] = $year . "上半年"; $key -= 1; $year = $year - 1; } return $item; }