You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1.0 KiB

class Admins::HackImportsController < Admins::BaseController
def index
params[:sort_by] ||= 'created_at'
params[:sort_direction] ||= 'desc'
item_banks = Admins::ImportHackQuery.call(params)
@item_banks = paginate item_banks.preload([container: :hack_codes], :user, :sub_discipline)
end
def create
return render_error('请上传正确的文件') if params[:file].blank? || !params[:file].is_a?(ActionDispatch::Http::UploadedFile)
filename = File.basename(params[:file].original_filename, ".*")
sub_discipline = SubDiscipline.find_by(name: filename)
unless sub_discipline.present?
render_error "请先创建'#{filename}'课程后再导入题库" and return
end
result = Admins::ImportHackService.call(params[:file].to_io, sub_discipline.id)
render_ok(result)
rescue Admins::ImportHackService::Error => ex
render_error(ex)
end
def down_template
send_file(Rails.root.join("excel_template/import_hacks_template.xlsx"), filename: "OJ试题导入模版.xlsx")
end
end