/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = MOfficeCampaignPicCategory::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'sort_order' => $this->sort_order]); $query->andFilterWhere(['like', 'name', $this->name]); return $dataProvider; }
public function actionCsmdzltj2() { //$this->layout = 'wap'; $this->layout = false; $gh_id = U::getSessionParam('gh_id'); $openid = U::getSessionParam('openid'); Yii::$app->wx->setGhId($gh_id); $office_id = $_GET['office_id']; $staff_id = $_GET['staff_id']; $office = MOffice::findOne(['office_id' => $office_id]); $staff = MStaff::findOne(['staff_id' => $staff_id]); $campaign_pic_categories = MOfficeCampaignPicCategory::find()->orderBy('sort_order')->all(); return $this->render('csmdzltj2', ['gh_id' => $gh_id, 'openid' => $openid, 'model_office' => $office, 'model_staff' => $staff, 'models_categories' => $campaign_pic_categories]); }
public static function getScore($office_id, $date = null) { $pic_categories = MOfficeCampaignPicCategory::find()->all(); $office = \app\models\MOffice::findOne(['office_id' => $office_id]); $total = 0; foreach ($pic_categories as $pic_category) { if (!$office->is_selfOperated && $pic_category->sort_order == 6) { continue; } $scores = self::getScoreByPicCategory($office_id, $pic_category->id, $date); if ($scores['count'] == 0) { return false; } $total += $scores['count'] == 1 ? $scores['total'] : $scores['total'] / $scores['count']; } return $total; }
public static function getDetailReadyStatus($office_id, $date = null) { $start_date = \app\models\utils\OfficeCampaignUtils::getOfficeCampaignBeginDate($date); $end_date = \app\models\utils\OfficeCampaignUtils::getOfficeCampaignEndDate($date); $pic_categories = MOfficeCampaignPicCategory::find()->all(); $office = \app\models\MOffice::findOne(['office_id' => $office_id]); $category_count = 0; $detail_count = 0; foreach ($pic_categories as $pic_category) { if (!$office->is_selfOperated && $pic_category->sort_order == 6) { continue; } $category_count++; $detail = self::find()->andWhere(['office_id' => $office_id, 'pic_category' => $pic_category->id])->andWhere('created_time >= :start_time', [':start_time' => $start_date->format("Y-m-d H:i:s")])->andWhere('created_time < :end_time', [':end_time' => $end_date->format("Y-m-d H:i:s")])->one(); if (!empty($detail)) { $detail_count++; } } if ($category_count == $detail_count) { return self::DETAIL_COMPLETE; } if ($detail_count == 0) { return self::DETAIL_IMCOMPLETE; } else { return self::DETAIL_PARTIALLY; } }