class Users::AvatarsController < Users::BaseAccountController before_action :private_user_resources! before_action :convert_base64_image!, only: [:update] def update Util.write_file(@image, avatar_path) # 首次上传头像 RewardGradeService.call(observed_user, container_id: observed_user.id, container_type: 'Avatar', score: 100) render_ok(avatar_url: avatar_url) rescue StandardError => ex logger_error(ex) render_error('修改失败') end private 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(observed_user.class, observed_user.id) end def avatar_url ApplicationController.helpers.url_to_avatar(observed_user) end end