diff --git a/app/controllers/weapps/courses_controller.rb b/app/controllers/weapps/courses_controller.rb index 357b2a503..97e9884b8 100644 --- a/app/controllers/weapps/courses_controller.rb +++ b/app/controllers/weapps/courses_controller.rb @@ -1,8 +1,8 @@ class Weapps::CoursesController < Weapps::BaseController before_action :require_login - before_action :set_course, except: [:create] - before_action :user_course_identity, except: [:basic_info, :create] - before_action :check_account, only: [:create] + before_action :set_course, except: [:create, :check_invite_code] + before_action :user_course_identity, except: [:basic_info, :create, :check_invite_code] + before_action :check_account, only: [:create, :check_invite_code] before_action :teacher_allowed, only: [:edit, :update] before_action :teacher_or_admin_allowed, only: [:change_member_roles, :delete_course_teachers] @@ -38,6 +38,23 @@ class Weapps::CoursesController < Weapps::BaseController @categories = current_course.shixun_course_modules.first&.course_second_categories end + def check_invite_code + tip_exception(-1, "邀请码不能为空") if params[:invite_code].blank? + invite_code = params[:invite_code] + course = Course.find_by(invite_code: invite_code, is_delete: 0, invite_code_halt: 0) + course_group = CourseGroup.find_by(invite_code: invite_code) + if course.blank? + tip_exception(-1, "邀请码无效") if course_group.blank? + + course = Course.find_by(id: course_group.course_id, is_delete: 0, invite_code_halt: 0) + tip_exception(-1, "邀请码无效") if course.blank? + end + + tip_exception(-1, "课堂已结束,无法加入") if course.is_end + + render_ok + end + # 教师列表 def teachers @course = current_course diff --git a/config/routes.rb b/config/routes.rb index 9eef49bfc..d5c4a1d2e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1043,6 +1043,10 @@ Rails.application.routes.draw do get :course_groups get :basic_info end + + collection do + get :check_invite_code + end end resources :homework_commons do