|
|
|
@ -396,12 +396,13 @@ class ShixunsController < ApplicationController
|
|
|
|
|
:use_scope, :identifier, :image_text]).where(:id => shixun_id, :hidden => 0, :trainee => diff, :status => status).includes(:tag_repertoires, :challenges)
|
|
|
|
|
|
|
|
|
|
if search.present?
|
|
|
|
|
search_users_id = User.select([:id]).where("concat(lastname, firstname) like '%#{search}%'")
|
|
|
|
|
search_users_id = search_users_id.blank? ? "(-1)" : "(" + search_users_id.map{|sc| sc.id}.join(',') + ")"
|
|
|
|
|
search_shixun_ids = Challenge.where("subject like '%#{search}%'").pluck(:shixun_id).uniq
|
|
|
|
|
search_shixun_ids = search_shixun_ids.blank? ? "(-1)" : "(" + search_shixun_ids.join(",") + ")"
|
|
|
|
|
fuzzy_searchs = search.split(" ").join("%")
|
|
|
|
|
@shixuns = @shixuns.where("name like ? or user_id in #{search_users_id} or id in #{search_shixun_ids}", "%#{fuzzy_searchs}%")
|
|
|
|
|
search_shixun_ids = Shixun.joins(:users, challenges: :challenge_tags).
|
|
|
|
|
where("challenge_tags.name like '%#{search}%'
|
|
|
|
|
or subject like '%#{search}%'
|
|
|
|
|
or challenges.subject like '%#{search}%'
|
|
|
|
|
or concat(lastname, firstname) like '%#{search}%'
|
|
|
|
|
or shixuns.name like '%#{search}%'").pluck(:id)
|
|
|
|
|
@shixuns = @shixuns.where(id: search_shixun_ids)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if hidden_learn.present?
|
|
|
|
|