From b227250020efeeb470742ace66bde263abe00262 Mon Sep 17 00:00:00 2001 From: xxq250 Date: Thu, 11 Apr 2024 14:12:02 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=B8=AD=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E6=9C=89=E6=95=B0=E6=8D=AE=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/projects/index.json.jbuilder | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/projects/index.json.jbuilder b/app/views/projects/index.json.jbuilder index d3b96ab18..e09d8f028 100644 --- a/app/views/projects/index.json.jbuilder +++ b/app/views/projects/index.json.jbuilder @@ -17,6 +17,7 @@ json.projects @projects do |project| json.forked_from_project_id project.forked_from_project_id json.open_devops project.open_devops? json.platform project.platform + json.has_dataset project.project_dataset.present? json.author do if project.educoder? project_educoder = project.project_educoder From d2d602ab89b87f68fd49cb6f3ef72693d7aa14b9 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 12 Apr 2024 10:24:05 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E9=A1=B9=E7=9B=AEid=E6=9F=A5=E8=AF=A2=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/v1/project_datasets_controller.rb | 10 ++++++++++ .../api/v1/project_datasets/index.json.jbuilder | 14 ++++++++++++++ .../api/v1/projects/_simple_detail.json.jbuilder | 2 +- config/routes/api.rb | 2 +- 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 app/controllers/api/v1/project_datasets_controller.rb create mode 100644 app/views/api/v1/project_datasets/index.json.jbuilder diff --git a/app/controllers/api/v1/project_datasets_controller.rb b/app/controllers/api/v1/project_datasets_controller.rb new file mode 100644 index 000000000..995c1872e --- /dev/null +++ b/app/controllers/api/v1/project_datasets_controller.rb @@ -0,0 +1,10 @@ +class Api::V1::ProjectDatasetsController < Api::V1::BaseController + + def index + return render_error("请输入正确的项目id字符串") unless params[:ids].present? + ids = params[:ids].split(",") + @project_datasets = ProjectDataset.where(project_id: ids).includes(:license, :project) + @project_datasets = kaminari_unlimit_paginate(@project_datasets) + end + +end \ No newline at end of file diff --git a/app/views/api/v1/project_datasets/index.json.jbuilder b/app/views/api/v1/project_datasets/index.json.jbuilder new file mode 100644 index 000000000..29a84708d --- /dev/null +++ b/app/views/api/v1/project_datasets/index.json.jbuilder @@ -0,0 +1,14 @@ +json.total_count @project_datasets.total_count +json.project_datasets @project_datasets.each do |dataset| + json.(dataset, :id, :title, :description, :paper_content) + json.project do + json.partial! "api/v1/projects/simple_detail", project: dataset.project + end + if dataset.license.present? + json.license do + json.(dataset.license, :name, :content) + end + else + json.license nil + end +end \ No newline at end of file diff --git a/app/views/api/v1/projects/_simple_detail.json.jbuilder b/app/views/api/v1/projects/_simple_detail.json.jbuilder index 3eadaaf8f..15799aa13 100644 --- a/app/views/api/v1/projects/_simple_detail.json.jbuilder +++ b/app/views/api/v1/projects/_simple_detail.json.jbuilder @@ -1,7 +1,7 @@ if project.present? json.type project.project_type json.(project, - :description, :forked_count, :forked_from_project_id, :identifier, + :id, :description, :forked_count, :forked_from_project_id, :identifier, :issues_count, :pull_requests_count, :invite_code, :website, :platform, :name, :open_devops, :praises_count, :is_public, :status, :watchers_count, :ignore_id, :license_id, :project_category_id, :project_language_id) diff --git a/config/routes/api.rb b/config/routes/api.rb index ed1ea9b42..3f18235cd 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -145,7 +145,7 @@ defaults format: :json do resources :projects, only: [:index] resources :project_topics, only: [:index, :create, :destroy] - + resources :project_datasets, only: [:index] end end From 1e8dba9050930ce207c15a0ec68da8cb87f1c0c0 Mon Sep 17 00:00:00 2001 From: xxq250 Date: Fri, 12 Apr 2024 16:03:21 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=B8=AD=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E6=9C=89=E6=95=B0=E6=8D=AE=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/projects/index.json.jbuilder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/projects/index.json.jbuilder b/app/views/projects/index.json.jbuilder index e09d8f028..a07dd6c1a 100644 --- a/app/views/projects/index.json.jbuilder +++ b/app/views/projects/index.json.jbuilder @@ -17,7 +17,7 @@ json.projects @projects do |project| json.forked_from_project_id project.forked_from_project_id json.open_devops project.open_devops? json.platform project.platform - json.has_dataset project.project_dataset.present? + json.has_dataset project.has_menu_permission("dataset") && project.project_dataset.present? json.author do if project.educoder? project_educoder = project.project_educoder From ad9345badb4ac0e61c4063bd701d8bd3c5cb7167 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 12 Apr 2024 16:26:33 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=88=97=E8=A1=A8total=5Fcount?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index eb242475e..0860e85f8 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -43,7 +43,8 @@ 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 + # 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 elsif params[:search].present? || params[:topic_id].present? @projects.total_count else