diff --git a/app/helpers/exercises_helper.rb b/app/helpers/exercises_helper.rb index 4530167ba..2a052fffe 100644 --- a/app/helpers/exercises_helper.rb +++ b/app/helpers/exercises_helper.rb @@ -682,16 +682,26 @@ module ExercisesHelper def get_exercise_left_time(exercise,user) ex_time = exercise.time user_left_time = nil + time_now_i = Time.now.to_i if ex_time > 0 exercise_user = exercise.exercise_users.find_by(user_id:user.id) time_mill = ex_time * 60 #转为秒 exercise_end_time = exercise.end_time.present? ? exercise.end_time.to_i : 0 exercise_user_start = exercise_user.present? ? exercise_user.start_at.to_i : 0 - if (exercise_user_start + time_mill) > exercise_end_time - time_mill = exercise_end_time - exercise_user_start #如果开始答题时间加试卷的限时长大于试卷的截止时间,则以试卷的截止时间到开始答题时间为试卷的限时 + #用户未开始答题时,即exercise_user_start为0 + if exercise_user_start == 0 + if (exercise_end_time - time_now_i) > time_mill + user_left_time = time_mill + else + user_left_time = (exercise_end_time < time_now_i) ? nil : (exercise_end_time - time_now_i) + end + else + if (exercise_user_start + time_mill) > exercise_end_time + time_mill = exercise_end_time - exercise_user_start #如果开始答题时间加试卷的限时长大于试卷的截止时间,则以试卷的截止时间到开始答题时间为试卷的限时 + end + exercise_user_left_time = time_now_i - exercise_user_start #用户已回答的时间 + user_left_time = (time_mill < exercise_user_left_time) ? nil : (time_mill - exercise_user_left_time) #当前用户对试卷的回答剩余时间 end - exercise_user_left_time = Time.now.to_i - exercise_user_start #用户已回答的时间 - user_left_time = (time_mill < exercise_user_left_time) ? nil : (time_mill - exercise_user_left_time) #当前用户对试卷的回答剩余时间 end user_left_time end