diff --git a/app/controllers/users/resident_experts_controller.rb b/app/controllers/users/resident_experts_controller.rb index cb8aca2dc..a8d89efa6 100644 --- a/app/controllers/users/resident_experts_controller.rb +++ b/app/controllers/users/resident_experts_controller.rb @@ -4,7 +4,7 @@ class Users::ResidentExpertsController < Users::BaseController @resident_experts = @resident_experts.where(expert_category: params[:expert_category]) if params[:expert_category].present? @resident_experts = @resident_experts.where("name like ? or department like ?", "%#{params[:search]}%", "%#{params[:search]}%") if params[:keyword].present? @resident_expert_category_list = @resident_experts.group(:expert_category).count - @resident_expert_memos_count = @resident_experts.count("users.memos_count") + @resident_expert_memos_rank_list = @resident_experts.order("users.memos_count desc").limit(5) @resident_experts = @resident_experts.order(created_at: :desc) @resident_experts = paginate(@resident_experts) end diff --git a/app/views/users/resident_experts/_user_simple.json.jbuilder b/app/views/users/resident_experts/_user_simple.json.jbuilder new file mode 100644 index 000000000..ddc59a43b --- /dev/null +++ b/app/views/users/resident_experts/_user_simple.json.jbuilder @@ -0,0 +1,14 @@ +if user.present? + json.id user.id + json.type user.type + json.name user.real_name + json.login user.login + json.image_url url_to_avatar(user) + json.memos_count user.memos_count +else + json.name "已注销" + json.login user&.login + json.type "User" + json.image_url Rails.application.config_for(:configuration)['platform_url'] + "/" + "images/account/del.svg" + json.memos_count 0 +end \ No newline at end of file diff --git a/app/views/users/resident_experts/actions.json.jbuilder b/app/views/users/resident_experts/actions.json.jbuilder new file mode 100644 index 000000000..9c7993187 --- /dev/null +++ b/app/views/users/resident_experts/actions.json.jbuilder @@ -0,0 +1,8 @@ +json.actions @resident_expert_actions do |action| + json.id action.id + json.action_type action.action_type + json.action_name action.action_name + json.action_description action.action_description + json.created_at action.created_at.strftime("%Y-%m-%d %H:%M:%S") + json.updated_at action.updated_at.strftime("%Y-%m-%d %H:%M:%S") +end \ No newline at end of file diff --git a/app/views/users/resident_experts/current.json.builder b/app/views/users/resident_experts/current.json.builder new file mode 100644 index 000000000..af0af90f6 --- /dev/null +++ b/app/views/users/resident_experts/current.json.builder @@ -0,0 +1,14 @@ +json.id @resident_expert.id +json.name @resident_expert.name +json.gender @resident_expert.gender +json.expert_category @resident_expert.expert_category +json.academic_degree @resident_expert.academic_degree +json.department @resident_expert.department +json.title @resident_expert.title +json.territory_area1 @resident_expert.territory_area1 +json.territory_area2 @resident_expert.territory_area2 +json.territory_area3 @resident_expert.territory_area3 +json.introduction @resident_expert.introduction +json.status @resident_expert.status +json.created_at @resident_expert.created_at.strftime("%Y-%m-%d %H:%M:%S") +json.updated_at @resident_expert.updated_at.strftime("%Y-%m-%d %H:%M:%S") diff --git a/app/views/users/resident_experts/index.json.jbuilder b/app/views/users/resident_experts/index.json.jbuilder new file mode 100644 index 000000000..fae19d280 --- /dev/null +++ b/app/views/users/resident_experts/index.json.jbuilder @@ -0,0 +1,26 @@ +json.total_count @resident_experts.total_count +json.resident_experts @resident_experts do |resident_expert| + json.user do + json.partial! 'user_simple', locals: { user: resident_expert.user } + end + json.id resident_expert resident_expert.id + json.name resident_expert.name + json.gender resident_expert.gender + json.expert_category resident_expert.expert_category + json.academic_degree resident_expert.academic_degree + json.department resident_expert.department + json.title resident_expert.title + json.territory_area1 resident_expert.territory_area1 + json.territory_area2 resident_expert.territory_area2 + json.territory_area3 resident_expert.territory_area3 + json.introduction resident_expert.introduction + json.status resident_expert.status + json.created_at resident_expert.created_at.strftime("%Y-%m-%d %H:%M:%S") + json.updated_at resident_expert.updated_at.strftime("%Y-%m-%d %H:%M:%S") +end +json.resident_expert_memos_rank_list @resident_expert_memos_rank_list do |resident_expert| + json.user do + json.partial! 'user_simple', locals: { user: resident_expert.user } + end +end +json.resident_expert_category_list @resident_expert_category_list \ No newline at end of file diff --git a/db/migrate/20260323081210_change_gender_type_to_resident_experts.rb b/db/migrate/20260323081210_change_gender_type_to_resident_experts.rb new file mode 100644 index 000000000..e81ee409a --- /dev/null +++ b/db/migrate/20260323081210_change_gender_type_to_resident_experts.rb @@ -0,0 +1,5 @@ +class ChangeGenderTypeToResidentExperts < ActiveRecord::Migration[5.2] + def change + change_column :resident_experts, :gender, :integer + end +end