Esempio n. 1
0
 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~~");
 }
Esempio n. 2
0
 public function actionUuid()
 {
     $date_from = $this->get("date_from", date("Y-m-d"));
     $date_to = $this->get("date_to", date("Y-m-d"));
     $p = intval($this->get("p", 1));
     if (!$p) {
         $p = 1;
     }
     $query = StatDailyUuid::find();
     if ($date_from) {
         $query->andWhere(['>=', 'date', date("Ymd", strtotime($date_from))]);
     }
     if ($date_from) {
         $query->andWhere(['<=', 'date', date("Ymd", strtotime($date_to))]);
     }
     $total_count = $query->count();
     $offset = ($p - 1) * $this->page_size;
     $list = $query->orderBy("id desc")->offset($offset)->limit($this->page_size)->all();
     $page_info = DataHelper::ipagination(["total_count" => $total_count, "page_size" => $this->page_size, "page" => $p, "display" => 10]);
     $data = [];
     if ($list) {
         $idx = 1;
         foreach ($list as $_item) {
             $data[] = ['idx' => $idx, 'date' => $_item['date'], 'uuid' => $_item['uuid'], 'total_number' => $_item['total_number']];
             $idx++;
         }
     }
     $search_conditions = ['date_from' => $date_from, 'date_to' => $date_to];
     return $this->render("uuid", ["data" => $data, "page_info" => $page_info, 'search_conditions' => $search_conditions]);
 }
Esempio n. 3
0
 public function actionAccess($date = '')
 {
     $date = $date ? $date : date("Y-m-d");
     $date_now = date("Y-m-d H:i:s");
     if (!preg_match("/^\\d{4}-\\d{2}-\\d{2}\$/", $date)) {
         return $this->echoLog("date{$date} is illegal!!");
     }
     $this->echoLog("stat_access date is {$date}");
     $info = StatAccess::findOne(['date' => $date]);
     if ($info) {
         $model_stat_access = $info;
     } else {
         $model_stat_access = new StatAccess();
         $model_stat_access->date = $date;
         $model_stat_access->created_time = $date_now;
     }
     $stat_count = AccessLogs::find()->where(['>=', 'created_time', date("Y-m-d 00:00:00", strtotime($date))])->andWhere(['<=', 'created_time', date("Y-m-d 23:59:59", strtotime($date))])->count();
     $model_stat_access->total_number = $stat_count ? $stat_count : 0;
     $stat_ip_count = AccessLogs::find()->where(['>=', 'created_time', date("Y-m-d 00:00:00", strtotime($date))])->andWhere(['<=', 'created_time', date("Y-m-d 23:59:59", strtotime($date))])->groupBy("ip")->count();
     $model_stat_access->total_ip_number = $stat_ip_count ? $stat_ip_count : 0;
     $stat_uuid = AccessLogs::find()->select(['uuid'])->where(['>=', 'created_time', date("Y-m-d 00:00:00", strtotime($date))])->andWhere(['<=', 'created_time', date("Y-m-d 23:59:59", strtotime($date))])->groupBy("uuid")->asArray()->all();
     $model_stat_access->total_uv_number = $stat_uuid ? count($stat_uuid) : 0;
     if ($stat_uuid) {
         $stat_returned_user = StatDailyUuid::find()->select(['uuid'])->where(['uuid' => array_column($stat_uuid, 'uuid')])->andWhere(['<', 'date', date("Ymd", strtotime($date))])->groupBy(['uuid'])->all();
         $model_stat_access->total_returned_user_number = $stat_returned_user ? count($stat_returned_user) : 0;
         $model_stat_access->total_new_user_number = $model_stat_access->total_uv_number - $model_stat_access->total_returned_user_number;
     }
     if ($model_stat_access->total_number && $model_stat_access->total_uv_number) {
         $model_stat_access->avg_pv_per_uv = sprintf("%.2f", $model_stat_access->total_number / $model_stat_access->total_uv_number);
     }
     $model_stat_access->updated_time = $date_now;
     return $model_stat_access->save(0);
 }