|
|
|
@ -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
|
|
|
|
|
|
|
|
|
|
## 筛选 难度
|
|
|
|
|