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.
77 lines
2.2 KiB
77 lines
2.2 KiB
class ResumesController < ApplicationController
|
|
before_action :require_login
|
|
|
|
before_action :convert_base64_image!, only: [:logo]
|
|
|
|
def create
|
|
resume = Resume.new(resume_params)
|
|
resume.user = current_user
|
|
resume.education = params[:resume][:education]
|
|
resume.experience = params[:resume][:experience]
|
|
params[:resume][:job_category].select! { |d| Resume::JOB_CATEGORY_LIST.include?(d) }
|
|
ActiveRecord::Base.transaction do
|
|
resume.save!
|
|
if params[:resume][:attachment_id].present?
|
|
attachment = current_user.attachments.find(params[:resume][:attachment_id])
|
|
attachment.update!(container: resume)
|
|
end
|
|
|
|
unless params[:resume][:logo].present?
|
|
file_path = ApplicationController.helpers.disk_filename('ResumeLogo', current_user.id)
|
|
File.delete(file_path) if File.exist?(file_path) # 删除之前没有保存简历时的图片
|
|
end
|
|
|
|
render_ok
|
|
end
|
|
rescue Exception => e
|
|
uid_logger(e.message)
|
|
tip_exception(e.message)
|
|
end
|
|
|
|
|
|
def logo
|
|
Util.write_file(@image, avatar_path)
|
|
render_ok(avatar_url: avatar_url)
|
|
rescue StandardError => ex
|
|
logger_error(ex)
|
|
render_error('修改失败')
|
|
end
|
|
|
|
def destroy_logo
|
|
file_path = ApplicationController.helpers.disk_filename('ResumeLogo', current_user.id)
|
|
File.delete(file_path) if File.exist?(file_path) # 删除之前
|
|
render_ok
|
|
end
|
|
|
|
|
|
# 招聘方查看简历详情
|
|
def preview
|
|
@apply = current_user.apply_candidates.find(params[:id])
|
|
@apply.update(viewed_at: Time.now)
|
|
@resume = @apply.user.resume
|
|
end
|
|
|
|
|
|
private
|
|
|
|
def resume_params
|
|
params.require(:resume).permit(:name, :sex, :birth_on, :mobile, :evaluate, :salary, :job_year, education: [], job_category: [], job_position: [], city:[], experience:[])
|
|
end
|
|
|
|
|
|
def convert_base64_image!
|
|
max_size = EduSetting.get('upload_avatar_max_size')
|
|
@image = Util.convert_base64_image(params[:image].to_s.strip, max_size: max_size)
|
|
rescue Base64ImageConverter::Error => ex
|
|
render_error(ex.message)
|
|
end
|
|
|
|
def avatar_path
|
|
ApplicationController.helpers.disk_filename('ResumeLogo', current_user.id)
|
|
end
|
|
|
|
def avatar_url
|
|
ApplicationController.helpers.resume_logo(current_user).to_s + "?#{Time.now.to_i}"
|
|
end
|
|
end
|