视频添加外链

dev_aliyun2
cxt 5 years ago committed by harry
parent e67caa174d
commit af77f9e62d

@ -0,0 +1,31 @@
class CourseVideosController < ApplicationController
before_action :require_login
before_action :validate_params
before_action :find_course, only: [:create]
before_action :find_video, only: [:update]
before_action :teacher_allowed
def create
title = params[:name].strip
link = params[:link].strip
@course.course_videos.create!(title: title, link: link, is_link: 1, user_id: current_user.id)
render_ok
end
def update
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

@ -102,17 +102,17 @@ class CoursesController < ApplicationController
end
def course_videos
videos = @course.videos
videos = @course.course_videos
@video_module = @course.course_modules.find_by(module_type: "video")
if params[:category_id].present? && params[:category_id].to_i != 0
@category = @video_module&.course_second_categories.find_by(id: params[:category_id])
tip_exception("子目录id有误") if !@category.present?
videos = videos.where(course_videos: {course_second_category_id: params[:category_id].to_i})
videos = videos.where(course_second_category_id: params[:category_id].to_i)
end
videos = custom_sort(videos, params[:sort_by], params[:sort_direction])
@count = videos.count
@videos = paginate videos.includes(user: :user_extension)
@videos = paginate videos.includes(video: [user: :user_extension], user: :user_extension)
end
def delete_course_video

@ -1,4 +1,7 @@
class CourseVideo < ApplicationRecord
belongs_to :course
belongs_to :video
belongs_to :video, optional: true
belongs_to :user, optional: true
validates :title, length: { maximum: 60, too_long: "不能超过60个字符" }
end

@ -1,5 +1,19 @@
json.count @count
json.videos @videos, partial: 'users/videos/video', as: :video
json.videos @videos do |video|
Rails.logger.info("video@############{video.id}, #{video.is_link}")
if video.is_link
json.(video, :id, :title, :link, :user_id)
user = video.user
json.user_name user&.real_name
json.user_img url_to_avatar(user)
json.user_login user&.login
else
json.partial! 'users/videos/video', locals: { video: video.video }
end
end
json.course_id @course.id
if @category.present?
json.category_id @category.id

@ -183,6 +183,9 @@ zh-CN:
attendance_date: '签到日期'
start_time: '开始时间'
end_time: '结束时间'
course_video:
title: '视频名称'
link: '链接地址'

@ -538,6 +538,8 @@ Rails.application.routes.draw do
get 'search_slim'
end
resources :course_videos, only:[:create, :update], shallow: true
resources :course_stages, shallow: true do
member do
post :up_position

@ -0,0 +1,8 @@
class AddLinkToCourseVideos < ActiveRecord::Migration[5.2]
def change
add_column :course_videos, :is_link, :boolean, default: 0
add_column :course_videos, :title, :string
add_column :course_videos, :link, :string
add_column :course_videos, :user_id, :integer, index: true
end
end
Loading…
Cancel
Save