@ -754,6 +759,19 @@ class ApplicationController < ActionController::Base
end
end
end
end
defpaginateHelper_for_membersobj,pre_size=10
@obj_count=StudentsForCourse.find_by_sql("select count(id) as mem_count from students_for_courses where course_id = #{@course.id}")[0][:mem_count].to_s.to_i
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id NOTIN#{teachers}) AS s_score
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id NOTIN#{teachers}) AS s_score,
sql_select="SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
WHEREmembers.course_id=#{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
ANDhomework_attaches.bid_idin(SELECTbid_idFROMhomework_for_coursesWHEREcourse_id=#{@course.id}) GROUP BY members.user_id
UNIONall
SELECTmembers.*,0asscoreFROMmembers,homework_attaches,students_for_coursesWHEREmembers.course_id=#{@course.id} AND
students_for_courses.course_id=#{@course.id} and members.user_id = students_for_courses.student_id AND
sql_select="SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
WHEREmembers.course_id=#{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
ANDhomework_attaches.bid_idin(SELECTbid_idFROMhomework_for_coursesWHEREcourse_id=#{@course.id}) GROUP BY members.user_id
UNIONall
SELECTmembers.*,0asscoreFROMmembers,homework_attaches,students_for_coursesWHEREmembers.course_id=#{@course.id} AND
students_for_courses.course_id=#{@course.id} and members.user_id = students_for_courses.student_id AND
sql_select="SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
WHEREmembers.course_id=#{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
andmembers.course_group_id=#{groupid} AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id})
@ -42,10 +47,9 @@ class HomeworkAttachController < ApplicationController
elsifsort=='time'
elsifsort=='time'
order_by="created_at #{direction}"
order_by="created_at #{direction}"
end
end
teachers=find_course_teachers@course
all_homework_list=HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT * FROM (SELECT homework_attaches.*,
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_id IN(#{teachers}) and stars IS NOT NULL) AS t_score,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id NOTIN(#{teachers})) AS s_score
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id in(#{teachers})) AS t_score,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id notin(#{teachers})) AS s_score
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id IN(#{teachers})) AS t_score,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id NOTIN(#{teachers})) AS s_score,
(SELECTstarsFROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id=#{User.current.id}) AS m_score
(SELECTstarsFROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id=#{User.current.id} AND is_teacher_score = 0) AS m_score
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id IN(#{teachers})) AS t_score,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id NOTIN(#{teachers})) AS s_score
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id IN(#{teachers})) AS t_score,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id NOTIN(#{teachers})) AS s_score
jours=@homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据
jours=@homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据
@jour=paginateHelperjours,5#留言
@jour=paginateHelperjours,5#留言
@ -385,10 +396,9 @@ class HomeworkAttachController < ApplicationController
jours=@homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据
jours=@homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据
@jour=paginateHelperjours,5#留言
@jour=paginateHelperjours,5#留言
else
else
@ -425,41 +435,67 @@ class HomeworkAttachController < ApplicationController
@teacher_stars=@stars_reates.where("rater_id in (#{teachers})")#老师评分列表
@student_stars=@stars_reates.where("rater_id not in (#{teachers})")#学生评分列表
jours=@homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据
jours=@homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据
(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
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_idnotin(#{teachers})) AS s_score
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id IN(#{teachers})) AS t_score,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id NOTIN(#{teachers})) AS s_score,
(SELECTstarsFROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id=#{User.current.id}) AS m_score
(SELECTstarsFROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id=#{User.current.id} AND is_teacher_score = #{is_teacher}) AS m_score
FROMhomework_attaches
FROMhomework_attaches
WHEREhomework_attaches.id=#{@homework.id}").first
WHEREhomework_attaches.id=#{@homework.id}").first
else#其他的不用管
else#其他的不用管
@ -552,7 +588,7 @@ class HomeworkAttachController < ApplicationController
@ -560,18 +596,65 @@ class HomeworkAttachController < ApplicationController
elsifsort=='time'
elsifsort=='time'
order_by="created_at #{direction}"
order_by="created_at #{direction}"
end
end
all_homework_list =HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT * FROM (SELECT homework_attaches.*,
@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_id IN(#{teachers})) AS t_score,
(SELECTAVG(stars)FROMseems_rateable_ratesWHERErateable_type='HomeworkAttach'ANDrateable_id=homework_attaches.idANDrater_id NOTIN(#{teachers})) AS s_score
sql="(#{db_table}.#{db_field} <> '' AND CAST(CASE #{db_table}.#{db_field} WHEN '' THEN '0' ELSE #{db_table}.#{db_field} END AS decimal(30,3)) = #{value.first.to_i})"
sql="(#{db_table}.#{db_field} <> '' AND CAST(CASE #{db_table}.#{db_field} WHEN '' THEN '0' ELSE #{db_table}.#{db_field} END AS decimal(30,3)) BETWEEN #{value.first.to_f-1e-5} AND #{value.first.to_f+1e-5})"
sql="(#{db_table}.#{db_field} <> '' AND CAST(CASE #{db_table}.#{db_field} WHEN '' THEN '0' ELSE #{db_table}.#{db_field} END AS decimal(30,3)) BETWEEN #{value.first.to_f-1e-5} AND #{value.first.to_f+1e-5})"