You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
320 lines
9.5 KiB
320 lines
9.5 KiB
class SchoolController < ApplicationController
|
|
layout 'course_base'
|
|
before_filter :require_admin, :only => :upload_logo
|
|
before_filter :find_school, :only => [:destroy]
|
|
def upload
|
|
uploaded_io = params[:logo]
|
|
school_id ||= params[:id]
|
|
s1 = School.find(school_id)
|
|
unless uploaded_io.nil?
|
|
File.open(Rails.root.join('public', 'images', 'school', school_id.to_s+'.png'), 'wb') do |file|
|
|
file.write(uploaded_io.read)
|
|
end
|
|
|
|
s1.logo_link = '/images/school/'+school_id.to_s+'.png'
|
|
|
|
end
|
|
s1.name = params[:name] unless params[:name].blank?
|
|
s1.province = params[:province] unless params[:province].blank?
|
|
s1.save
|
|
redirect_to admin_schools_url(:school_name => params[:school_name])
|
|
end
|
|
|
|
def upload_logo
|
|
@school = School.find params[:id]
|
|
@school_name = params[:school_name]
|
|
render :layout => "base_management"
|
|
end
|
|
|
|
#获取制定学校开设的课程数
|
|
def course_count school_id
|
|
School.find(school_id).courses.count
|
|
end
|
|
|
|
|
|
def index
|
|
render :layout => "base_management"
|
|
end
|
|
|
|
def get_province
|
|
@provinces = School.find_by_sql("select distinct province from schools")
|
|
|
|
options = ""
|
|
|
|
@provinces.each do |p|
|
|
options << "<option value = '#{p.province}' >#{p.province}</option>"
|
|
end
|
|
|
|
# 取id取学校名
|
|
# 连接子表: 查询已添加用户的学校
|
|
school = School.select("id, name").
|
|
joins("RIGHT JOIN (
|
|
SELECT DISTINCT school_id
|
|
FROM #{UserExtensions.table_name}
|
|
WHERE school_id IS NOT NULL) AS sids ON schools.id = sids.school_id").
|
|
where("#{School.table_name}.id IS NOT NULL")
|
|
|
|
options_s = ""
|
|
school.each do |s|
|
|
options_s << "<li style = 'width: 33%; float: left'><a style='cursor: pointer;' id=#{s.id} onclick='test(this.id, this.text)'>#{s.name}</a></li>"
|
|
end
|
|
|
|
res = Hash.new
|
|
res[:text] = options
|
|
res[:text_s] = options_s
|
|
|
|
render :json => res
|
|
|
|
|
|
end
|
|
|
|
def get_options
|
|
@school = School.where("province = ?", params[:province])
|
|
p = params[:province]
|
|
##@school = School.all
|
|
options = ""
|
|
|
|
@school.each do |s|
|
|
#options << "<option value=#{s.id}>#{s.name}</option>"
|
|
options << "<li style = 'width: 33%; float: left'><a style='cursor: pointer;' id=#{s.id} onclick='test(this.id, this.text)'>#{s.name}</a></li>"
|
|
end
|
|
|
|
|
|
render :text => options
|
|
|
|
end
|
|
|
|
def get_schoollist
|
|
@school = School.where("province = ?", params[:province])
|
|
|
|
options = ""
|
|
@school.each do |s|
|
|
options << "<li style = 'width: 33%; float: left'><a style='cursor: pointer;' id=#{s.id} onclick='test(this.id)'>#{s.name}</a></li>"
|
|
end
|
|
|
|
render :text => options
|
|
end
|
|
|
|
def search_school
|
|
q = "%#{params[:key_word].strip}%"
|
|
|
|
@school = School.where("name LIKE ?", q)
|
|
@school = @school.where("province = ?", params[:province]) if (params[:province] != '0' )
|
|
|
|
options = ""
|
|
@school.each do |s|
|
|
options << "<li style = 'width: 33%; float: left'> <a style='cursor: pointer;' id=#{s.id} onclick='test(this.id)'>#{s.name}</a></li>"
|
|
end
|
|
|
|
options = "<div class='flash error' id='flash_error'>#{l(:label_school_not_fount)}</div>" if options.blank?
|
|
|
|
render :text => options
|
|
end
|
|
|
|
#根据学校名字或者拼音来查询
|
|
def on_search
|
|
condition = "#{params[:name].strip}".gsub(" ","")
|
|
#将条件截断为汉字和拼音(全汉字 或者 全拼音 或者 汉字和拼音),
|
|
#获取拼音的第一次出现的位置
|
|
chinese = []
|
|
pinyin = []
|
|
condition.scan(/./).each_with_index do |char,index|
|
|
if char =~ /[a-zA-Z0-9]/
|
|
pinyin << char
|
|
elsif char =~ /\'/
|
|
else
|
|
chinese << char
|
|
end
|
|
end
|
|
if params[:no_school_ids]
|
|
if(condition == '')
|
|
@school = School.where("id not in #{params[:no_school_ids]}").reorder('id=2458 desc, CONVERT (name USING gbk) COLLATE gbk_chinese_ci asc').page((params[:page].to_i || 1)).per(100)
|
|
@school_count = School.count
|
|
else
|
|
@school = School.where("id not in #{params[:no_school_ids]} and name like '%#{chinese.join("")}%' and pinyin like '%#{pinyin.join("")}%'").reorder('id=2458 desc, CONVERT (name USING gbk) COLLATE gbk_chinese_ci asc').page((params[:page].to_i || 1)).per(100)
|
|
@school_count = School.where("id not in #{params[:no_school_ids]} and name like '%#{chinese.join("")}%' and pinyin like '%#{pinyin.join("")}%'").count
|
|
end
|
|
else
|
|
if(condition == '')
|
|
@school = School.reorder('id=2458 desc, CONVERT (name USING gbk) COLLATE gbk_chinese_ci asc').page((params[:page].to_i || 1)).per(100)
|
|
@school_count = School.count
|
|
else
|
|
@school = School.where("name like '%#{chinese.join("")}%' and pinyin like '%#{pinyin.join("")}%'").reorder('id=2458 desc, CONVERT (name USING gbk) COLLATE gbk_chinese_ci asc').page((params[:page].to_i || 1)).per(100)
|
|
@school_count = School.where("name like '%#{chinese.join("")}%' and pinyin like '%#{pinyin.join("")}%'").count
|
|
end
|
|
end
|
|
|
|
result = []
|
|
# @school.each do |sc|
|
|
# result << {:value=>sc.name,:data=>sc.id}
|
|
# end
|
|
render :json =>{ :schools => @school,:count=>@school_count}.to_json
|
|
end
|
|
|
|
#添加学校
|
|
def add_school
|
|
@school = School.new
|
|
@school.name = params[:name].strip
|
|
@school.pinyin = Pinyin.t(params[:name].strip, splitter: '')
|
|
@school.save
|
|
respond_to do |format|
|
|
format.js
|
|
end
|
|
end
|
|
|
|
#申请高校(单位) name:名称 province:省 city:市 address:地址 remarks:备注
|
|
def apply_add_school
|
|
|
|
data = {result:0,name:params[:name],school_id:0}
|
|
#0 成功 1参数错误 2名称已存在 3.失败
|
|
data[:result] = 0
|
|
|
|
#检验参数
|
|
if params[:name] == "" || params[:province] == "" || params[:city] == "" || params[:address] == ""
|
|
data[:result] = 1
|
|
else
|
|
school = School.where("name = '#{params[:name]}'").first
|
|
if school
|
|
data[:result] = 2
|
|
else
|
|
school = School.new
|
|
school.name = params[:name].strip
|
|
school.pinyin = Pinyin.t(params[:name].strip, splitter: '')
|
|
school.province = params[:province]
|
|
school.city = params[:city]
|
|
school.address = params[:address]
|
|
|
|
#status 0未处理 1通过 2拒绝
|
|
applyschool = ApplyAddSchools.new
|
|
|
|
#用belongs_to 可以一起存数据库
|
|
applyschool.school = school
|
|
applyschool.name = school.name
|
|
applyschool.province = params[:province]
|
|
applyschool.city = params[:city]
|
|
applyschool.address = params[:address]
|
|
applyschool.remarks = params[:remarks]
|
|
applyschool.user_id = User.current.id
|
|
if applyschool.save
|
|
data[:school_id] = school.id
|
|
=begin
|
|
user_extention= User.current.extensions
|
|
user_extention.school_id = school.id
|
|
user_extention.save!
|
|
=end
|
|
|
|
# 向管理员发送信息
|
|
users = User.where(:admin => 1)
|
|
users.each do |user|
|
|
AppliedMessage.create(:user_id => user.id, :status => 0, :applied_user_id => User.current.id, :viewed => 0, :applied_id => school.id, :applied_type => "ApplyAddSchools", :name => school.name )
|
|
end
|
|
|
|
else
|
|
data[:result] = 3
|
|
end
|
|
end
|
|
end
|
|
render :json =>data
|
|
end
|
|
|
|
def search_repeat_schoolname
|
|
status = 0 #没有重复的
|
|
name = params[:name]
|
|
|
|
if name
|
|
school = School.where("name = '#{name}'").first
|
|
|
|
if school
|
|
status = 1 #有重复的
|
|
end
|
|
end
|
|
|
|
|
|
render :json =>status
|
|
end
|
|
|
|
def edit_apply_name
|
|
name = params[:name] || ""
|
|
status = -1
|
|
|
|
if name != ""
|
|
applyschool = ApplyAddSchools.where("id=?",params[:id]).first
|
|
|
|
applyschool.name = name.strip
|
|
|
|
if applyschool.school
|
|
applyschool.school.name = name
|
|
applyschool.school.pinyin = Pinyin.t(name.strip, splitter: '')
|
|
applyschool.school.save!
|
|
end
|
|
applyschool.save!
|
|
status = 0
|
|
end
|
|
|
|
render :json=>{:status=>status,:id=>params[:id],:name=>name}
|
|
end
|
|
|
|
def edit_apply_address
|
|
address = params[:address] || ""
|
|
|
|
status = -1
|
|
|
|
if address != ""
|
|
applyschool = ApplyAddSchools.where("id=?",params[:id]).first
|
|
applyschool.address = address
|
|
applyschool.save!
|
|
status = 0
|
|
end
|
|
|
|
render :json=>{:status=>status,:id=>params[:id],:address=>address}
|
|
end
|
|
|
|
def edit_apply_province
|
|
province = params[:province] || ""
|
|
city = params[:city] || ""
|
|
status = -1
|
|
|
|
if(province != "") &&(city != "")
|
|
applyschool = ApplyAddSchools.where("id=?",params[:id]).first
|
|
applyschool.province = province
|
|
applyschool.city = city
|
|
|
|
if applyschool.school
|
|
applyschool.school.province = province
|
|
applyschool.school.save!
|
|
end
|
|
applyschool.save!
|
|
|
|
if applyschool.user_id && applyschool.user_id != 0
|
|
user = User.find(applyschool.user_id)
|
|
user_extention= user.extensions
|
|
user_extention.location = province
|
|
user_extention.location_city = city
|
|
user_extention.save!
|
|
end
|
|
status = 0
|
|
end
|
|
|
|
render :json=>{:status=>status,:id=>params[:id],:province=>province,:city=>city}
|
|
end
|
|
|
|
def destroy
|
|
if @school
|
|
if UserExtensions.where(:school_id => @school.id).count == 0
|
|
School.where(:id=>@school.id).destroy_all
|
|
@school.destroy
|
|
end
|
|
respond_to do |format|
|
|
format.js
|
|
end
|
|
end
|
|
end
|
|
|
|
private
|
|
def find_school
|
|
@school = School.find params[:id]
|
|
rescue ActiveRecord::RecordNotFound
|
|
render_404
|
|
end
|
|
end
|