public function getScoreByMonth($month) { if ($this->scene_id == 0) { $sum_score = 0; } else { $sum_score = MSceneDay::find()->where(['gh_id' => $this->gh_id, 'scene_id' => $this->scene_id, 'month(create_date)' => $month])->sum('score'); } return empty($sum_score) ? 0 : $sum_score; }
public function actionStafftopbyrange() { $cur_date = Yii::$app->request->get('cur_date'); // $cur_date = '2014-10-31'; if (empty($cur_date)) { $date_start = Yii::$app->request->get('date_start', date("Y-m-d", strtotime("-1 day"))); $date_end = Yii::$app->request->get('date_end', date("Y-m-d", strtotime("-1 day"))); } else { $date_start = $cur_date; $date_end = $cur_date; } // $searchModel = new MSceneDetailSearch; // $dataProvider = $searchModel->search(Yii::$app->request->get()); $query = MSceneDay::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['sum_score' => SORT_DESC]], 'pagination' => ['pageSize' => 400]]); $dataProvider->setSort(false); /* $query->select(['sum(score) as sum_score']); $query->andWhere(['wx_scene_day.gh_id' => Yii::$app->user->getGhid()]); $query->andWhere('create_date >= :date_start', [':date_start'=>$date_start]); $query->andWhere('create_date <= :date_end', [':date_end'=>$date_end]); $query->andWhere('wx_scene_day.scene_id > 0'); $query->groupBy(['wx_scene_day.scene_id']); $query->orderBy(['sum_score' => SORT_DESC]); */ $query->select(['*', 'sum(score) as sum_score']); $query->andWhere(['gh_id' => Yii::$app->user->getGhid()]); $query->andWhere('create_date >= :date_start', [':date_start' => $date_start]); $query->andWhere('create_date <= :date_end', [':date_end' => $date_end]); $query->andWhere('scene_id > 0'); $query->groupBy(['scene_id']); $query->orderBy(['sum_score' => SORT_DESC]); if (!Yii::$app->user->getIsAdmin()) { //$query->andWhere(['office_id' => Yii::$app->user->identity->office_id]); } // $query->andWhere(['cat' => 0]); if (isset($_GET['download'])) { $data = $dataProvider->getModels(); \yii\helpers\ArrayHelper::multisort($data, 'sum_score', SORT_DESC); $date = date('Y-m-d-His'); $filename = Yii::$app->getRuntimePath() . "/Stafftopbyrange-{$date}.csv"; $csv = new \app\models\ECSVExport($data); $attributes = ['staff.name', 'staff.mobile', 'sum_score']; $csv->setInclude($attributes); $csv->setHeaders(['staff.name' => '推广者', 'staff.mobile' => '手机号码', 'Sum Score' => '推广成绩']); $csv->toCSV($filename); Yii::$app->response->sendFile($filename); return; } return $this->render('stafftopbyrange', ['dataProvider' => $dataProvider, 'cur_date' => $cur_date, 'date_start' => $date_start, 'date_end' => $date_end]); }