VideoLearnRecord.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php namespace App\Http\Controllers\Admin;
  2. use App\Models\Custom;
  3. use App\Models\Video\LearnRecord as Model;
  4. use App\Models\Video\Course as VideoCourse;
  5. /**
  6. * 学习记录
  7. *
  8. * @author 刘相欣
  9. *
  10. */
  11. class VideoLearnRecord extends Auth{
  12. protected function _initialize(){
  13. parent::_initialize();
  14. $this->assign('breadcrumb1','课程关联');
  15. $this->assign('breadcrumb2','学习记录');
  16. }
  17. /**
  18. * 列表页
  19. *
  20. * */
  21. public function index(Model $Model,VideoCourse $VideoCourse,Custom $Custom){
  22. // 接收参数
  23. $courseId = request('course_id',0);
  24. $customCode = request('custom_code','');
  25. $customName = request('custom_name','');
  26. // 转码
  27. $customCode = $Custom->codeToId($customCode);
  28. // 查询条件
  29. $map = [];
  30. // 组合条件
  31. if( $courseId ) $map[] = ['video_course.id','=',$courseId];
  32. if( $customCode ) $map[] = ['custom.uid','=',$customCode];
  33. if( $customName ) $map[] = ['custom.username','LIKE','%'.$customName.'%'];
  34. // 查询数据
  35. $list = $Model->query()
  36. ->join('video_course','video_course.id','=','video_learn_record.course_id')
  37. ->join('custom','custom.uid','=','video_learn_record.custom_uid')
  38. ->where($map)->select(['video_learn_record.*','video_course.name as course_name','custom.username as custom_name'])
  39. ->orderByDesc('id')->paginate(config('page_num',10))->appends(request()->all());
  40. // 循环处理数据
  41. foreach ($list as $key => $value) {
  42. // 时间
  43. $value['custom_code'] = $Custom->idToCode($value['custom_uid']);
  44. $value['right_ratio'] = $value['question_total'] ? number_format(($value['isanswer_total'] / $value['question_total'])*100 ,2) : 0;
  45. $value['video_inittime'] = str_pad((floor($value['video_inittime'] / 60)),2, '0', STR_PAD_LEFT) .':'. str_pad(($value['video_inittime'] % 60),2, '0', STR_PAD_LEFT);
  46. $value['video_lasttime'] = str_pad((floor($value['video_lasttime'] / 60)),2, '0', STR_PAD_LEFT) .':'. str_pad(($value['video_lasttime'] % 60),2, '0', STR_PAD_LEFT);
  47. // 重组
  48. $list[$key] = $value;
  49. }
  50. // 查询数据
  51. $courseList = $VideoCourse->query()->orderByDesc('id')->get(['id','name']);
  52. // 分配数据
  53. $this->assign('list',$list);
  54. $this->assign('courseList',$courseList);
  55. $this->assign('empty', '<tr><td colspan="20">~~暂无数据</td></tr>');
  56. // 加载模板
  57. return $this->fetch();
  58. }
  59. }