diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 94ced56fd..a8a586759 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -625,14 +625,12 @@ class HomeworkCommonsController < ApplicationController @homework.score_open = params[:score_open] @homework.save! - # if score_change - # @homework.student_works.has_committed.each do |student_work| - # HomeworksService.new.set_shixun_final_score student_work - # end - # end + if score_change && @homework.end_or_late_none_group + UpdateShixunWorkScoreJob.perform_now(@homework.id) + end # 更新所有学生的效率分(作业允许补交且补交已截止 或者 作业不允许补交且提交已截止) - if update_eff_score && @homework.end_or_late_none_group + if !score_change && update_eff_score && @homework.end_or_late_none_group HomeworksService.new.update_student_eff_score HomeworkCommon.find_by(id: @homework.id) end diff --git a/app/jobs/update_shixun_work_score_job.rb b/app/jobs/update_shixun_work_score_job.rb new file mode 100644 index 000000000..1701915c9 --- /dev/null +++ b/app/jobs/update_shixun_work_score_job.rb @@ -0,0 +1,10 @@ +class UpdateShixunWorkScoreJob < ApplicationJob + queue_as :default + + def perform(homework_id) + homework = HomeworkCommon.find_by(id: homework_id) + return if homework.blank? + + homework.update_homework_work_score + end +end diff --git a/app/models/student_work.rb b/app/models/student_work.rb index 8477da774..d4f372823 100644 --- a/app/models/student_work.rb +++ b/app/models/student_work.rb @@ -111,14 +111,14 @@ class StudentWork < ApplicationRecord # 作品总体评价 def overall_appraisal - case self.work_score.to_i - when (90..100) + case (self.work_score.to_f / homework_common.total_score).round(2) + when (0.90..1.00) '优秀' - when (70...90) + when (0.70...0.90) '良好' - when (60...70) + when (0.60...0.70) '及格' - when (0...60) + when (0.00...0.60) '不及格' end end diff --git a/app/views/student_works/shixun_work_report.json.jbuilder b/app/views/student_works/shixun_work_report.json.jbuilder index 40b0e28c2..162e2ab1c 100644 --- a/app/views/student_works/shixun_work_report.json.jbuilder +++ b/app/views/student_works/shixun_work_report.json.jbuilder @@ -11,13 +11,13 @@ if @shixun json.myself_experience @work.myshixun.try(:total_score).to_i json.total_experience @shixun.all_score json.work_score number_with_precision @work.work_score.to_f.round(2), precision: 1 - json.all_work_score number_with_precision 100, precision: 1 + json.all_work_score number_with_precision @homework.total_score, precision: 1 json.time_consuming @work.myshixun_consume json.evaluate_count @user_evaluate_count.to_i if @homework.work_efficiency json.eff_score_full number_with_precision @homework.eff_score, precision: 1 json.eff_score number_with_precision @work.eff_score.to_f.round(2), precision: 1 - json.challenge_score_full number_with_precision (100 - @homework.eff_score), precision: 1 + json.challenge_score_full number_with_precision (@homework.total_score - @homework.eff_score), precision: 1 json.challenge_score number_with_precision @work.final_score.to_f.round(2), precision: 1 end