all_homework_list=HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT * FROM (SELECT homework_attaches.*,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_idIN#{teachers}) AS t_score,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_idNOTIN#{teachers}) AS s_score
FROMhomework_attachesWHEREbid_id=#{@bid.id} ORDER BY #{order_by}) AS table1
FROMhomework_attachesWHEREbid_id=#{@bid.id}
ORDERBY#{order_by}) AS table1
WHEREtable1.t_scoreISNULL")
@homework_list=paginateHelperall_homework_list,10
@ -31,13 +31,14 @@ class HomeworkAttachController < ApplicationController
#获取已评作业列表
defget_batch_homeworks
sort,direction=params[:sort],params[:direction]
teachers=find_course_teachers@course
teacher_proportion=get_teacher_proportion@bid
order_by=sort=='socre'?"(CASE WHEN t_score IS NULL THEN 0 ELSE t_score * #{teacher_proportion} END + CASE WHEN s_score IS NULL THEN 0 ELSE s_score * #{1-teacher_proportion} END) #{direction}":"created_at #{direction}"
teachers=find_course_teachers@course
all_homework_list=HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT * FROM (SELECT homework_attaches.*,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_idIN#{teachers} and stars IS NOT NULL) AS t_score,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_idNOTIN#{teachers}) AS s_score
FROMhomework_attachesWHEREbid_id=#{@bid.id}
ORDERBY(CASEWHENt_scoreISNULLTHEN0ELSEt_score*#{teacher_proportion} END + CASE WHEN s_score IS NULL THEN 0 ELSE s_score * #{1 - teacher_proportion} END) DESC,created_at ASC) AS table1
ORDERBY#{order_by}) AS table1
WHEREtable1.t_scoreISNOTNULL")
@homework_list=paginateHelperall_homework_list,10
@direction=direction=='asc'?'desc':'asc'
@ -49,13 +50,14 @@ class HomeworkAttachController < ApplicationController
#获取所有作业列表
defget_homeworks
sort,direction=params[:sort],params[:direction]
teachers=find_course_teachers@course
teacher_proportion=get_teacher_proportion@bid
order_by=sort=='socre'?"(CASE WHEN t_score IS NULL THEN 0 ELSE t_score * #{teacher_proportion} END + CASE WHEN s_score IS NULL THEN 0 ELSE s_score * #{1-teacher_proportion} END) #{direction}":"created_at #{direction}"
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_idin#{teachers}) AS t_score,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_idnotin#{teachers}) AS s_score
FROMhomework_attachesWHEREbid_id=#{@bid.id}
ORDERBY(CASEWHENt_scoreISNULLTHEN0ELSEt_score*#{teacher_proportion} END + CASE WHEN s_score IS NULL THEN 0 ELSE s_score * #{1 - teacher_proportion} END) DESC,created_at ASC")