コード例 #1
0
 /**
  * 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.');
     }
 }
コード例 #2
0
 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]);
 }
コード例 #3
0
 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]);
 }
コード例 #4
0
 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));
         }
     }
 }
コード例 #5
0
 /**
  * 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]);
     }
 }