Exemplo n.º 1
0
 public function actionStats()
 {
     $memberId = $this->getQuery('memberId');
     if (empty($memberId)) {
         throw new BadRequestHttpException(Yii::t('common', 'parameters_missing'));
     }
     $accountId = $this->getAccountId();
     $memberOrderStats = StatsMemberOrder::getByConsumerId($accountId, $memberId);
     $order = Order::getLastByConsumerId($accountId, $memberId);
     if (empty($order)) {
         $result = ['lastOperateTime' => '', 'operateInterval' => null];
     } else {
         $lastDate = MongodbUtil::MongoDate2String($order->operateTime, 'Y-m-d');
         $result = ['lastOperateTime' => $lastDate, 'operateInterval' => abs((strtotime(date('Y-m-d')) - strtotime($lastDate)) / 86400)];
     }
     if (empty($memberOrderStats)) {
         $result['consumptionAmount'] = $result['recentConsumption'] = $result['consumption'] = $result['memberMaxConsumption'] = 0;
     } else {
         $result['consumptionAmount'] = round($memberOrderStats->consumptionAmount);
         $result['recentConsumption'] = $memberOrderStats->recentTransactionCount;
         $result['consumption'] = round($memberOrderStats->consumptionAmount / $memberOrderStats->transactionCount);
         $result['memberMaxConsumption'] = round($memberOrderStats->maxConsumption);
     }
     $orderStats = StatsOrder::getLatestByAccount($accountId);
     if (empty($orderStats)) {
         $result['consumptionAmountAvg'] = $result['recentConsumptionAvg'] = $result['consumptionAvg'] = $result['maxConsumption'] = 0;
     } else {
         $result['consumptionAmountAvg'] = round($orderStats->consumptionAmount / $orderStats->consumerCount);
         $result['recentConsumptionAvg'] = round($orderStats->recentTransactionTotal / $orderStats->consumerCount);
         $result['consumptionAvg'] = round($orderStats->consumptionAmount / $orderStats->transactionCount);
         $result['maxConsumption'] = round($orderStats->maxConsumptionTotal / $orderStats->consumerCount);
     }
     return $result;
 }