Browse Source

项目列表默认查询时count性能问题处理

pull/347/head
xxq250 2 years ago
parent
commit
643fb163d9
2 changed files with 9 additions and 2 deletions
  1. +8
    -0
      app/controllers/project_categories_controller.rb
  2. +1
    -2
      app/controllers/projects_controller.rb

+ 8
- 0
app/controllers/project_categories_controller.rb View File

@@ -1,4 +1,5 @@
class ProjectCategoriesController < ApplicationController
before_action :re_total_count, only: [:pinned_index]
def index
# @project_categories = ProjectCategory.search(params[:name]).without_content
q = ProjectCategory.ransack(name_cont: params[:name])
@@ -14,4 +15,11 @@ class ProjectCategoriesController < ApplicationController
# projects = Project.no_anomory_projects.visible
# @category_group_list = projects.joins(:project_category).group("project_categories.id", "project_categories.name").size
end

def re_total_count
# 未分类项目与其他放在一起
other_category = ProjectCategory.find_by(name: "其它")
other_count = Project.where(project_category_id: [15,nil]).count
other_category.update(projects_count: other_count)
end
end

+ 1
- 2
app/controllers/projects_controller.rb View File

@@ -43,8 +43,7 @@ class ProjectsController < ApplicationController
@total_count =
if category_id.blank? && params[:search].blank? && params[:topic_id].blank?
# 默认查询时count性能问题处理
# ProjectCategory.sum("projects_count") - Project.visible.joins("left join organization_extensions on organization_extensions.organization_id = projects.user_id").where("organization_extensions.visibility =2").count
@projects.total_count
ProjectCategory.sum("projects_count") - Project.visible.joins("left join organization_extensions on organization_extensions.organization_id = projects.user_id").where("organization_extensions.visibility =2").count
elsif params[:search].present? || params[:topic_id].present?
@projects.total_count
else


Loading…
Cancel
Save