/** * Finds the Activity model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Activity the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Activity::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
function actionIndex($actid = 1) { $typeid = Yii::$app->request->get("typeid"); $actid = Yii::$app->request->get("actid"); $message = ""; $errormsg = ""; $model = new SignUpForm(); $activity = Activity::findOne($actid); $model->actid = $actid; $model->typeid = $typeid; $activityTypes = SignupTypeForm::find()->select(['subject', 'id'])->where(['actid' => $actid])->asArray()->all(); $types = array(); foreach ($activityTypes as $activityType) { $types[$activityType['id']] = $activityType['subject']; } if ($model->load(Yii::$app->request->post()) && $model->validate()) { $model->save(); $message = "保存成功"; } else { $errormsg = $model->getErrors(); } return $this->render("index", ['model' => $model, 'activity' => $activity, 'types' => $types, 'message' => $message, 'errormsg' => $errormsg]); }
public function actionView() { $activityId = Yii::$app->request->get('id'); $activityModel = Activity::findOne(['id' => $activityId]); $activityTeachersModel = ActivityTeachers::getAllTeachersByActivityId($activityModel['id']); $activityUsers = []; if ($activityModel['recruit_count'] > 0) { for ($i = 1; $i <= $activityModel['recruit_count']; $i++) { $activityUsersInfo = ActivityUsers::findOne(['activity_id' => $activityModel['id'], 'orders' => $i]); if (empty($activityUsersInfo)) { $activityUsers[$i]['status'] = '未报名'; $activityUsers[$i]['class'] = 'red'; $activityUsers[$i]['userId'] = ''; } else { $activityUsers[$i]['status'] = ActivityUsers::$statusList[$activityUsersInfo['status']]; $activityUsers[$i]['userId'] = $activityUsersInfo['user_id']; if ($activityUsersInfo['status'] == ActivityUsers::NO_APPROVED) { $activityUsers[$i]['class'] = 'blue'; } else { $activityUsers[$i]['class'] = ''; } } } } $data = ['activityModel' => $activityModel, 'activityTeachersModel' => $activityTeachersModel, 'activityUsers' => $activityUsers]; return $this->render('/activity/view', ['data' => $data]); }
public function actionActivityApply() { $activityId = Yii::$app->request->get('id'); $activityInfo = Activity::findOne(['id' => $activityId]); $levelId = $activityInfo['level_id']; if ($activityInfo['status'] != Activity::BEGIN_SIGN_UP) { throw new ServerErrorHttpException('该活动的状态不是开始报名,谢谢。'); } if (Yii::$app->user->isGuest) { return $this->redirect('/login/login'); } else { $userId = Yii::$app->user->id; if (Yii::$app->user->identity->status != '1') { throw new ServerErrorHttpException('系统错误,原因:您目前的状态是未审核,不能报名活动,谢谢。'); } $activityLevelInfo = Level::findOne(['id' => $activityInfo['level_id']]); if ($activityLevelInfo['order'] != Yii::$app->user->identity->level_order) { throw new ServerErrorHttpException('系统错误,原因:您目前没有权限报名该级别下的活动,谢谢。'); } //检查用户参与的活动,状态不是取消的都算是已经参与了报名 $isExist = ActivityUsers::getUserIsExistActivityStatus($userId, $activityInfo['level_id']); if (!empty($isExist)) { throw new ServerErrorHttpException('系统错误,原因:您已经参与了该级别下的活动,请耐心等待活动结果,谢谢。'); } //报名成功,给出用户的序号 $activityUsersOrder = ActivityUsers::getActivityUsersOrder($userId, $activityId); if (empty($activityUsersOrder)) { $activityUsersOrder = 1; } $transaction = Yii::$app->db->beginTransaction(); $data = ['activity_id' => $activityId, 'user_id' => $userId, 'status' => ActivityUsers::APPROVED, 'level_id' => $levelId, 'orders' => $activityUsersOrder]; $model = new ActivityUsers(); $model->setAttributes($data); if ($model->save()) { $activityUserId = $model->id; $activityUser = ActivityUsers::findOne(['id' => $activityUserId]); $activityName = Activity::getOneActivityNameById($activityUser['activity_id']); $data = ['orders' => $activityUser['orders'], 'activityName' => $activityName]; //新增一条用户和级别对应的信息 $result = UsersLevel::updateAll(['activity_id' => $activityId], ['user_id' => $userId, 'level_id' => $levelId]); if (!$result) { $transaction->rollBack(); throw new ServerErrorHttpException('更新状态错误,原因:更新数据库错误!'); } else { $transaction->commit(); } return $this->render('/activity/apply-success', ['data' => $data]); } else { throw new ServerErrorHttpException('系统错误,原因:' . json_encode($model->errors, JSON_UNESCAPED_UNICODE)); } } }
/** * Updates an existing ActivityUsers 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); $activityInfo = Activity::findOne(['id', $model->activity_id]); $userInfo = Users::findOne($model->user_id); $model->userName = $userInfo['username']; $model->activityName = $activityInfo->name; if (Yii::$app->request->isPost) { $updateParams = Yii::$app->request->post(); $transaction = Yii::$app->db->beginTransaction(); if ($updateParams['ActivityUsers']['practice_score'] > 100 || $updateParams['ActivityUsers']['theory_score'] > 100 || $updateParams['ActivityUsers']['rule_score'] > 100) { throw new ServerErrorHttpException('评分更新错误,原因:每项评分都不能超过100分!'); } if ($model->load($updateParams) && $model->save()) { if ($updateParams['ActivityUsers']['status'] == ActivityUsers::END) { //如果结束状态,必须评分 if ($updateParams['ActivityUsers']['practice_score'] <= 0 || $updateParams['ActivityUsers']['theory_score'] <= 0 || $updateParams['ActivityUsers']['rule_score'] <= 0) { throw new ServerErrorHttpException('评分更新错误,原因:每项评分都必须大于零!'); } //根据3个单项评分计算全部评价内容包括考勤 $result = $this->getSource($model->activity_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 == ActivityUsers::PASS) { // $messagesInfo = Messages::findOne(['id' => 29]); // $message = $messagesInfo['content']; // $data = [ // 'messages_id' => 29, // 'users_id' => $model->user_id, // ]; // MessagesUsers::addInfo($data); $content = "尊敬的学员,您已经被成功完成活动,请到个人中心查看具体信息,谢谢。【教练系统】"; // $smsModel = Sms::getInstance(Yii::$app->params['smsUserName'],Yii::$app->params['smsPassword']); // $result = $smsModel->pushMt($userInfo['phone'], time(), $content, 0); // if ($result != '0') { // throw new ServerErrorHttpException('更新状态错误,原因:' . $result . '!'); // } $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } $transaction->commit(); Yii::$app->getSession()->setFlash('success', '更新成功!'); } else { $transaction->rollBack(); throw new ServerErrorHttpException('评分更新错误,原因:' . json_encode($model->errors, JSON_UNESCAPED_UNICODE) . '!'); } } else { if ($updateParams['ActivityUsers']['status'] == ActivityUsers::ENROLL) { //如果录取,给出用户的序号 $activityUsersOrder = ActivityUsers::getActivityUsersOrder($model->user_id, $model->activity_id); if (empty($activityUsersOrder)) { $activityUsersOrder = 1; } $model->orders = $activityUsersOrder; $model->status = ActivityUsers::ENROLL; if ($model->save()) { $transaction->commit(); // $messagesInfo = Messages::findOne(['id' => 30]); // $message = $messagesInfo['content']; // $data = [ // 'messages_id' => 30, // 'users_id' => $model->user_id, // ]; // MessagesUsers::addInfo($data); // $content = $message . "【教练系统】"; //录取发短信 // $content = "尊敬的学员,您已经被成功录取,序号为" . $activityUsersOrder . ",谢谢!【教练系统】"; // $smsModel = Sms::getInstance(Yii::$app->params['smsUserName'],Yii::$app->params['smsPassword']); // $result = $smsModel->pushMt($userInfo['phone'], time(), $content, 0); // if ($result != '0') { // throw new ServerErrorHttpException('更新状态错误,原因:' . $result . '!'); // } return $this->redirect(['view', 'id' => $model->id]); } else { $transaction->rollBack(); // Yii::$app->getSession()->setFlash('error', '更新状态错误,原因:' . json_encode($model->errors, JSON_UNESCAPED_UNICODE) . '!'); throw new ServerErrorHttpException('更新状态错误,原因:' . json_encode($model->errors, JSON_UNESCAPED_UNICODE) . '!'); } } else { $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]); } }