diff --git a/app/services/weapps/shixun_search_service.rb b/app/services/weapps/shixun_search_service.rb index c0a0f2923..d5d8f7d47 100644 --- a/app/services/weapps/shixun_search_service.rb +++ b/app/services/weapps/shixun_search_service.rb @@ -8,16 +8,22 @@ class Weapps::ShixunSearchService < ApplicationService end def call + # 全部实训/我的实训 + type = params[:type] || "all" shixuns = laboratory.shixuns.published.no_jupyter - # 超级管理员用户显示所有未隐藏的实训、非管理员显示所有已发布的实训(对本单位公开且未隐藏未关闭) - if User.current.admin? || User.current.business? || !User.current.school_id - shixuns = shixuns.where(hidden: 0) + if type == "mine" + @shixuns = @shixuns.where(id: User.current.shixuns) else - shixun_ids = ShixunSchool.where(school_id: User.current.school_id).pluck(:shixun_id) - shixun_ids = shixun_ids.reject(&:blank?).length == 0 ? -1 : shixun_ids.join(",") - - shixuns = shixuns.where("use_scope = 0 or shixuns.id in (#{shixun_ids})").unhidden.publiced.or(shixuns.where(id: User.current.shixuns)) + # 超级管理员用户显示所有未隐藏的实训、非管理员显示所有已发布的实训(对本单位公开且未隐藏未关闭) + if User.current.admin? || User.current.business? || !User.current.school_id + shixuns = shixuns.where(hidden: 0) + else + shixun_ids = ShixunSchool.where(school_id: User.current.school_id).pluck(:shixun_id) + shixun_ids = shixun_ids.reject(&:blank?).length == 0 ? -1 : shixun_ids.join(",") + + shixuns = shixuns.where("use_scope = 0 or shixuns.id in (#{shixun_ids})").unhidden.publiced.or(shixuns.where(id: User.current.shixuns)) + end end ## 筛选 难度