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