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)