@ -3,11 +3,11 @@ class CoursesService
include CoursesHelper
include HomeworkAttachHelper
include ApiHelper
#TODO:尚未整合权限系统
#参数school_id为0或不传时返回所有课程, 否则返回对应学校的课程
#参数per_page_count分页功能, 每页显示的课程数
#参数page分页功能, 当前页码
def course_list params
def course_list params , current_user
@school_id = params [ :school_id ]
per_page_option = params [ :per_page_count ] || 10
page_no = params [ :page ] || 1
@ -25,13 +25,13 @@ class CoursesService
@courses = @courses . offset ( @course_pages . offset ) . limit ( @course_pages . per_page )
course_list = [ ]
@courses . each do | course |
course_list << { :course = > course , :img_url = > url_to_avatar ( course ) }
course_list << { :course = > course , :img_url = > url_to_avatar ( course ) ,:current_user_is_member = > current_user . member_of_course? ( course ) , :current_user_is_teacher = > is_course_teacher ( current_user , course ) }
end
course_list
end
#搜索课程
def search_course params
def search_course params , current_user
courses_all = Course . all_course
name = params [ :name ]
if name . blank?
@ -44,6 +44,11 @@ class CoursesService
@courses_all = @courses ;
end
@courses_all
course_list = [ ]
@courses_all . each do | course |
course_list << { :course = > course , :img_url = > url_to_avatar ( course ) , :current_user_is_member = > current_user . member_of_course? ( course ) , :current_user_is_teacher = > is_course_teacher ( current_user , course ) }
end
course_list
end
#获取头像
@ -117,7 +122,7 @@ class CoursesService
scope = @course ? @course . news . course_visible ( current_user ) : News . course_visible ( current_user )
news = [ ]
scope . each do | n |
news << { : title = > n . title , :author_name = > n . author . name , :author_id = > n . author . id , :description = > n . description , :created_on = > format_time ( n . created_on ) , :comments_count = > n . comments_count }
news << { : id = > n . id , : title = > n . title , :author_name = > n . author . name , :author_id = > n . author . id , :description = > n . description , :created_on = > format_time ( n . created_on ) , :comments_count = > n . comments_count }
end
news
end
@ -158,7 +163,7 @@ class CoursesService
unless ( course . is_public == 1 || currnet_user . member_of_course? ( @course ) || currnet_user . admin? )
raise '403'
end
course
{ :course = > course , :img_url = > url_to_avatar ( course ) , :current_user_is_member = > current_user . member_of_course? ( course ) , :current_user_is_teacher = > is_course_teacher ( current_user , course ) }
end
#创建课程
@ -206,7 +211,7 @@ class CoursesService
@course . members << m
@course . course_infos << course
end
@course
{ :course = > @course , :img_url = > url_to_avatar ( @course ) , :current_user_is_member = > current_user . member_of_course? ( @course ) , :current_user_is_teacher = > is_course_teacher ( current_user , @course ) }
end
#验证编辑课程的权限
@ -243,7 +248,7 @@ class CoursesService
course_status = CourseStatus . create ( :course_id = > course . id , :grade = > 0 )
end
end
course
{ :course = > course , :img_url = > url_to_avatar ( course ) , :current_user_is_member = > current_user . member_of_course? ( course ) , :current_user_is_teacher = > is_course_teacher ( current_user , course ) }
end
#退出课程
@ -340,12 +345,18 @@ class CoursesService
end
news_count = course . news . count
message_count = course . journals_for_messages . count
{ :course_name = > course . name , :need_anonymous_comments_count = > need_anonymous_comments_count , :student_commit_number = > student_commit_number , :news_count = > news_count , :message_count = > message_count }
result = [ ]
result << { :course_name = > course . name , :course_id = > course . id , :course_img_url = > url_to_avatar ( course ) , :type = > 1 , :count = > message_count }
result << { :course_name = > course . name , :course_id = > course . id , :course_img_url = > url_to_avatar ( course ) , :type = > 2 , :count = > need_anonymous_comments_count }
result << { :course_name = > course . name , :course_id = > course . id , :course_img_url = > url_to_avatar ( course ) , :type = > 3 , :count = > student_commit_number }
result << { :course_name = > course . name , :course_id = > course . id , :course_img_url = > url_to_avatar ( course ) , :type = > 4 , :count = > news_count }
#{:course_name => course.name,:need_anonymous_comments_count=>need_anonymous_comments_count,:student_commit_number=>student_commit_number,:news_count=> news_count,:message_count=>message_count}
result
end
private
def show_homework_info course , bid , current_user , is_course_teacher
author = bid . author . lastname + bid . author . firstname
author _real_name = bid . author . lastname + bid . author . firstname
many_times = course . homeworks . index ( bid ) + 1
name = bid . name
homework_count = bid . homeworks . count #已提交的作业数量
@ -358,7 +369,7 @@ class CoursesService
end
#end
open_anonymous_evaluation = bid . open_anonymous_evaluation
{ :course_name = > course . name , :id = > bid . id , : course_teacher = > author , :homework_times = > many_times , :homework_name = > name , :homework_count = > homework_count , :student_questions_count = > student_questions_count ,
{ :course_name = > course . name , :id = > bid . id , : author = > bid . author , :author_real_name = > author_real_name , :homework_times = > many_times , :homework_name = > name , :homework_count = > homework_count , :student_questions_count = > student_questions_count ,
:description = > description , :homework_state = > state , :open_anonymous_evaluation = > open_anonymous_evaluation , :homework_for_anonymous_comments = > homework_for_anonymous_comments }
end