예제 #1
0
 public function actionApply()
 {
     $trainId = Yii::$app->request->get('train_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('您已经参与了该级别下的培训课程,请耐心等待培训结果,谢谢。');
         }
         //报名成功,给出用户的序号
         $trainUsersOrder = TrainUsers::getTrainUsersOrder($trainId);
         if (empty($trainUsersOrder)) {
             $trainUsersOrder = 1;
         } else {
             $trainUsersOrder = $trainUsersOrder + 1;
         }
         $transaction = Yii::$app->db->beginTransaction();
         //如果用户未完成报名流程,更新状态为审核中
         $isSignExist = TrainUsers::getUserIsExistTrainStatusSign($userId, $trainInfo['level_id']);
         if (!empty($isSignExist)) {
             TrainUsers::updateAll(['status' => TrainUsers::APPROVED], ['id' => $isSignExist['id']]);
             $trainName = Train::getOneTrainNameById($isSignExist['train_id']);
             $data = ['orders' => $isSignExist['orders'], 'trainName' => $trainName];
             $transaction->commit();
             return $this->render('/user/apply-success', ['data' => $data]);
         } else {
             //如果没有记录,新增一条
             $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()) {
                 $trainName = Train::getOneTrainNameById($model->train_id);
                 $data = ['orders' => $model->orders, 'trainName' => $trainName];
                 $transaction->commit();
                 return $this->render('/user/apply-success', ['data' => $data]);
             } else {
                 throw new ServerErrorHttpException('系统错误,原因:' . json_encode($model->errors, JSON_UNESCAPED_UNICODE));
             }
         }
     }
 }
 public function actionUpdateStatus()
 {
     $status = Yii::$app->request->post('status');
     $idList = Yii::$app->request->post('selection');
     if (!empty($status) && !empty($idList)) {
         foreach ($idList as $key => $val) {
             TrainUsers::updateAll(['status' => $status], ['id' => $val]);
             if ($status == TrainUsers::ENROLL) {
                 $trainUsersInfo = TrainUsers::findOne($val);
                 //录取发送系统通知
                 $content = "您好,很高兴的通知您,您报名的培训班已通过审核,请按指定日期前往培训地点缴费上课。【教练系统】";
                 $userInfo = Users::findOne(['id' => $trainUsersInfo['user_id']]);
                 $result = $this->sendMessage($content, Messages::TRAIN_SIGN_SUCCESS, $trainUsersInfo['user_id'], $userInfo['mobile_phone'], '1');
                 if ($result != '0') {
                     throw new ServerErrorHttpException('' . $result . '!');
                 }
             }
             if ($status == TrainUsers::END) {
                 $trainUsersInfo = TrainUsers::findOne($val);
                 //结束发送系统通知
                 $content = "尊敬的学员,您参与的培训课程已经结束,请等待评分,谢谢!【教练系统】";
                 $userInfo = Users::findOne(['id' => $trainUsersInfo['user_id']]);
                 $result = $this->sendMessage($content, Messages::TRAIN_END, $trainUsersInfo['user_id'], $userInfo['mobile_phone'], '1');
                 if ($result != '0') {
                     throw new ServerErrorHttpException('' . $result . '!');
                 }
             }
         }
         return $this->redirect(Yii::$app->request->referrer);
     } else {
         throw new ServerErrorHttpException('请选择评分信息!');
     }
 }
 public function actionResign()
 {
     $trainUserId = Yii::$app->request->get('train_user_id');
     $result = TrainUsers::updateAll(['status' => TrainUsers::APPROVED], ['id' => $trainUserId]);
     if ($result) {
         return $this->redirect('index');
     } else {
         throw new ServerErrorHttpException('更新状态失败!');
     }
 }