diff --git a/app/controllers/api/v1/users/memos_controller.rb b/app/controllers/api/v1/users/memos_controller.rb index 3308c5d1e..ebada32f9 100644 --- a/app/controllers/api/v1/users/memos_controller.rb +++ b/app/controllers/api/v1/users/memos_controller.rb @@ -4,6 +4,7 @@ class Api::V1::Users::MemosController < Api::V1::BaseController def index @resident_expert = ResidentExpert.find_by(user_id: @observe_user.id) + @resident_expert.increment!(:visits) return render_error("用户未完成专家入驻") if @resident_expert.blank? @memos = @observe_user.memos.order("#{sort_by} #{sort_direction}") @memos = kaminari_paginate(@memos) 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 5d94142f4..d67ee8ec5 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.visits resident_expert.visits json.image_url url_to_avatar(resident_expert) json.gender resident_expert.gender json.expert_category resident_expert.expert_category diff --git a/app/views/api/v1/resident_experts/index.json.jbuilder b/app/views/api/v1/resident_experts/index.json.jbuilder index 8d076771e..a81e29c2e 100644 --- a/app/views/api/v1/resident_experts/index.json.jbuilder +++ b/app/views/api/v1/resident_experts/index.json.jbuilder @@ -7,6 +7,7 @@ json.resident_experts @resident_experts do |resident_expert| json.name resident_expert.name json.image_url url_to_avatar(resident_expert) json.gender resident_expert.gender + json.visits resident_expert.visits json.expert_category resident_expert.expert_category json.academic_degree resident_expert.academic_degree json.department resident_expert.department @@ -20,6 +21,7 @@ json.resident_experts @resident_experts do |resident_expert| 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.partial! 'resident_expert', locals: { resident_expert: resident_expert } json.user do json.partial! 'user_simple', locals: { user: resident_expert.user } end diff --git a/app/views/api/v1/users/memos/index.json.jbuilder b/app/views/api/v1/users/memos/index.json.jbuilder index 738c254f5..8a97fce06 100644 --- a/app/views/api/v1/users/memos/index.json.jbuilder +++ b/app/views/api/v1/users/memos/index.json.jbuilder @@ -2,6 +2,9 @@ json.total_count @memos.total_count json.resident_expert do json.partial! 'api/v1/resident_experts/resident_expert', locals: { resident_expert: @resident_expert } end +json.total_viewed_count @memos.sum(:viewed_count) +json.total_praises_count @memos.sum(:praises_count) +json.total_replies_count @memos.sum(:replies_count) json.memos @memos do |memo| json.partial! 'api/v1/users/memos/memo', locals: { memo: memo, current_user: current_user } end \ No newline at end of file diff --git a/db/migrate/20260330062541_add_visits_to_resident_experts.rb b/db/migrate/20260330062541_add_visits_to_resident_experts.rb new file mode 100644 index 000000000..d84814fc2 --- /dev/null +++ b/db/migrate/20260330062541_add_visits_to_resident_experts.rb @@ -0,0 +1,5 @@ +class AddVisitsToResidentExperts < ActiveRecord::Migration[5.2] + def change + add_column :resident_experts, :visits, :integer, default: 0 + end +end