diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 0b3e35519..a1bd16e94 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -583,6 +583,8 @@ class CoursesController < ApplicationController # 学生身份的处理 student_member = course_members.where(role: %i[STUDENT]).take + + # 不存在则创建学生身份 if params[:roles].include?("STUDENT") && student_member.blank? correspond_teacher_exist = CourseMember.exists?(user_id: params[:user_id], is_active: 1, course_id: @course.id, role: %i[CREATOR PROFESSOR ASSISTANT_PROFESSOR]) new_student = CourseMember.new(user_id: params[:user_id], course_id: @course.id, role: 4) @@ -597,6 +599,9 @@ class CoursesController < ApplicationController student_member.destroy! CourseDeleteStudentDeleteWorksJob.perform_later(@course.id, [params[:user_id]]) # CourseDeleteStudentNotifyJob.perform_later(@course.id, [params[:user_id]], current_user.id) + elsif params[:roles].include?("STUDENT") && student_member.present? && !params[:roles].include?("PROFESSOR") && !params[:roles].include?("ASSISTANT_PROFESSOR") + # 学生身份存在且学生没有教师身份时更新is_active + student_member.update_attributes!(is_active: 1) end normal_status(0, "修改成功")