|
|
|
@ -719,31 +719,35 @@ class StudentWorksController < ApplicationController
|
|
|
|
|
tip_exception("参数错误,score和challenge_id不能为空")
|
|
|
|
|
end
|
|
|
|
|
challenge_setting = @homework.homework_challenge_settings.find_by(challenge_id: params[:challenge_id])
|
|
|
|
|
challenge = challenge_setting&.challenge
|
|
|
|
|
tip_exception("不能小于零") if params[:score].to_i < 0
|
|
|
|
|
tip_exception("不能大于关卡分值:#{challenge_setting.score}分") if challenge_setting && challenge_setting.score < params[:score].to_i
|
|
|
|
|
if challenge_setting
|
|
|
|
|
challenge = challenge_setting&.challenge
|
|
|
|
|
tip_exception("不能小于零") if params[:score].to_i < 0
|
|
|
|
|
tip_exception("不能大于关卡分值:#{challenge_setting.score}分") if challenge_setting && challenge_setting.score < params[:score].to_i
|
|
|
|
|
|
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
|
begin
|
|
|
|
|
if params[:type] == "review"
|
|
|
|
|
copy_user = User.find params[:copy_user_id]
|
|
|
|
|
comment = "代码查重结果显示与#{copy_user.try(:show_real_name)}的代码相似度#{params[:code_rate]}%"
|
|
|
|
|
else
|
|
|
|
|
comment = "根据实训报告中最终提交的代码调整第#{challenge.position}关分数"
|
|
|
|
|
end
|
|
|
|
|
challenge_score = @work.challenge_work_scores.create(challenge_id: params[:challenge_id], user_id: current_user.id, score: params[:score],
|
|
|
|
|
comment: comment)
|
|
|
|
|
challenge_score.create_tiding current_user.id
|
|
|
|
|
if @work.work_status != 0 && @work.myshixun
|
|
|
|
|
HomeworksService.new.update_myshixun_work_score @work, @work.myshixun, @work.myshixun&.games, @homework, @homework.homework_challenge_settings
|
|
|
|
|
else
|
|
|
|
|
update_none_commit_work @work, @homework
|
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
|
begin
|
|
|
|
|
if params[:type] == "review"
|
|
|
|
|
copy_user = User.find params[:copy_user_id]
|
|
|
|
|
comment = "代码查重结果显示与#{copy_user.try(:show_real_name)}的代码相似度#{params[:code_rate]}%"
|
|
|
|
|
else
|
|
|
|
|
comment = "根据实训报告中最终提交的代码调整第#{challenge.position}关分数"
|
|
|
|
|
end
|
|
|
|
|
challenge_score = @work.challenge_work_scores.create(challenge_id: params[:challenge_id], user_id: current_user.id, score: params[:score],
|
|
|
|
|
comment: comment)
|
|
|
|
|
challenge_score.create_tiding current_user.id
|
|
|
|
|
if @work.work_status != 0 && @work.myshixun
|
|
|
|
|
HomeworksService.new.update_myshixun_work_score @work, @work.myshixun, @work.myshixun&.games, @homework, @homework.homework_challenge_settings
|
|
|
|
|
else
|
|
|
|
|
update_none_commit_work @work, @homework
|
|
|
|
|
end
|
|
|
|
|
rescue Exception => e
|
|
|
|
|
uid_logger(e.message)
|
|
|
|
|
tip_exception("调分失败")
|
|
|
|
|
raise ActiveRecord::Rollback
|
|
|
|
|
end
|
|
|
|
|
rescue Exception => e
|
|
|
|
|
uid_logger(e.message)
|
|
|
|
|
tip_exception(e.message)
|
|
|
|
|
raise ActiveRecord::Rollback
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
tip_exception("该关卡不记分")
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|