Commit f4a85e31 authored by 杨培's avatar 杨培

增加是否拥有课堂验证

parent 131399a0
...@@ -60,6 +60,23 @@ class Utils ...@@ -60,6 +60,23 @@ class Utils
return $msgs; return $msgs;
} }
/**
* 返回 $model->errors 中的第一条错误
*
* @param array $errors
* @return string
*/
public static function fetchErrorFirst($errors)
{
foreach ($errors as $v) {
foreach ($v as $msg) {
return $msg;
}
}
return '';
}
/** /**
* 生成4-6位随机数 * 生成4-6位随机数
......
...@@ -22,6 +22,12 @@ use yii\db\ActiveRecord; ...@@ -22,6 +22,12 @@ use yii\db\ActiveRecord;
*/ */
class Classes extends ActiveRecord class Classes extends ActiveRecord
{ {
const STATUS_UNCHECK = 0;
const STATUS_OK = 1;
const STATUS_FAILED = 2;
const STATUS_LOCKED = 3;
/** /**
* @inheritdoc * @inheritdoc
*/ */
...@@ -79,4 +85,10 @@ class Classes extends ActiveRecord ...@@ -79,4 +85,10 @@ class Classes extends ActiveRecord
'status' => '0 未审核 1 审核通过 2 审核不通过 3 锁定 ' 'status' => '0 未审核 1 审核通过 2 审核不通过 3 锁定 '
]; ];
} }
public static function getUserClass($userId)
{
return self::find()->select('id, status')->where(['user_id'=>$userId])->asArray()->one();
}
} }
<?php
/**
* Created by PhpStorm.
* User: pader
* Date: 16/10/13
* Time: 14:47
*/
namespace frontend\components;
use common\models\Classes;
use Yii;
use yii\base\ActionFilter;
use yii\base\Behavior;
class ClassesFilter extends ActionFilter
{
public $_checkStatus = true;
/**
* @return boolean
*/
public function isCheckStatus() {
return $this->_checkStatus;
}
/**
* @param boolean $checkStatus
*/
public function setCheckStatus($checkStatus) {
$this->_checkStatus = $checkStatus;
}
public function beforeAction($action) {
$uid = Yii::$app->user->getId();
$class = Classes::getUserClass($uid);
if (!$class) {
$this->showAlert(0);
return false;
}
if ($this->_checkStatus && $class['status'] != Classes::STATUS_OK) {
$this->showAlert(1);
return false;
}
if (property_exists(Yii::$app->controller, 'classStatus')) {
Yii::$app->controller->classStatus = $class;
}
return parent::beforeAction($action);
}
public function showAlert($exists)
{
Yii::$app->response->data = Yii::$app->view->renderFile('@app/views/site/error.php', [
'name' => '提示消息',
'message' => $exists ? '您提交的课堂资料尚未通过审核,无法访问此页面!' : '您还没有创建课堂,无法访问此页面!'
]);
}
}
\ No newline at end of file
...@@ -3,12 +3,13 @@ ...@@ -3,12 +3,13 @@
namespace frontend\controllers; namespace frontend\controllers;
use common\models\Classes; use common\models\Classes;
use frontend\components\ClassesFilter;
use Yii; use Yii;
use yii\filters\AccessControl; use yii\filters\AccessControl;
class ClassesInfoController extends \yii\web\Controller class ClassesInfoController extends \yii\web\Controller
{ {
public $layout = 'userCenter'; public $layout = 'classCenter';
/** /**
* @inheritdoc * @inheritdoc
...@@ -24,6 +25,11 @@ class ClassesInfoController extends \yii\web\Controller ...@@ -24,6 +25,11 @@ class ClassesInfoController extends \yii\web\Controller
'roles' => ['@'], 'roles' => ['@'],
] ]
], ],
],
'classes' => [
'class' => ClassesFilter::className(),
'checkStatus' => true,
'except' => ['apply']
] ]
]; ];
} }
...@@ -40,6 +46,7 @@ class ClassesInfoController extends \yii\web\Controller ...@@ -40,6 +46,7 @@ class ClassesInfoController extends \yii\web\Controller
*/ */
public function actionApply() public function actionApply()
{ {
$this->layout = 'userCenter';
$uid = Yii::$app->user->getId(); $uid = Yii::$app->user->getId();
$model = Classes::findOne(['user_id'=>$uid]); $model = Classes::findOne(['user_id'=>$uid]);
...@@ -51,6 +58,8 @@ class ClassesInfoController extends \yii\web\Controller ...@@ -51,6 +58,8 @@ class ClassesInfoController extends \yii\web\Controller
$agreement = 1; $agreement = 1;
} }
echo $model->status;
if (Yii::$app->request->getIsPost()) { if (Yii::$app->request->getIsPost()) {
$model->load(Yii::$app->request->post()); $model->load(Yii::$app->request->post());
$model->user_id = Yii::$app->user->getId(); $model->user_id = Yii::$app->user->getId();
......
...@@ -8,6 +8,7 @@ use common\models\Course; ...@@ -8,6 +8,7 @@ use common\models\Course;
use common\models\CourseTeacher; use common\models\CourseTeacher;
use common\models\Courseware; use common\models\Courseware;
use common\models\UploadPools; use common\models\UploadPools;
use frontend\components\ClassesFilter;
use Qiniu\Storage\BucketManager; use Qiniu\Storage\BucketManager;
use Yii; use Yii;
use yii\filters\AccessControl; use yii\filters\AccessControl;
...@@ -17,6 +18,7 @@ use yii\web\UploadedFile; ...@@ -17,6 +18,7 @@ use yii\web\UploadedFile;
class MyCourseController extends \yii\web\Controller class MyCourseController extends \yii\web\Controller
{ {
public $classStatus;
public $layout = 'classCenter'; public $layout = 'classCenter';
/** /**
...@@ -30,10 +32,14 @@ class MyCourseController extends \yii\web\Controller ...@@ -30,10 +32,14 @@ class MyCourseController extends \yii\web\Controller
//'only' => ['index', 'publish', 'submit'], //'only' => ['index', 'publish', 'submit'],
'rules' => [ 'rules' => [
[ [
'allow' => TRUE, 'allow' => true,
'roles' => ['@'], 'roles' => ['@']
] ]
], ]
],
'classes' => [
'class' => ClassesFilter::className(),
'checkStatus' => true
] ]
]; ];
} }
...@@ -250,16 +256,16 @@ class MyCourseController extends \yii\web\Controller ...@@ -250,16 +256,16 @@ class MyCourseController extends \yii\web\Controller
//暂存到本地 //暂存到本地
$model = new AttachUploadForm(); $model = new AttachUploadForm();
if (!Yii::$app->request->isPost) { //if (!Yii::$app->request->isPost) {
return ['success'=>false, 'msg'=>'请求方式错误']; // return ['success'=>false, 'msg'=>'请求方式错误'];
} //}
$model->file = UploadedFile::getInstance($model, 'file'); $model->file = UploadedFile::getInstance($model, 'file');
$model->tmp = Yii::$app->request->post('tmp'); $model->tmp = Yii::$app->request->post('tmp');
$result = $model->uploadStorage(); $result = $model->uploadStorage();
if ($result === false) { if ($result === false) {
return ['success'=>false, 'msg'=>$model->errors]; return ['success'=>false, 'msg'=>Utils::fetchErrorFirst($model->errors)];
} }
return ['success'=>true, 'msg'=>'', 'file_path'=>$result['src'], 'key'=>$result['key'], 'uuid'=>$result['uuid']]; return ['success'=>true, 'msg'=>'', 'file_path'=>$result['src'], 'key'=>$result['key'], 'uuid'=>$result['uuid']];
......
<?php
namespace frontend\models;
use yii\widgets\ActiveForm;
class MyActiveForm extends ActiveForm
{
public $fieldConfig = [
'options' => ['class' => 'cls-part'],
'labelOptions' => ['class' => 'tit', 'style'=>'margin-bottom:0;'],
'inputOptions' => ['class' => 'input-r-control']
];
//public $fieldClass = 'frontend\models\MyActiveField';
}
\ No newline at end of file
...@@ -11,6 +11,13 @@ $this->title = '申请课堂'; ...@@ -11,6 +11,13 @@ $this->title = '申请课堂';
<div class="send-class apply-class-box"> <div class="send-class apply-class-box">
<div class="tit">申请课堂</div> <div class="tit">申请课堂</div>
<?php if ($model->id) {
if ($model->status == \common\models\Classes::STATUS_UNCHECK) {?>
<p class="bg-info" style="padding:10px;margin-top:10px;">您提交的资料正在等待审核</p>
<?php } elseif ($model->status == \common\models\Classes::STATUS_FAILED) {?>
<p class="bg-danger" style="padding:10px;margin-top:10px;">您提交的课堂资料未通过审核!</p>
<?php } } ?>
<?php $form = MyActiveForm::begin(['id'=>'applyForm', 'options'=>['name'=>'applyClass']]); ?> <?php $form = MyActiveForm::begin(['id'=>'applyForm', 'options'=>['name'=>'applyClass']]); ?>
<?=$form->field($model, 'name', ['inputOptions'=>['placeholder'=>'请输入课堂名称']])?> <?=$form->field($model, 'name', ['inputOptions'=>['placeholder'=>'请输入课堂名称']])?>
<?=$form->field($model, 'intro')->textInput(['placeholder'=>'示例:面向谁?服务是什么?优势是什么?'])?> <?=$form->field($model, 'intro')->textInput(['placeholder'=>'示例:面向谁?服务是什么?优势是什么?'])?>
......
<?php <?php
/* @var $this yii\web\View */ /**
* @var $this yii\web\View
* @var \common\models\Classes $model
* @var int $agreement
*/
$this->title = '我的课堂';
?> ?>
<h1>classes-info/index</h1> <div class="class-name">为课堂起个响亮的名字吧</div>
<div class="class-intro">
<p> <div class="col-md-4">
You may change the content of this page by modifying <h3>课程总数</h3>
the file <code><?= __FILE__; ?></code>. <p>10<small>讲</small></p>
</p> <a href="#">发布课程</a>
<i class="icon-play"></i>
</div>
<div class="col-md-4">
<h3>今日收益</h3>
<p>192.00<small>元</small></p>
<a href="#">查看账单</a>
<i class="icon-clipboard"></i>
</div>
<div class="col-md-4">
<h3>今日发言</h3>
<p>891<small>条</small></p>
<i class="icon-speech-bubble"></i>
</div>
</div>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment