Commit 520e6928 authored by xiabin's avatar xiabin

添加收藏记录查看

parent ef1e4364
...@@ -100,7 +100,7 @@ class Course extends \yii\db\ActiveRecord ...@@ -100,7 +100,7 @@ class Course extends \yii\db\ActiveRecord
'free_time' => '免费试看', 'free_time' => '免费试看',
'intro' => '课程介绍', 'intro' => '课程介绍',
'preview_pic' => '预览图', 'preview_pic' => '预览图',
'favorite_count'=>'favorite_count' 'favorite_count' => 'favorite_count'
]; ];
} }
...@@ -135,17 +135,17 @@ class Course extends \yii\db\ActiveRecord ...@@ -135,17 +135,17 @@ class Course extends \yii\db\ActiveRecord
* @param int $status 要获取的状态,null代表获取全部,默认为只获取审核通过的课程 * @param int $status 要获取的状态,null代表获取全部,默认为只获取审核通过的课程
* @return array * @return array
*/ */
public static function getCourseListsByClassId($classId, $page=0, $num=10, $status=self::STATUS_OK) public static function getCourseListsByClassId($classId, $page = 0, $num = 10, $status = self::STATUS_OK)
{ {
$cond = ['class_id'=>$classId]; $cond = ['class_id' => $classId];
$status !== null && $cond['status'] = $status; $status !== NULL && $cond['status'] = $status;
//获取总数 //获取总数
$count = self::find()->where($cond)->count(); $count = self::find()->where($cond)->count();
$return = ['count'=>$count, 'data' =>[]]; $return = ['count' => $count, 'data' => []];
if ($page === null) { if ($page === NULL) {
$pagination = new Pagination(['totalCount' => $count, 'pageSize'=>$num, 'forcePageParam'=>false]); $pagination = new Pagination(['totalCount' => $count, 'pageSize' => $num, 'forcePageParam' => FALSE]);
$offset = $pagination->offset; $offset = $pagination->offset;
$return['pagination'] = $pagination; $return['pagination'] = $pagination;
} else { } else {
...@@ -180,4 +180,13 @@ class Course extends \yii\db\ActiveRecord ...@@ -180,4 +180,13 @@ class Course extends \yii\db\ActiveRecord
{ {
return $this->hasMany(Teacher::className(), ['id' => 'teacher_id'])->viaTable(CourseTeacher::tableName(), ['course_id' => 'id']); return $this->hasMany(Teacher::className(), ['id' => 'teacher_id'])->viaTable(CourseTeacher::tableName(), ['course_id' => 'id']);
} }
/**
* 关联用户
* @return \yii\db\ActiveQuery
*/
public function getUser()
{
return $this->hasOne(User::className(), ['id' => 'user_id']);
}
} }
...@@ -104,4 +104,5 @@ class Courseware extends ActiveRecord ...@@ -104,4 +104,5 @@ class Courseware extends ActiveRecord
return $result === NULL ? FALSE : TRUE; return $result === NULL ? FALSE : TRUE;
} }
} }
...@@ -48,7 +48,7 @@ class Favorite extends \yii\db\ActiveRecord ...@@ -48,7 +48,7 @@ class Favorite extends \yii\db\ActiveRecord
public function rules() public function rules()
{ {
return [ return [
[['user_id', 'courseware_id',], 'required'], [['user_id', 'courseware_id', 'course_id'], 'required'],
[['user_id', 'courseware_id', 'created_at'], 'integer'], [['user_id', 'courseware_id', 'created_at'], 'integer'],
]; ];
} }
...@@ -62,6 +62,7 @@ class Favorite extends \yii\db\ActiveRecord ...@@ -62,6 +62,7 @@ class Favorite extends \yii\db\ActiveRecord
'id' => 'ID', 'id' => 'ID',
'user_id' => 'User ID', 'user_id' => 'User ID',
'courseware_id' => 'CourseWare ID', 'courseware_id' => 'CourseWare ID',
'course_id' => 'Course ID',
'created_at' => 'Created At', 'created_at' => 'Created At',
]; ];
} }
...@@ -73,7 +74,6 @@ class Favorite extends \yii\db\ActiveRecord ...@@ -73,7 +74,6 @@ class Favorite extends \yii\db\ActiveRecord
public static function findByUserId($userId, $page, $num) public static function findByUserId($userId, $page, $num)
{ {
$tableA = self::tableName(); $tableA = self::tableName();
$tableB = Course::tableName();
$condition = "$tableA.user_id=:user_id"; $condition = "$tableA.user_id=:user_id";
$params = [':user_id' => $userId]; $params = [':user_id' => $userId];
//获取总数 //获取总数
...@@ -82,8 +82,7 @@ class Favorite extends \yii\db\ActiveRecord ...@@ -82,8 +82,7 @@ class Favorite extends \yii\db\ActiveRecord
$pagination = new Pagination(['totalCount' => $count, 'pageSize' => $num, 'forcePageParam' => FALSE]); $pagination = new Pagination(['totalCount' => $count, 'pageSize' => $num, 'forcePageParam' => FALSE]);
$data = self::find() $data = self::find()
->select("courseware_id,$tableA.created_at as time ,$tableB.name,$tableB.price,$tableB.free_time,$tableB.intro,$tableB.preview_pic,$tableB.created_at") ->where($condition, $params)->limit($num)->offset($start)->orderBy("$tableA.created_at DESC")->joinWith('course')->asArray()->all();
->where($condition, $params)->limit($num)->offset($start)->orderBy("$tableA.created_at DESC")->join('left join', $tableB, "$tableA.user_id=$tableB.id")->asArray()->all();
return [ return [
'count' => $count, 'count' => $count,
'data' => $data, 'data' => $data,
...@@ -103,4 +102,13 @@ class Favorite extends \yii\db\ActiveRecord ...@@ -103,4 +102,13 @@ class Favorite extends \yii\db\ActiveRecord
->where("user_id=:user_id and courseware_id=:courseware_id", [':user_id' => $userId, ':courseware_id' => $coursewareId]) ->where("user_id=:user_id and courseware_id=:courseware_id", [':user_id' => $userId, ':courseware_id' => $coursewareId])
->one(); ->one();
} }
/**
* 获取课程信息
* @return $this
*/
public function getCourse()
{
return $this->hasOne(Course::className(), ['id' => 'course_id'])->with('teachers')->with('user');
}
} }
...@@ -18,6 +18,7 @@ class m160927_114841_browse_record_init extends Migration ...@@ -18,6 +18,7 @@ class m160927_114841_browse_record_init extends Migration
'id' => $this->primaryKey()->unsigned(), 'id' => $this->primaryKey()->unsigned(),
'user_id' => $this->integer()->notNull()->unsigned(), 'user_id' => $this->integer()->notNull()->unsigned(),
'course_id' => $this->integer()->notNull()->unsigned(), 'course_id' => $this->integer()->notNull()->unsigned(),
'courseware_id' => $this->integer()->notNull()->unsigned(),
'time' => $this->integer()->notNull(), 'time' => $this->integer()->notNull(),
], $tableOptions); ], $tableOptions);
$this->addCommentOnTable($this->table, '浏览记录表'); $this->addCommentOnTable($this->table, '浏览记录表');
......
...@@ -17,6 +17,7 @@ class m160927_120435_favorite_init extends Migration ...@@ -17,6 +17,7 @@ class m160927_120435_favorite_init extends Migration
$this->createTable($this->table, [ $this->createTable($this->table, [
'id' => $this->primaryKey()->unsigned(), 'id' => $this->primaryKey()->unsigned(),
'user_id' => $this->integer()->notNull()->unsigned(), 'user_id' => $this->integer()->notNull()->unsigned(),
'course_id' => $this->integer()->notNull()->unsigned(),
'courseware_id' => $this->integer()->notNull()->unsigned(), 'courseware_id' => $this->integer()->notNull()->unsigned(),
'created_at' => $this->integer()->notNull(), 'created_at' => $this->integer()->notNull(),
], $tableOptions); ], $tableOptions);
......
...@@ -228,6 +228,7 @@ class HomeController extends \yii\web\Controller ...@@ -228,6 +228,7 @@ class HomeController extends \yii\web\Controller
$favorite = new Favorite(); $favorite = new Favorite();
$favorite->user_id = $userId; $favorite->user_id = $userId;
$favorite->courseware_id = $coursewareId; $favorite->courseware_id = $coursewareId;
$favorite->course_id = $courseware->course_id;
$result = $favorite->save(); $result = $favorite->save();
//统计总数 //统计总数
......
...@@ -91,8 +91,10 @@ class UserCenterController extends Controller ...@@ -91,8 +91,10 @@ class UserCenterController extends Controller
{ {
$page = Yii::$app->request->get('page', 0); $page = Yii::$app->request->get('page', 0);
$num = Yii::$app->request->get('num', 10); $page--;
$num = Yii::$app->request->get('per-page', 10);
$favorite = Favorite::findByUserId(Yii::$app->user->getId(), $page, $num); $favorite = Favorite::findByUserId(Yii::$app->user->getId(), $page, $num);
// var_dump($favorite);exit;
return $this->render('favorite', [ return $this->render('favorite', [
'favorite' => $favorite 'favorite' => $favorite
]); ]);
......
...@@ -5,118 +5,54 @@ ...@@ -5,118 +5,54 @@
* Date: 2016/9/27 * Date: 2016/9/27
* Time: 下午4:16 * Time: 下午4:16
*/ */
use \frontend\assets\AppAsset; use yii\widgets\LinkPager;
$this->title = '收藏记录'; $baseUrl = \yii\helpers\Url::base();
$this->title = '收藏记录';
\frontend\assets\AppAsset::addScript($this, '@web/assets/user_favorite.js') \frontend\assets\AppAsset::addScript($this, '@web/assets/user_favorite.js')
?>
<div class="cls-list-box">
<div class="col-md-4">
<div class="cls-box-main sm-box">
<div class="video-img-box">
<img src="<?= AppAsset::getStaticUrl('img/videoimg.jpg') ?>">
<div class="video-list-cnt">
<div class="tit"><a href="#">英国为什么比中国先进入工业时代?</a></div>
<div class="price">¥182.97</div>
</div>
<div class="outline">
<span>购买日期:2016年9月12日 16:02</span>
</div>
<div class="avatar"><img src="<?= AppAsset::getStaticUrl('img/avatar2.jpg') ?>"></div>
<div class="play-mask">
<a href="#"><i class="glyphicon glyphicon-play"></i></a>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="cls-box-main sm-box">
<div class="video-img-box">
<img src="<?= AppAsset::getStaticUrl('img/videoimg.jpg') ?>">
<div class="video-list-cnt">
<div class="tit"><a href="#">英国为什么比中国先进入工业时代?</a></div>
<div class="price">¥182.97</div>
</div>
<div class="outline">
<span>购买日期:2016年9月12日 16:02</span>
</div>
<div class="avatar"><img src="<?= AppAsset::getStaticUrl('img/avatar2.jpg') ?>"></div>
<div class="play-mask">
<a href="#"><i class="glyphicon glyphicon-play"></i></a>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="cls-box-main sm-box">
<div class="video-img-box">
<img src="<?= AppAsset::getStaticUrl('img/videoimg.jpg') ?>">
<div class="video-list-cnt">
<div class="tit"><a href="#">英国为什么比中国先进入工业时代?</a></div>
<div class="price">¥182.97</div>
</div>
<div class="outline">
<span>购买日期:2016年9月12日 16:02</span>
</div>
<div class="avatar"><img src="<?= AppAsset::getStaticUrl('img/avatar2.jpg') ?>"></div>
<div class="play-mask">
<a href="#"><i class="glyphicon glyphicon-play"></i></a>
</div>
</div>
</div>
</div>
<div class="col-md-4"> ?>
<div class="cls-box-main sm-box">
<div class="video-img-box">
<img src="<?= AppAsset::getStaticUrl('img/videoimg.jpg') ?>">
<div class="video-list-cnt">
<div class="tit"><a href="#">英国为什么比中国先进入工业时代?</a></div>
<div class="price">¥182.97</div>
</div>
<div class="outline">
<span>购买日期:2016年9月12日 16:02</span>
</div>
<div class="avatar"><img src="<?= AppAsset::getStaticUrl('img/avatar2.jpg') ?>"></div> <div class="cls-list-box clearfix">
<?php foreach ($favorite['data'] as $key => $value): ?>
<div class="col-md-4">
<div class="cls-box-main sm-box">
<div class="video-img-box">
<img src="<?= Yii::$app->qiniu->getUrl('public', $value['course']['preview_pic']) ?>">
<div class="video-list-cnt">
<div class="tit"><a href="<?php echo $baseUrl.'/home/video?courseId='.$value['course']['id'];?>"><?=$value['course']['name']?></a></div>
<div class="teacher">
讲师:<?php foreach ($value['course']['teachers'] as $teaKey => $teaValue): ?>
<?php if ($teaKey > 0): ?>
,<?= $teaValue['name']?>
<?php else: ?>
<?= $teaValue['name']?>
<?php endif ?>
<?php endforeach; ?>
</div>
<div class="price"><?=$value['course']['price']?></div>
</div>
<div class="outline">
<span><?=$value['course']['user']['username']?>收藏了该内容</span>
</div>
<div class="play-mask">
<a href="<?php echo $baseUrl.'/home/video?courseId='.$value['course']['id'];?>"><i class="glyphicon glyphicon-play"></i></a>
</div>
<div class="play-mask">
<a href="#"><i class="glyphicon glyphicon-play"></i></a>
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="col-md-4">
<div class="cls-box-main sm-box">
<div class="video-img-box">
<img src="<?= AppAsset::getStaticUrl('img/videoimg.jpg') ?>">
<div class="video-list-cnt">
<div class="tit"><a href="#">英国为什么比中国先进入工业时代?</a></div>
<div class="price">¥182.97</div>
</div>
<div class="outline">
<span>购买日期:2016年9月12日 16:02</span>
</div>
<div class="avatar"><img src="<?= AppAsset::getStaticUrl('img/avatar2.jpg') ?>"></div>
<div class="play-mask"> <?php endforeach; ?>
<a href="#"><i class="glyphicon glyphicon-play"></i></a> </div>
</div>
</div> <div class="container text-center">
</div> <?php echo LinkPager::widget([
</div> 'pagination' => $favorite['pagination'],
]); ?>
</div> </div>
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