private function getCountAll($type, $kind, $cacheTime) { $result = Order::getDb()->cache(function () use($kind) { return Order::find(['status' => [Order::DONE, Order::DONE_AND_HIDE]])->where(['kind' => $kind])->sum('members_count'); }, $cacheTime); return $result; }
public function actionGet() { //todo поправить костыль $done = Order::find(['status' => [Order::DONE, Order::DONE_AND_HIDE]])->count(); $like = StatisticsMenu::getCount(1); $subscriber = StatisticsMenu::getCount(3); $repost = StatisticsMenu::getCount(4); $wrap = Wrap::getStat(); $data['stat_done_vk'] = $done + $wrap->done_wrap_vk; $data['stat_like_vk'] = $like + $wrap->like_wrap_vk; $data['stat_repost_vk'] = $repost + $wrap->repost_wrap_vk; $data['stat_subscriber_vk'] = $subscriber + $wrap->subscriber_wrap_vk; echo json_encode($data); }
private function getStatisticsAll() { $cacheTime = \Yii::$app->params['statsWidgetCacheTime']; $statAll = ''; if (\Yii::$app->cache->exists('statTwitAll')) { $statAll = \Yii::$app->cache->get('statTwitAll'); } else { $doneAll = Order::getDb()->cache(function () { return Order::find(['status' => [Order::DONE, Order::DONE_AND_HIDE]])->leftJoin('service', 'service.id = order.service_id')->where('service.network = ' . Service::TWITTER)->sum('order.sum'); }, $cacheTime); $retwitAll = $this->getCountAll('retwitAll', Service::RETWIT_TWITTER, $cacheTime); $subscriberAll = $this->getCountAll('subscriberAll', Service::SUBSCRIBER_TWITTER, $cacheTime); $favoriteAll = $this->getCountAll('favoriteAll', Service::FAVORITE_TWITTER, $cacheTime); $sumAll = Order::getDb()->cache(function () { return Order::find()->leftJoin('service', 'service.id = order.service_id')->where('service.network = ' . Service::TWITTER)->sum('sum'); }, $cacheTime); $statAll = ['doneAll' => isset($doneAll) ? $doneAll : 0, 'retwitAll' => isset($retwitAll) ? $retwitAll : 0, 'subscriberAll' => isset($subscriberAll) ? $subscriberAll : 0, 'favoriteAll' => isset($favoriteAll) ? $favoriteAll : 0, 'sumAll' => isset($sumAll) ? $sumAll : 0]; \Yii::$app->cache->set('statTwitAll', $statAll); } return $statAll; }
private function getStatisticsAll() { $cacheTime = \Yii::$app->params['statsWidgetCacheTime']; $statAll = ''; if (\Yii::$app->cache->exists('statInsAll')) { $statAll = \Yii::$app->cache->get('statInsAll'); } else { $doneAll = Order::getDb()->cache(function () { return Order::find(['status' => [Order::DONE, Order::DONE_AND_HIDE]])->leftJoin('service', 'service.id = order.service_id')->where('service.network = ' . Service::INSTAGRAM)->sum('order.sum'); }, $cacheTime); $likeAll = $this->getCountAll('likeAll', Service::LIKE_INSTAGRAM, $cacheTime); $subscriberAll = $this->getCountAll('subscriberAll', Service::SUBSCRIBER_INSTAGRAM, $cacheTime); $sumAll = Order::getDb()->cache(function () { return Order::find()->leftJoin('service', 'service.id = order.service_id')->where('service.network = ' . Service::INSTAGRAM)->sum('sum'); }, $cacheTime); $statAll = ['doneAll' => isset($doneAll) ? $doneAll : 0, 'likeAll' => isset($likeAll) ? $likeAll : 0, 'subscriberAll' => isset($subscriberAll) ? $subscriberAll : 0, 'sumAll' => isset($sumAll) ? $sumAll : 0]; \Yii::$app->cache->set('statInsAll', $statAll); } return $statAll; }
public static function getCount($kind) { $result = Order::find(['status' => [Order::DONE, Order::DONE_AND_HIDE]])->where(['>', 'date', mktime(strftime('-1 day', time()))])->andWhere(['kind' => $kind])->sum('members_count'); return $result; }
private function getStatisticsAll() { $cacheTime = 60 * 60 * 24; $statAll = ''; if (\Yii::$app->cache->exists('statVKAll')) { $statAll = \Yii::$app->cache->get('statVKAll'); } else { $doneAll = Order::getDb()->cache(function () { return Order::find(['status' => [Order::DONE, Order::DONE_AND_HIDE]])->leftJoin('service', 'service.id = order.service_id')->where('service.network = ' . Service::VK)->count(); }, $cacheTime); $likeAll = $this->getCountAll('likeAll', 1, $cacheTime); $friendAll = $this->getCountAll('friendAll', 2, $cacheTime); $subscriberAll = $this->getCountAll('subscriberAll', 3, $cacheTime); $repostAll = $this->getCountAll('repostAll', 4, $cacheTime); $commentAll = $this->getCountAll('commentAll', 5, $cacheTime); $interviewAll = $this->getCountAll('interviewAll', 6, $cacheTime); $sumAll = Order::getDb()->cache(function () { return Order::find()->leftJoin('service', 'service.id = order.service_id')->where('service.network = ' . Service::VK)->sum('sum'); }, $cacheTime); $statAll = ['doneAll' => isset($doneAll) ? $doneAll : 0, 'likeAll' => isset($likeAll) ? $likeAll : 0, 'repostAll' => isset($repostAll) ? $repostAll : 0, 'subscriberAll' => isset($subscriberAll) ? $subscriberAll : 0, 'friendAll' => isset($friendAll) ? $friendAll : 0, 'commentAll' => isset($commentAll) ? $commentAll : 0, 'interviewAll' => isset($interviewAll) ? $interviewAll : 0, 'sumAll' => isset($sumAll) ? $sumAll : 0]; \Yii::$app->cache->set('statVKAll', $statAll); } return $statAll; }