/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = UsersLevel::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'user_id' => $this->user_id, 'level_id' => $this->level_id, 'is_pay' => $this->is_pay, 'create_time' => $this->create_time, 'update_time' => $this->update_time]); $query->andFilterWhere(['like', 'certificate_number', $this->certificate_number])->andFilterWhere(['like', 'district', $this->district])->andFilterWhere(['like', 'receive_address', $this->receive_address])->andFilterWhere(['like', 'postcode', $this->postcode])->andFilterWhere(['like', 'update_user', $this->update_user]); $query->orderBy(' id desc '); return $dataProvider; }
/** * Updates an existing TrainUsers model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $trainInfo = Train::findOne(['id', $model->train_id]); $sourceStatus = $model->status; $userInfo = Users::findOne($model->user_id); $model->userName = $userInfo['username']; $model->trainName = $trainInfo->name; $statusList[TrainUsers::SIGN] = ['list' => [TrainUsers::APPROVED => TrainUsers::$statusList[TrainUsers::APPROVED]]]; $statusList[TrainUsers::APPROVED] = ['list' => [TrainUsers::ENROLL => TrainUsers::$statusList[TrainUsers::ENROLL], TrainUsers::NO_APPROVED => TrainUsers::$statusList[TrainUsers::NO_APPROVED]]]; $statusList[TrainUsers::ENROLL] = ['list' => [TrainUsers::DOING => TrainUsers::$statusList[TrainUsers::DOING]]]; $statusList[TrainUsers::DOING] = ['list' => [TrainUsers::END => TrainUsers::$statusList[TrainUsers::END]]]; $statusList[TrainUsers::END] = ['list' => [TrainUsers::END => TrainUsers::$statusList[TrainUsers::END]]]; $statusList[TrainUsers::NO_APPROVED] = ['list' => [TrainUsers::APPROVED => TrainUsers::$statusList[TrainUsers::APPROVED]]]; $statusList[TrainUsers::CANCEL] = ['list' => [TrainUsers::CANCEL => TrainUsers::$statusList[TrainUsers::CANCEL]]]; $statusList[TrainUsers::PASS] = ['list' => [TrainUsers::PASS => TrainUsers::$statusList[TrainUsers::PASS]]]; $statusList[TrainUsers::NO_PASS] = ['list' => [TrainUsers::NO_PASS => TrainUsers::$statusList[TrainUsers::NO_PASS]]]; if (Yii::$app->request->isPost) { $updateParams = Yii::$app->request->post(); $transaction = Yii::$app->db->beginTransaction(); if ($model->load($updateParams) && $model->save()) { if ($updateParams['TrainUsers']['status'] == TrainUsers::END) { //如果结束状态,必须评分 if ($sourceStatus == TrainUsers::END) { $transaction->rollBack(); throw new ServerErrorHttpException('请提交不同的状态!'); } if ($updateParams['TrainUsers']['practice_score'] <= 0 || $updateParams['TrainUsers']['theory_score'] <= 0 || $updateParams['TrainUsers']['rule_score'] <= 0) { $transaction->rollBack(); throw new ServerErrorHttpException('每项评分都必须大于零!'); } if ($updateParams['TrainUsers']['practice_score'] > 100 || $updateParams['TrainUsers']['theory_score'] > 100 || $updateParams['TrainUsers']['rule_score'] > 100) { $transaction->rollBack(); throw new ServerErrorHttpException('每项评分都不能超过100分!'); } //根据3个单项评分计算全部评价内容包括考勤 $result = $this->getSource($model->train_id, $model->user_id, $model->practice_score, $model->theory_score, $model->rule_score); $model->score_appraise = $result['scoreAppraise']; $model->appraise_result = $result['performance']; $model->attendance_appraise = $result['attendanceComment']; $model->practice_comment = $result['practiceComment']; $model->theory_comment = $result['theoryComment']; $model->rule_comment = $result['rulesComment']; $model->total_comment = $result['commentAppraise']; $model->result_comment = $result['scoreAppraise']; $model->status = $result['status']; if ($model->save()) { //如果通过更新晋级信息 if ($model->status == TrainUsers::PASS) { $trainCode = $trainInfo['code']; $trainPeriodNum = $trainInfo['period_num']; $levelInfo = Level::findOne($model->level_id); $certificateNumber = $this->getCertificateNumber($trainCode, $trainPeriodNum, sprintf("%04d", $model->orders), $levelInfo['code']); $res = UsersLevel::updateAll(['status' => 1, 'certificate_number' => $certificateNumber, 'update_time' => date('Y-m-d H:i:s', time()), 'update_user' => Yii::$app->admin->identity->username], ['user_id' => $model->user_id, 'train_id' => $model->train_id]); if ($res) { //通过发短信 $content = "您好,您的培训课程考试已经通过,请进入教练员管理系统-我的课程查看。【教练系统】"; $result = $this->sendMessage($content, Messages::TRAIN_PASS, $model->user_id, $userInfo['mobile_phone'], '1'); if ($result != '0') { $transaction->rollBack(); throw new ServerErrorHttpException('' . $result . '!'); } else { $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } } else { $transaction->rollBack(); throw new ServerErrorHttpException(json_encode($res, JSON_UNESCAPED_UNICODE) . '!'); } } else { UsersLevel::updateAll(['status' => UsersLevel::TRAIN_NO_PASS], ['user_id' => $userInfo['id'], 'train_id' => $model->train_id]); //未通过发短信 $content = "尊敬的学员,您没有通过培训课程,谢谢!【教练系统】"; $result = $this->sendMessage($content, Messages::TRAIN_NO_PASS, $model->user_id, $userInfo['mobile_phone'], '1'); if ($result != '0') { $transaction->rollBack(); throw new ServerErrorHttpException('' . $result . '!'); } $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } } else { $transaction->rollBack(); throw new ServerErrorHttpException(json_encode($model->errors, JSON_UNESCAPED_UNICODE) . '!'); } } else { if ($updateParams['TrainUsers']['status'] == TrainUsers::ENROLL) { if ($sourceStatus == TrainUsers::ENROLL) { $transaction->rollBack(); throw new ServerErrorHttpException('请提交不同的状态!'); } //录取发短信 $content = "您好,很高兴的通知您,您报名的培训班已通过审核,请按指定日期前往培训地点缴费上课。【教练系统】"; $result = $this->sendMessage($content, Messages::TRAIN_SIGN_SUCCESS, $model->user_id, $userInfo['mobile_phone'], '1'); if ($result != '0') { $transaction->rollBack(); throw new ServerErrorHttpException('' . $result . '!'); } $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } elseif ($updateParams['TrainUsers']['status'] == TrainUsers::NO_APPROVED) { if ($sourceStatus == TrainUsers::NO_APPROVED) { $transaction->rollBack(); throw new ServerErrorHttpException('请提交不同的状态!'); } //未通过审核发短信 $content = "尊敬的学员,您没有通过培训课程审核,谢谢!【教练系统】"; $result = $this->sendMessage($content, Messages::TRAIN_SIGN_ERROR, $model->user_id, $userInfo['mobile_phone'], '1'); if ($result != '0') { $transaction->rollBack(); throw new ServerErrorHttpException('' . $result . '!'); } $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } elseif ($updateParams['TrainUsers']['status'] == TrainUsers::DOING) { if ($sourceStatus == TrainUsers::DOING) { $transaction->rollBack(); throw new ServerErrorHttpException('请提交不同的状态!'); } //培训开始发短信 $content = "尊敬的学员您好,您已缴费成功,请根据课培训班的课程安排按时上下课,谢谢!【教练系统】"; $result = $this->sendMessage($content, Messages::TRAIN_DOING, $model->user_id, $userInfo['mobile_phone'], '1'); if ($result != '0') { $transaction->rollBack(); throw new ServerErrorHttpException('' . $result . '!'); } $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } else { if ($updateParams['TrainUsers']['practice_score'] != 0 || $updateParams['TrainUsers']['theory_score'] != 0 || $updateParams['TrainUsers']['rule_score'] != 0) { throw new ServerErrorHttpException('只有更新结束状态需要评分!'); } $transaction->commit(); Yii::$app->getSession()->setFlash('success', '更新成功!'); return $this->redirect(['view', 'id' => $model->id]); } } } else { $transaction->rollBack(); throw new ServerErrorHttpException('' . json_encode($model->errors, JSON_UNESCAPED_UNICODE) . '!'); } } else { return $this->render('update', ['model' => $model, 'statusList' => $statusList]); } }
public function actionView() { $result = UsersLevel::findOne(['user_id' => Yii::$app->user->id, 'level_id' => Yii::$app->user->identity->level_id]); return $this->render('view', ['data' => $result]); }
/** * Finds the UsersLevel model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return UsersLevel the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = UsersLevel::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/** * @return \yii\db\ActiveQuery */ public function getUsersLevels() { return $this->hasMany(UsersLevel::className(), ['level_id' => 'id']); }
public function actionView() { $id = Yii::$app->request->get('id'); $model = Users::findOne($id); $modelInfo = UsersInfo::findOne(['user_id' => $id]); $modelUserLevel = UsersLevel::findOne(['user_id' => $model['id'], 'level_id' => $model['level_id']]); $trainWind = News::getImgRecommendNewsByCategory(11, 12); return $this->render('view', ['data' => $modelInfo, 'userModel' => $model, 'trainWind' => $trainWind, 'modelUserLevel' => $modelUserLevel]); }
public function actionApply() { $trainId = Yii::$app->request->get('id'); $trainInfo = Train::findOne(['id' => $trainId]); if ($trainInfo['status'] != Train::BEGIN_SIGN_UP) { throw new ServerErrorHttpException('该课程的状态不是开始报名,谢谢。'); } if (Yii::$app->user->isGuest) { return $this->redirect(['/user/register', 'train_id' => $trainId]); } else { $userId = Yii::$app->user->id; if (Yii::$app->user->identity->status != '1') { throw new ServerErrorHttpException('您目前的状态是未审核,不能报名课程,谢谢。'); } $trainLevelInfo = Level::findOne($trainInfo['level_id']); if ($trainLevelInfo['order'] != Yii::$app->user->identity->level_order + 1) { throw new ServerErrorHttpException('您目前没有权限报名该级别下的课程,谢谢。'); } //检查用户参与的课程,状态不是取消的都算是已经参与了报名 $isExist = TrainUsers::getUserIsExistTrainStatus($userId, $trainInfo['level_id']); if (!empty($isExist)) { throw new ServerErrorHttpException('您已经参与了该级别下的培训课程,请耐心等待培训结果,谢谢。'); } // if (strtotime($trainInfo['sign_up_begin_time']) < time()) { // throw new ServerErrorHttpException('此课程已过期。'); // } $noPassInfo = TrainUsers::findOne(['user_id' => Yii::$app->user->id, 'level_id' => Yii::$app->user->identity->level_id + 1, 'status' => TrainUsers::NO_PASS]); if (!empty($noPassInfo)) { $noPassTrainInfo = Train::findOne($noPassInfo['train_id']); if (!empty($noPassTrainInfo)) { if ($noPassTrainInfo['end_time'] > $trainInfo['begin_time']) { throw new ServerErrorHttpException('训课课程的开课时间一定要大于未通过考试培训课程结束时间。'); } } } //报名成功,给出用户的序号 $trainUsersOrder = TrainUsers::getMaxSignUpOrder($trainId); if (empty($trainUsersOrder)) { $trainUsersOrder = 1; } else { $trainUsersOrder = $trainUsersOrder + 1; } $data = ['train_id' => $trainId, 'user_id' => $userId, 'status' => TrainUsers::APPROVED, 'practice_score' => 0, 'theory_score' => 0, 'rule_score' => 0, 'level_id' => $trainInfo['level_id'], 'orders' => $trainUsersOrder]; $model = new TrainUsers(); $model->setAttributes($data); if ($model->save()) { $trainUserId = $model->id; $trainUser = TrainUsers::findOne(['id' => $trainUserId]); $trainName = Train::getOneTrainNameById($trainUser['train_id']); $data = ['orders' => $trainUser['orders'], 'trainName' => $trainName]; //更新级别信息的信息 UsersLevel::updateAll(['train_id' => $trainId], ['user_id' => $userId, 'level_id' => Yii::$app->user->identity->level_id]); return $this->render('/train/apply-success', ['data' => $data]); } else { throw new ServerErrorHttpException('' . json_encode($model->errors, JSON_UNESCAPED_UNICODE)); } } }
<tr> <td>证书编号</td> <td><?php echo \app\models\UsersLevel::getLevelCertificateNumberByUserIdAndLevelId($userModel['id'], $userModel['level_id']); ?> </td> </tr> </table> </div> <div class="set_w400 fr" style="height:218px;"> <h3 class="jsjj_box1">教练员互动信息</h3> <table cellpadding="0" cellspacing="0" class="press_box1"> <tr> <td width="142">注册状态</td> <td style="border-right:none;"><?php echo \app\models\UsersLevel::getStatusByUserIdAndLevelId($userModel['id'], $userModel['level_id']); ?> </td> </tr> <tr> <td width="87">活动积分</td> <td style="border-right:none;">(<b><?php echo $userModel['score']; ?> </b>)分</td> </tr> <tr> <td width="87" style="border-bottom:none;">综合评分</td> <td style="border-bottom:none;border-right:none;"> <p class="p_flset"> <img src="/images/xx.png" /> <img src="/images/xx.png" /> <img src="/images/xx.png" /> <img src="/images/xx.png" /> <img src="/images/xx.png" /> <span><b>4.8</b>分 共159人评价</span>
public function actionLevelUp() { $levelInfo = Level::findOne(['id' => Yii::$app->user->identity->level_id + 1]); $usersLevel = UsersLevel::findOne(['user_id' => Yii::$app->user->id, 'level_id' => Yii::$app->user->identity->level_id]); $usersLevelStatusCurrent = $usersLevel['status']; if ($usersLevelStatusCurrent != UsersLevel::SEND_CARD) { throw new ServerErrorHttpException('当前注册状态不符合!'); } $loginDuration = Users::getLoginDuration(Yii::$app->user->id); $loginDurationDiff = $levelInfo['login_duration'] - $loginDuration; if ($loginDurationDiff > 0) { throw new ServerErrorHttpException('当前注册时长不符合!'); } $scoreDiff = $levelInfo['score'] - Yii::$app->user->identity->score; if ($scoreDiff > 0) { throw new ServerErrorHttpException('当前一般活动积分不符合!'); } $creditDiff = $levelInfo['credit'] - Yii::$app->user->identity->credit; if ($creditDiff > 0) { throw new ServerErrorHttpException('当前公益活动积分不符合!'); } $transaction = Yii::$app->db->beginTransaction(); UsersLevel::updateAll(['status' => UsersLevel::LEVEL_UP], ['user_id' => Yii::$app->user->id, 'level_id' => Yii::$app->user->identity->level_id]); $userInfo = UsersInfo::findOne(['user_id' => Yii::$app->user->id]); //新增一条用户和级别对应的信息 $userLevelModel = new UsersLevel(); $userLevelModel->user_id = Yii::$app->user->id; $userLevelModel->level_id = Yii::$app->user->identity->level_id + 1; $userLevelModel->credentials_number = $userInfo['credentials_number']; $userLevelModel->district = $userInfo['account_location']; $userLevelModel->receive_address = $userInfo['contact_address']; $userLevelModel->postcode = $userInfo['contact_postcode']; $userLevelModel->status = UsersLevel::NO_TRAIN; if (!$userLevelModel->save()) { $transaction->rollBack(); throw new ServerErrorHttpException('更新状态错误,原因:' . json_encode($userLevelModel->errors, JSON_UNESCAPED_UNICODE) . '!'); } else { Users::updateAll(['level_id' => Yii::$app->user->identity->level_id + 1, 'level_order' => Yii::$app->user->identity->level_order + 1], ['id' => Yii::$app->user->id]); $transaction->commit(); } return $this->redirect('/user-center/index'); }
use yii\helpers\Html; use yii\widgets\DetailView; /* @var $this yii\web\View */ /* @var $model app\models\UsersLevel */ $this->title = $model->id; $this->params['breadcrumbs'][] = ['label' => '用户晋升管理', 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; ?> <div class="users-level-view"> <h1><?php echo Html::encode($this->title); ?> </h1> <p> <?php echo Html::a('更新', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']); ?> <?php echo Html::a('删除', ['delete', 'id' => $model->id], ['class' => 'btn btn-danger', 'data' => ['confirm' => 'Are you sure you want to delete this item?', 'method' => 'post']]); ?> </p> <?php echo DetailView::widget(['model' => $model, 'attributes' => ['id', ['attribute' => 'train_id', 'value' => \app\models\Train::getOneTrainNameById($model->train_id)], ['attribute' => 'user_id', 'value' => \app\models\Users::getOneUserNameById($model->user_id)], ['attribute' => 'status', 'value' => \app\models\UsersLevel::getStatusName($model->status)], 'certificate_number', ['attribute' => 'end_date', 'value' => date('Y-m-d', strtotime($model->end_date))], 'district', 'receive_address', 'postcode', ['attribute' => 'photo', 'format' => 'html', 'value' => "<img src='/upload/images/users_info/photo/" . \app\models\UsersInfo::getPhotoByUserId($model->user_id) . "' width=157 height='210'>"], ['attribute' => 'credentials_photo', 'format' => 'html', 'value' => "<img src='/upload/images/users_level/credentials_photo/" . $model->credentials_photo . "' width=500 height='210'>"], ['attribute' => 'level_id', 'value' => \app\models\Level::getOneLevelNameById($model->level_id + 1)], 'create_time', 'update_time', 'update_user']]); ?> </div>
public function actionIndex() { $keyword = Yii::$app->request->get('keyword', ''); $levelId = Yii::$app->request->get('level_id', ''); $district = Yii::$app->request->get('district', ''); $sex = Yii::$app->request->get('sex', ''); if (empty($keyword) && empty($levelId) && empty($district) && empty($sex)) { throw new ServerErrorHttpException('шп╖ш╛УхЕехЕ│щФохнЧя╝Б'); } $levelList = Level::getAll(); $districtList = Train::$districtList; $userName = ''; $certificateNumber = ''; $credentialsNumber = ''; if (preg_match("/^[- ]+\$/", $keyword)) { $userName = $keyword; } else { if (strlen($keyword) > 10) { $credentialsNumber = $keyword; } else { $certificateNumber = $keyword; } } $order = Yii::$app->request->get('order'); $query = Users::find()->from(Users::tableName() . ' u')->select("u.*,ui.account_location,ui.sex")->leftJoin(UsersLevel::tableName() . ' ul', ' u.id = ul.user_id')->leftJoin(UsersInfo::tableName() . ' ui', ' u.id = ui.user_id'); if (!empty($order)) { $query->orderBy($order); } $query->andFilterWhere(['!=', 'u.level_id', '1']); if (!empty($levelId)) { $query->andFilterWhere(['u.level_id' => $levelId]); } if (!empty($district)) { $query->andFilterWhere(['account_location' => $district]); } if (!empty($sex)) { $query->andFilterWhere(['sex' => $sex]); } if (!empty($userName)) { $query->andFilterWhere(['like', 'name', $userName]); } if (!empty($certificateNumber)) { $query->andFilterWhere(['like', 'certificate_number', $certificateNumber]); } if (!empty($credentialsNumber)) { $query->andFilterWhere(['like', 'credentials_number', $credentialsNumber]); } $pages = new Pagination(['totalCount' => $query->count(), 'pageSize' => 15]); $models = $query->offset($pages->offset)->limit($pages->limit)->all(); $result = []; if (!empty($models)) { foreach ($models as $key => $val) { $result[$key]['name'] = $val['username']; $result[$key]['photo'] = UsersInfo::getPhotoByUserId($val['id']); $result[$key]['birthday'] = UsersInfo::getBirthdayByUserId($val['id']); $result[$key]['level_id'] = $val['level_id']; $result[$key]['user_id'] = $val['id']; } } $data = ['models' => $result, 'pages' => $pages, 'count' => $query->count(), 'levelList' => $levelList, 'districtList' => $districtList, 'keyword' => empty($keyword) ? '' : $keyword, 'levelId' => empty($levelId) ? '' : $levelId, 'district' => empty($district) ? '' : $district, 'sex' => empty($sex) ? '' : $sex]; return $this->render('index', ['data' => $data]); }
<a href="javascript:;">教练员管理</a></h1> <div class="second_div" <?php if (Yii::$app->controller->action->id == 'user-level-info' || Yii::$app->controller->action->id == 'activity' || Yii::$app->controller->action->id == 'my-activity' || Yii::$app->controller->action->id == 'user-level-up') { ?> style="display:block;"<?php } ?> > <a href="<?php echo \yii\helpers\Url::to('/user-center/user-level-info'); ?> "><span>注册信息</span></a> <?php if (\app\models\UsersLevel::getStatusOrderByIdAsc(Yii::$app->user->id) > \app\models\UsersLevel::PAY) { ?> <a href="<?php echo \yii\helpers\Url::to('/user-center/activity'); ?> "><span>活动管理(考核&活动)</span></a> <?php if (\app\models\ActivityUsers::findAll(['user_id' => Yii::$app->user->id])) { ?> <a href="<?php echo \yii\helpers\Url::to('/user-center/my-activity'); ?> "><span>我的活动</span></a> <?php } ?>