From 13e2738fb520d255c4bac0c75961a04e011d5781 Mon Sep 17 00:00:00 2001 From: yystopf Date: Mon, 17 Oct 2022 17:37:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=A1=B5=E6=96=B0=E5=A2=9Eonly=5Fwatched=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/queries/projects/list_my_query.rb | 2 ++ app/services/api/v1/users/projects/list_service.rb | 2 ++ 2 files changed, 4 insertions(+) diff --git a/app/queries/projects/list_my_query.rb b/app/queries/projects/list_my_query.rb index f275d63a5..6c7f38d9c 100644 --- a/app/queries/projects/list_my_query.rb +++ b/app/queries/projects/list_my_query.rb @@ -29,6 +29,8 @@ class Projects::ListMyQuery < ApplicationQuery projects = projects.where(user_id: user.id) elsif params[:category].to_s == "watched" #我关注的 projects = projects.where.not(user_id: user.id).joins(:watchers).where(watchers: {watchable_type: "Project", user_id: user.id}) + elsif params[:category].to_s == 'only_watched' + projects = projects.joins(:watchers).where(watchers: {watchable_type: "Project", user_id: user.id}) elsif params[:category].to_s == "forked" #我fork的 fork_ids = user.fork_users.select(:id, :fork_project_id).pluck(:fork_project_id) projects = projects.where(id: fork_ids) diff --git a/app/services/api/v1/users/projects/list_service.rb b/app/services/api/v1/users/projects/list_service.rb index 91e25a933..8b3bffef0 100644 --- a/app/services/api/v1/users/projects/list_service.rb +++ b/app/services/api/v1/users/projects/list_service.rb @@ -53,6 +53,8 @@ class Api::V1::Users::Projects::ListService < ApplicationService projects = Project.from("( #{normal_projects} UNION #{org_projects} ) AS projects").distinct when 'watched' projects = projects.where.not(user_id: observe_user.id).joins(:watchers).where(watchers: {watchable_type: "Project", user_id: observe_user.id}) + when 'only_watched' + projects = projects.where.joins(:watchers).where(watchers: {watchable_type: "Project", user_id: observe_user.id}) when 'forked' fork_ids = observe_user.fork_users.select(:id, :fork_project_id).pluck(:fork_project_id) projects = projects.where(id: fork_ids)