public function actionCreate() { //$start = microtime(); parent::actionIndex(); $postId = (int) Yii::$app->getRequest()->post('post_id'); $url = Yii::$app->getRequest()->post('post_url'); if ($postId && $postId != "undefined") { $post = Post::findByMySqlId($postId, Yii::$app->getRequest()->post('project_id')); } elseif ($url) { $post = Post::findByUrl($url); } else { throw new ForbiddenHttpException("Param url is not provided", self::CODE_NO_URL); } $postViewModel = new PostView(); $postViewModel->load(Yii::$app->getRequest()->getBodyParams(), ''); $postViewModel->post_id = $postId; $postViewModel->save(); if ($post) { $total = PostView::find()->where(array('project_id' => (int) Yii::$app->getRequest()->post('project_id'), 'post_id' => $postId))->count(); //$unique = PostView::find()->where(array('project_id' => (int)Yii::$app->getRequest()->post('project_id'), 'post_id' => (int)$post->getID()))->distinct("uid"); $response = array('total' => $total, 'unique' => (int) $post->views['unique']); $post->views = $response; $post->save(); } else { $total = PostView::find()->where(array('project_id' => (int) Yii::$app->getRequest()->post('project_id'), 'post_id' => $postId, 'post_url' => $url))->count(); $response = array('total' => $total, 'unique' => 0); } //echo microtime() - $start; return $response; }