From b2d7c6a39f1236a4012889099c79fbed11e5820a Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 27 Mar 2026 15:43:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E4=B8=93=E5=AE=B6?= =?UTF-8?q?=E5=AD=A6=E5=8E=86=E4=BB=A5=E5=8F=8A=E4=B8=93=E5=AE=B6=E5=A4=B4?= =?UTF-8?q?=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/v1/resident_experts_controller.rb | 11 +++++++++++ app/models/resident_expert.rb | 6 +++++- .../resident_experts/_resident_expert.json.jbuilder | 1 + app/views/api/v1/resident_experts/index.json.jbuilder | 1 + config/routes/api.rb | 1 + 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/v1/resident_experts_controller.rb b/app/controllers/api/v1/resident_experts_controller.rb index b45dddd83..58f62c302 100644 --- a/app/controllers/api/v1/resident_experts_controller.rb +++ b/app/controllers/api/v1/resident_experts_controller.rb @@ -1,5 +1,6 @@ class Api::V1::ResidentExpertsController < Api::V1::BaseController before_action :require_login, except: [:index] + before_action :convert_image!, only: [:update_image] def index @resident_experts = ResidentExpert.approved.includes(:user) @@ -53,6 +54,16 @@ class Api::V1::ResidentExpertsController < Api::V1::BaseController @resident_expert_actions = @resident_expert.resident_expert_actions end + def update_image + return render_not_found unless @resident_expert = ResidentExpert.find_by(user_id: current_user.id) + + Util.write_file(@image, avatar_path(@resident_expert)) + return render_ok({message: '头像修改成功'}) + rescue Exception => e + uid_logger_error(e.message) + render_result(-1, '头像修改失败!') + end + private def resident_expert_params params.require(:resident_expert).permit(:name, :gender, :expert_category, :academic_degree, :department, :title, :territory_area1, :territory_area2, :territory_area3, :introduction) diff --git a/app/models/resident_expert.rb b/app/models/resident_expert.rb index 2176d16c6..83c264d8c 100644 --- a/app/models/resident_expert.rb +++ b/app/models/resident_expert.rb @@ -5,7 +5,7 @@ class ResidentExpert < ApplicationRecord enum gender: { male: 0, female: 1, secret: 2 } enum expert_category: { technological: 0, economic: 1, management: 2 } - enum academic_degree: { bachelor: 0, master: 1, doctor: 2 } + enum academic_degree: { bachelor: 0, master: 1, doctor: 2, college: 3, other: 4 } enum status: { pending: 0, approved: 1, rejected: 2 } validates :user_id, presence: true, uniqueness: true @@ -42,6 +42,10 @@ class ResidentExpert < ApplicationRecord '硕士研究生' when "doctor" '博士研究生' + when "college" + '大专' + when "other" + '其他' end end diff --git a/app/views/api/v1/resident_experts/_resident_expert.json.jbuilder b/app/views/api/v1/resident_experts/_resident_expert.json.jbuilder index 20a6cc079..5d94142f4 100644 --- a/app/views/api/v1/resident_experts/_resident_expert.json.jbuilder +++ b/app/views/api/v1/resident_experts/_resident_expert.json.jbuilder @@ -3,6 +3,7 @@ json.user do end json.id resident_expert.id json.name resident_expert.name +json.image_url url_to_avatar(resident_expert) json.gender resident_expert.gender json.expert_category resident_expert.expert_category json.academic_degree resident_expert.academic_degree diff --git a/app/views/api/v1/resident_experts/index.json.jbuilder b/app/views/api/v1/resident_experts/index.json.jbuilder index 83a82e28f..8d076771e 100644 --- a/app/views/api/v1/resident_experts/index.json.jbuilder +++ b/app/views/api/v1/resident_experts/index.json.jbuilder @@ -5,6 +5,7 @@ json.resident_experts @resident_experts do |resident_expert| end json.id resident_expert.id json.name resident_expert.name + json.image_url url_to_avatar(resident_expert) json.gender resident_expert.gender json.expert_category resident_expert.expert_category json.academic_degree resident_expert.academic_degree diff --git a/config/routes/api.rb b/config/routes/api.rb index 729e45f9b..dca96e14a 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -75,6 +75,7 @@ defaults format: :json do post :reset get :current get :actions + put :update_image end end