|
|
@ -3310,83 +3310,79 @@ end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
all_user_ids = User.where(:status => 1).pluck(:id)
|
|
|
|
users = User.where(nil)
|
|
|
|
if params[:trial] == "-1"
|
|
|
|
if params[:trial] == "-1"
|
|
|
|
apply = ApplyAction.where(:container_type => "TrialAuthorization").pluck(:user_id)
|
|
|
|
users = users.where(status: 1, certification: 0)
|
|
|
|
apply_id = apply.blank? ? -1 : "(" + apply.join(",") + ")"
|
|
|
|
.joins('LEFT JOIN apply_actions aa ON aa.user_id = users.id AND aa.container_type = "TrialAuthorization"')
|
|
|
|
apply_user_id = User.where("status = 1 and certification = 0 and id not in #{apply_id} ").pluck(:id)
|
|
|
|
.where('aa.user_id IS NULL')
|
|
|
|
elsif params[:trial] == "-2"
|
|
|
|
elsif params[:trial] == "-2"
|
|
|
|
apply_user_id = all_user_ids
|
|
|
|
users = users.where(status: 1)
|
|
|
|
elsif params[:trial] == "0"
|
|
|
|
elsif params[:trial] == "0"
|
|
|
|
apply_user_id = ApplyAction.where(:status => 0).pluck(:user_id)
|
|
|
|
users = users.joins('LEFT JOIN apply_actions apply ON apply.user_id = users.id').where(apply_actions: { status: 0 })
|
|
|
|
elsif params[:trial] == "3"
|
|
|
|
elsif params[:trial] == "3"
|
|
|
|
time = Time.at(Time.now.to_i - 86400)
|
|
|
|
users = users.joins('LEFT JOIN user_day_certifications udc ON udc.user_id = users.id')
|
|
|
|
user_cer = UserDayCertification.where("created_at > '#{time}'").pluck(:user_id)
|
|
|
|
.where('users.certification != 1').where('udc.created_at > ?', Time.now.ago(1.days))
|
|
|
|
cer_id = user_cer.blank? ? "(-1)" : "(" + user_cer.map{|a| a.user_id}.join(",") + ")"
|
|
|
|
|
|
|
|
apply_user_id = User.where("status = 1 and certification != 1 and id in #{cer_id} ").pluck(:id)
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
apply_user_id = User.where(:status => 1, :certification => params[:trial]).pluck(:id)
|
|
|
|
users = users.where(status: 1, certification: params[:trial])
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if params[:school] == ""
|
|
|
|
users = users.joins('LEFT JOIN user_extensions ON user_extensions.user_id = users.id')
|
|
|
|
s_user_id = all_user_ids
|
|
|
|
.joins('LEFT JOIN schools ON schools.id = user_extensions.school_id')
|
|
|
|
else
|
|
|
|
.joins('LEFT JOIN departments ON departments.id = user_extensions.department_id')
|
|
|
|
school_ids = School.where("name like '%#{params[:school]}%'").pluck(:id)
|
|
|
|
|
|
|
|
s_user_id = UserExtensions.where(:school_id => school_ids).pluck(:user_id)
|
|
|
|
if params[:school].present?
|
|
|
|
|
|
|
|
users = users.where("schools.name LIKE ?", "%#{params[:school]}%")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if params[:department] == ""
|
|
|
|
if params[:department].present?
|
|
|
|
d_user_id = all_user_ids
|
|
|
|
users = users.where("departments.name LIKE ?", "%#{params[:department]}%")
|
|
|
|
else
|
|
|
|
|
|
|
|
dep_ids = Department.where("name like '%#{params[:department]}%'").pluck(:id)
|
|
|
|
|
|
|
|
d_user_id = UserExtensions.where(:department_id => dep_ids).pluck(:user_id)
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
ide_user_id = all_user_ids
|
|
|
|
|
|
|
|
if params[:identity] == "1" || (params[:identity] == "0" && params[:te_technical_title] == "0") || (params[:identity] == "2" && params[:pro_technical_title] == "0")
|
|
|
|
if params[:identity] == "1" || (params[:identity] == "0" && params[:te_technical_title] == "0") || (params[:identity] == "2" && params[:pro_technical_title] == "0")
|
|
|
|
ide_user_id = UserExtensions.where("identity = #{params[:identity]}").pluck(:user_id)
|
|
|
|
users = users.where(user_extensions: { identity: params[:identity] })
|
|
|
|
elsif (params[:identity] == "0" && params[:te_technical_title] != "0") || (params[:identity] == "2" && params[:pro_technical_title] != "0")
|
|
|
|
elsif (params[:identity] == "0" && params[:te_technical_title] != "0") || (params[:identity] == "2" && params[:pro_technical_title] != "0")
|
|
|
|
technical_title = params[:identity] == "0" ? params[:te_technical_title] : params[:pro_technical_title]
|
|
|
|
technical_title = params[:identity] == "0" ? params[:te_technical_title] : params[:pro_technical_title]
|
|
|
|
ide_user_id = UserExtensions.where("identity = #{params[:identity]} and technical_title = '#{technical_title}'").pluck(:user_id)
|
|
|
|
users = users.where(user_extensions: { identity: params[:identity], technical_title: technical_title })
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
if params[:student_id] && params[:student_id] != ''
|
|
|
|
if params[:student_id].present?
|
|
|
|
stu_user_id = UserExtensions.where("student_id like '%#{params[:student_id]}%'").pluck(:user_id)
|
|
|
|
users = users.where('user_extensions.student_id like ?', "%#{params[:student_id]}%")
|
|
|
|
else
|
|
|
|
|
|
|
|
stu_user_id = all_user_ids
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
user_id = s_user_id & d_user_id & apply_user_id & stu_user_id & ide_user_id
|
|
|
|
if params[:research_contents].present?
|
|
|
|
sql = ""
|
|
|
|
keyword = "%#{params[:research_contents]}%"
|
|
|
|
sql =
|
|
|
|
if params[:research_condition] == "name"
|
|
|
|
if params[:research_condition] == "name"
|
|
|
|
users = users.where('concat(lastname, firstname) like ?', keyword)
|
|
|
|
"concat(lastname, firstname) like '%#{params[:research_contents]}%'"
|
|
|
|
elsif params[:research_condition] == "email"
|
|
|
|
elsif params[:research_condition] == "email"
|
|
|
|
users = users.where("mail like ?", keyword)
|
|
|
|
"mail like '%#{params[:research_contents]}%'"
|
|
|
|
elsif params[:research_condition] == "phone"
|
|
|
|
elsif params[:research_condition] == "phone"
|
|
|
|
users = users.where("phone like ?", keyword)
|
|
|
|
"phone like '%#{params[:research_contents]}%'"
|
|
|
|
elsif params[:research_condition] == "nickname"
|
|
|
|
elsif params[:research_condition] == "nickname"
|
|
|
|
users = users.where("nickname like ?", keyword)
|
|
|
|
if params[:research_contents].present?
|
|
|
|
elsif params[:research_condition] == "login"
|
|
|
|
"nickname like '%#{params[:research_contents]}%'"
|
|
|
|
users = users.where("login like ?", keyword)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
elsif params[:research_condition] == "login"
|
|
|
|
end
|
|
|
|
params[:research_contents].present? ? "login like '%#{params[:research_contents]}%'" : ""
|
|
|
|
|
|
|
|
end
|
|
|
|
if params[:province].present?
|
|
|
|
|
|
|
|
users = users.where(schools: { province: params[:province] })
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
users = users.includes(:apply_actions, user_extensions: [:department, :school]).order("last_login_on desc")
|
|
|
|
|
|
|
|
|
|
|
|
@users = User.where(:id => user_id).where("#{sql}").includes(:apply_actions, user_extensions: [:department, :school]).order("last_login_on desc")
|
|
|
|
|
|
|
|
@xls_users = @users.reorder("created_on desc").limit(3000) #导出excel用户
|
|
|
|
|
|
|
|
@page = (params['page'] || 1).to_i
|
|
|
|
@page = (params['page'] || 1).to_i
|
|
|
|
@users_count = @users.count
|
|
|
|
@users_count = users.count
|
|
|
|
@limit = 20
|
|
|
|
@limit = 20
|
|
|
|
@is_remote = true
|
|
|
|
@is_remote = true
|
|
|
|
@users_pages = Paginator.new @users_count, @limit, params['page'] || 1
|
|
|
|
@users_pages = Paginator.new @users_count, @limit, params['page'] || 1
|
|
|
|
@offset ||= @users_pages.offset
|
|
|
|
@offset ||= @users_pages.offset
|
|
|
|
@users = paginateHelper @users, @limit
|
|
|
|
@users = paginateHelper users, @limit
|
|
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
respond_to do |format|
|
|
|
|
format.js
|
|
|
|
format.js
|
|
|
|
format.xls{
|
|
|
|
format.xls{
|
|
|
|
# @export_shixun_task = @export_shixun_task.all
|
|
|
|
# @export_shixun_task = @export_shixun_task.all
|
|
|
|
|
|
|
|
@xls_users = users.reorder("created_on desc").limit(3000) #导出excel用户
|
|
|
|
filename = "用户列表.xls"
|
|
|
|
filename = "用户列表.xls"
|
|
|
|
send_data(user_list_xls(@xls_users), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
|
|
|
|
send_data(user_list_xls(@xls_users), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
|
|
|
|
}
|
|
|
|
}
|
|
|
|