From 375f724e5755bdb967c275ed5a4cfcaded58586a Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 20 Feb 2020 18:17:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=BB=E9=A1=B5?= =?UTF-8?q?=E5=AE=9E=E8=B7=B5=E8=AF=BE=E7=A8=8B=E5=85=AC=E5=BC=80=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/users/subject_service.rb | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/app/services/users/subject_service.rb b/app/services/users/subject_service.rb index 53ff3f4b9..d0b995c8e 100644 --- a/app/services/users/subject_service.rb +++ b/app/services/users/subject_service.rb @@ -70,12 +70,21 @@ class Users::SubjectService end def manage_subject_status_filter(relations) - status = case params[:status] - when 'editing' then 0 - when 'applying' then 1 - when 'published' then 2 - end - relations = relations.where(status: status) if status + if params[:status] == "publiced" + relations = relations.where(public: 2) + elsif params[:status] == "applying" + relations = relations.where(public: 1) + else + status = case params[:status] + when 'editing' then + 0 + when 'applying' then + 1 + when 'published' then + 2 + end + relations = relations.where(status: status) if status + end relations end From 3c206b52e35776b0732014ca9ef68f88d6163402 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 20 Feb 2020 18:39:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=AE=9E=E8=B7=B5=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/search_service.rb | 3 ++- app/services/subject_search_service.rb | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/services/search_service.rb b/app/services/search_service.rb index a45875e07..72cd49c14 100644 --- a/app/services/search_service.rb +++ b/app/services/search_service.rb @@ -41,7 +41,8 @@ class SearchService < ApplicationService when 'shixun' then { where: { id: Laboratory.current.shixuns.where(public: 2, status: 2, fork_from: nil).or(Laboratory.current.shixuns.where(status: 2, id: User.current.shixuns)).pluck(:id) } } when 'subject' then - { where: { id: Laboratory.current.subjects.pluck(:id) } } + { where: { id: Laboratory.current.subjects.where(public: 2, status: 2) + .or( Laboratory.current.shixuns.where(status: 2, id: User.current.shixuns).pluck(:id)) } } when 'course' then { where: { id: Laboratory.current.all_courses.pluck(:id) } } else diff --git a/app/services/subject_search_service.rb b/app/services/subject_search_service.rb index 9c2776beb..dc5b069a5 100644 --- a/app/services/subject_search_service.rb +++ b/app/services/subject_search_service.rb @@ -17,9 +17,12 @@ class SubjectSearchService < ApplicationService if type == "mine" @subjects = @subjects.where(id: User.current.subjects).visible.unhidden else - @subjects = @subjects.visible.unhidden + if User.current.admin? || User.current.business? + @subjects = @subjects.unhidden + else + @subjects = @subjects.publiced.unhidden.or(@subjects.where(id: User.current.subjects)) + end end - Subject.search(keyword, search_options) end