|
|
|
@ -12,10 +12,37 @@ class StudentWorkController < ApplicationController
|
|
|
|
|
|
|
|
|
|
###
|
|
|
|
|
def program_test
|
|
|
|
|
is_test = params[:is_test] == 'true'
|
|
|
|
|
resultObj = {status: 0, results: [], error_msg: '', time: Time.now}
|
|
|
|
|
student_work = find_or_save_student_work
|
|
|
|
|
unless student_work
|
|
|
|
|
resultObj[:status] = 100
|
|
|
|
|
unless is_test
|
|
|
|
|
student_work = find_or_save_student_work
|
|
|
|
|
|
|
|
|
|
unless student_work
|
|
|
|
|
resultObj[:status] = 100
|
|
|
|
|
else
|
|
|
|
|
if @homework.homework_type == 2 && @homework.homework_detail_programing
|
|
|
|
|
result = test_realtime(student_work, params[:src])
|
|
|
|
|
logger.debug result
|
|
|
|
|
resultObj[:status] = result["status"]
|
|
|
|
|
resultObj[:results] = result["results"]
|
|
|
|
|
resultObj[:error_msg] = result["error_msg"]
|
|
|
|
|
results = result["results"]
|
|
|
|
|
if result["status"].to_i == -2 #编译错误
|
|
|
|
|
results = [result["error_msg"]]
|
|
|
|
|
end
|
|
|
|
|
student_work_test = student_work.student_work_tests.build(status: result["status"], results: results,
|
|
|
|
|
src: params[:src])
|
|
|
|
|
unless student_work.save
|
|
|
|
|
resultObj[:status] = 200
|
|
|
|
|
else
|
|
|
|
|
resultObj[:status] = result["status"].to_i
|
|
|
|
|
resultObj[:time] = student_work_test.created_at.to_s(:db)
|
|
|
|
|
resultObj[:index] = student_work.student_work_tests.count
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
if @homework.homework_type == 2 && @homework.homework_detail_programing
|
|
|
|
|
result = test_realtime(student_work, params[:src])
|
|
|
|
@ -27,18 +54,15 @@ class StudentWorkController < ApplicationController
|
|
|
|
|
if result["status"].to_i == -2 #编译错误
|
|
|
|
|
results = [result["error_msg"]]
|
|
|
|
|
end
|
|
|
|
|
student_work_test = student_work.student_work_tests.build(status: result["status"], results: results,
|
|
|
|
|
src: params[:src])
|
|
|
|
|
unless student_work.save
|
|
|
|
|
resultObj[:status] = 200
|
|
|
|
|
else
|
|
|
|
|
resultObj[:status] = result["status"].to_i
|
|
|
|
|
resultObj[:time] = student_work_test.created_at.to_s(:db)
|
|
|
|
|
resultObj[:index] = student_work.student_work_tests.count
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resultObj[:status] = result["status"].to_i
|
|
|
|
|
resultObj[:time] = Time.now.strftime('%Y%m%d %T')
|
|
|
|
|
resultObj[:index] = 0
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
render :json => resultObj
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|