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.
19 lines
712 B
19 lines
712 B
# 生成竞赛个人证书Job
|
|
class GenerateCompetitionPersonalCertificateJob < ApplicationJob
|
|
queue_as :default
|
|
|
|
def perform(prize_user_id)
|
|
@prize_user = CompetitionPrizeUser.find_by(id: prize_user_id)
|
|
return if @prize_user.blank? || @prize_user.certificate_exist?
|
|
|
|
template = @prize_user.user.is_teacher? ? 'teacher' : 'personal'
|
|
file = File.open(Rails.root.join("app/templates/competition_certificates/#{template}.html.erb"))
|
|
html = ERB.new(file.read).result(binding)
|
|
kit = PDFKit.new(html, page_width: 842, page_height: 595)
|
|
|
|
path = @prize_user.certificate_path
|
|
dir = File.dirname(path)
|
|
FileUtils.mkdir_p(dir) unless File.directory?(dir)
|
|
kit.to_pdf(path)
|
|
end
|
|
end |