|
|
|
class CourseVideosController < ApplicationController
|
|
|
|
before_action :require_login
|
|
|
|
before_action :validate_params, except: [:watch_histories]
|
|
|
|
before_action :find_course, only: [:create]
|
|
|
|
before_action :find_video, only: [:update, :watch_histories]
|
|
|
|
before_action :teacher_allowed, except: [:watch_histories]
|
|
|
|
|
|
|
|
def create
|
|
|
|
title = params[:name].strip
|
|
|
|
link = params[:link].strip
|
|
|
|
course_second_category_id = params[:category_id] || 0
|
|
|
|
@course.course_videos.create!(title: title, link: link, is_link: 1, user_id: current_user.id, course_second_category_id: course_second_category_id)
|
|
|
|
render_ok
|
|
|
|
end
|
|
|
|
|
|
|
|
def update
|
|
|
|
title = params[:name].strip
|
|
|
|
link = params[:link].strip
|
|
|
|
@video.update!(title: title, link: link)
|
|
|
|
render_ok
|
|
|
|
end
|
|
|
|
|
|
|
|
def watch_histories
|
|
|
|
return normal_status(403, "你没有权限操作") if !current_user.teacher_of_course?(@course)
|
|
|
|
course_video = CourseVideo.find(@video.id)
|
|
|
|
|
|
|
|
@watch_course_videos = course_video.watch_course_videos.includes(:user, :watch_video_histories).where("end_at IS NOT NULL")
|
|
|
|
@count = @watch_course_videos.count
|
|
|
|
|
|
|
|
if params[:group_id].present?
|
|
|
|
@watch_course_videos = @watch_course_videos.joins("
|
|
|
|
JOIN course_members ON course_members.user_id = watch_course_videos.user_id AND course_members.course_id = #{@course.id}
|
|
|
|
").where("course_members.course_group_id = ?", params[:group_id])
|
|
|
|
end
|
|
|
|
@watch_course_videos = paginate @watch_course_videos
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def validate_params
|
|
|
|
tip_exception("视频名称不能为空") if params[:name].blank?
|
|
|
|
tip_exception("链接地址不能为空") if params[:link].blank?
|
|
|
|
end
|
|
|
|
|
|
|
|
def find_video
|
|
|
|
@video = CourseVideo.find params[:id]
|
|
|
|
@course = @video.course
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|