当你还不能写出自己满意的程序时,你就不要去睡觉。------------------------自我勉励
/**
* ajax分页获取用户信息
* @return [type] [description]
*/
public function onGetUsers()
{
$page = post('page',1);
// $courseType= 0;//2;// post('type','');
// $course = 0;// '1_44';//post('course');
// $associate = 2;// post('associate');
// $keyword='tes';post('keyword');
//
$page = post('page',1);
$courseType= post('type','');
$course = post('course');
$associate = post('associate');
$keyword= post('keyword');
$query = (new User())->newQuery();
//课程类型筛选
if($courseType != 0){
$query->whereIn('id', function ($query) use ($courseType){
// 用户的id
$query->select('user_id')
->from('dapeng_user_period')
->whereIn('course_id', function ($query) use ($courseType){
//课程的id
$query->select('id')
->from('dapeng_courses')
->where('type_id',$courseType);
});
});
}
//筛选阶段、课程名称
if($course != 0){
//课程名称
if(strstr($course,'_')){
$courseId= explode('_', $course)[1];
$query->whereIn('id', function ($query) use ($courseId){
$query->select('user_id')
->from('dapeng_user_period')
->where('course_id', $courseId);
});
}
else{ //阶段
$levelId = $course;
$query->whereIn('id', function ($query) use ($levelId){
$query->select('user_id')
->from('dapeng_user_period')
->whereIn('course_id', function ($query) use ($levelId){
$query->select('id')
->from('dapeng_courses')
->where('level_id',$levelId);
});
});
}
}
if($associate != 0){
if($associate == 1){//已关联
$query->whereIn('id', function ($query){
$query->select('user_id')
->from('dapeng_user_period');
});
}
if($associate == 2){ //未关联
$query->whereNotIn('id', function ($query){
$query->select('user_id')
->from('dapeng_user_period');
});
}
}
//模糊搜索
if($keyword != ''){
$query->Where(function ($query) use($keyword){
$query->where('name', 'like', '%'.$keyword.'%');
$query->OrWhere('qq', 'like', '%'.$keyword.'%');
$query->OrWhere('phone', 'like', '%'.$keyword.'%');
});
}
$users = $query->orderBy('id', 'desc')
->paginate(self::PER_PAGE_NUM, $page);
return ['users'=> $this->makePartial('list_user',['users' => $users,'ischecked' => false]),
'total' => $users->total()];
}
//使用回调函数传参形式,进行编写
//获取初始化课程进度数据
public function getCourseProduces(){
$page = post('page',1);
$users = User::whereIn('id', function ($query) {
$query->select('user_id')
->from('dapeng_user_period')
->whereIn('course_id', function ($query){
//课程的id
$query->select('id')
->from('dapeng_courses')
->where('type_id',2);
});
})
->with('userperiod.period')
->with('userperiod.course.level')
->orderBy('id', 'desc')
->paginate(self::PER_PAGE_NUM, $page);
return $users;
}
/**
* 获取个人进度详情信息(Vip)
*
*/
public function getVipCourses(){
$page = post('page',1);
$userId = $this->formatParam();
if(!empty($userId)){
$courses = WatchRecordModel::where('user_id',$userId)->whereIn('lesson_id', function ($query) {
$query->select('id')
->from('dapeng_course_lessons')
->whereIn('course_id', function ($query){
//课程的id
$query->select('id')
->from('dapeng_courses')
->where('type_id',2)
->where('status',2);
});
})
->with('user')
->with('lesson.course')
->with('lesson.unit')
->get()
->toArray();
return $courses;
}
return '0';
}
//前端显示与php结合
<link rel="stylesheet" type="text/css" href='/plugins/dapeng/assets/css/watch_record.css'>
<?php $courseProduces =$this->getCourseProduces();
$users = $this->getProduces();
$vipCourses = $this->getVipCourses();
$publicCourses = $this->getPublicCourses();
?>
<div class="header-tips">
<div class="tips-left">
个人进度详情
</div>
</div>
<div class="control-list">
<?= $this->makePartial('list_schdule_content',['users' => $users]) ?>
</div>
<div class="control-tabs content-tabs" data-control="tab">
<?= $this->makePartial('list_course_content',['vipCourses' => $vipCourses,'publicCourses' => $publicCourses]) ?>
</div>
<script type="text/javascript">
</script>
<script src="/plugins/dapeng/assets/js/user/watchRecord.js">
</script>