小程序的开发

dev_forge
cxt 5 years ago
parent 7a07960ac0
commit 0b3e469275

@ -1,17 +1,18 @@
class Weapps::CourseStickiesController < Weapps::BaseController
before_action :require_wechat_login!
before_action :teacher_allowed
# before_action :require_wechat_login!
def create
manage_course = current_user.manage_courses.order("sticky=1 desc, sticky_time desc, created_at desc").first
return render_error("该课堂已置顶,请勿重复操作") if current_course.sticky && manage_course&.id.to_i == current_course.id
current_course.update!(sticky: 1, sticky_time: Time.now)
courses = params[:category] == "study" ? current_user.as_student_courses.started : current_user.manage_courses
courses = courses.order("course_members.sticky=1 desc, course_members.sticky_time desc, courses.created_at desc").first
return render_error("该课堂已置顶,请勿重复操作") if course_member.sticky && courses&.id.to_i == current_course.id
course_member.update!(sticky: 1, sticky_time: Time.now)
render_ok
end
def cancel_sticky
return render_error("该课堂未置顶,无法取消") unless current_course.sticky
current_course.update!(sticky: 1, sticky_time: Time.now)
return render_error("该课堂未置顶,无法取消") unless course_member.sticky
course_member.update!(sticky: 0, sticky_time: nil)
render_ok
end
@ -21,7 +22,8 @@ class Weapps::CourseStickiesController < Weapps::BaseController
@_current_course = Course.find params[:course_id]
end
def teacher_allowed
render_forbidden if current_user.course_identity(current_course) > Course::ASSISTANT_PROFESSOR
def course_member
@_course_member = params[:category] == "study" ? current_course.students.find_by!(user_id: current_user.id) :
current_course.teachers.find_by!(user_id: current_user.id)
end
end

@ -1,5 +1,5 @@
class Weapps::HomesController < Weapps::BaseController
before_action :require_wechat_login!
# before_action :require_wechat_login!
def show
# banner
@ -8,8 +8,8 @@ class Weapps::HomesController < Weapps::BaseController
@advert = WeappSettings::Advert.only_online.first
# 我的课堂
category = params[:category] && ["manage", "study"].include?(params[:category]) ? params[:category] : (current_user.is_teacher? ? "manage" : "study")
@courses = case category
@category = params[:category] && ["manage", "study"].include?(params[:category]) ? params[:category] : (current_user.is_teacher? ? "manage" : "study")
@courses = case @category
when 'study' then
current_user.as_student_courses.started
when 'manage' then
@ -17,7 +17,8 @@ class Weapps::HomesController < Weapps::BaseController
end
@courses = @courses.not_deleted.not_excellent
@course_count = @courses.count
order_str = category == "study" ? "created_at desc" : "sticky=1 desc, sticky_time desc, created_at desc"
order_str = "course_members.sticky=1 desc, course_members.sticky_time desc, courses.created_at desc"
@courses = paginate(@courses.order(order_str).includes(:teacher, :school))
@user = current_user
end
end

@ -18,8 +18,10 @@ end
json.course_count @course_count
json.courses @courses.each do |course|
json.(course, :id, :name, :visits, :course_members_count, :sticky, :sticky_time)
json.(course, :id, :name, :visits, :course_members_count)
json.creator course.teacher.real_name
json.school course.school&.name
course_member = @category == "study" ? course.students.where(user_id: @user.id).first : course.teachers.where(user_id: @user.id).first
json.sticky course_member.sticky
end

Loading…
Cancel
Save