|
@@ -23,15 +23,15 @@ class PeopleController < ApplicationController
|
|
|
end
|
|
|
|
|
|
def index
|
|
|
- if params[:lastname].nil?
|
|
|
+ if params[:q].nil?
|
|
|
@people = Person.where(:id => -1)
|
|
|
return self.commonindex
|
|
|
end
|
|
|
|
|
|
- if params[:lastname].nil? or params[:lastname] == ""
|
|
|
+ if params[:q].nil? or params[:q] == ""
|
|
|
@people = Person.preload(:passes).all
|
|
|
else
|
|
|
- @people = Person.preload(:passes).where(:lastname => params[:lastname])
|
|
|
+ @people = Person.preload(:passes).where("fullname LIKE :q", "%#{params[:q]}%")
|
|
|
end
|
|
|
|
|
|
self.commonindex
|
|
@@ -66,9 +66,10 @@ class PeopleController < ApplicationController
|
|
|
if @person.IsManual?
|
|
|
patronymic = @person.Patronymic
|
|
|
patronymic = @person.Patronymic.gsub('Ё', 'Е').gsub('ё', 'е') unless patronymic.nil?
|
|
|
- @availablePasses = Pass.where(:lastname => @person.Lastname.gsub('Ё', 'Е').gsub('ё', 'е'), :firstname => @person.Firstname.gsub('Ё', 'Е').gsub('ё', 'е'), :patronymic => patronymic)
|
|
|
- #@availablePasses = Pass.where(:lastname => @person.Lastname.gsub('Ё', 'Е').gsub('ё', 'е'), :firstname => @person.Firstname.gsub('Ё', 'Е').gsub('ё', 'е')) if @availablePasses.nil? or @availablePasses.size == 0
|
|
|
- @availablePasses = Pass.find_by_sql('SELECT `passes`.* FROM `passes` LEFT JOIN `people` ON `passes`.`person_id` = `people`.`id` WHERE `people`.`id` IS NULL') if @availablePasses.nil? or @availablePasses.size == 0
|
|
|
+ #@availablePasses = Pass.where(:lastname => @person.Lastname.gsub('Ё', 'Е').gsub('ё', 'е'), :firstname => @person.Firstname.gsub('Ё', 'Е').gsub('ё', 'е'), :patronymic => patronymic)
|
|
|
+ ##@availablePasses = Pass.where(:lastname => @person.Lastname.gsub('Ё', 'Е').gsub('ё', 'е'), :firstname => @person.Firstname.gsub('Ё', 'Е').gsub('ё', 'е')) if @availablePasses.nil? or @availablePasses.size == 0
|
|
|
+ #@availablePasses = Pass.find_by_sql('SELECT `passes`.* FROM `passes` LEFT JOIN `people` ON `passes`.`person_id` = `people`.`id` WHERE `people`.`id` IS NULL') if @availablePasses.nil? or @availablePasses.size == 0
|
|
|
+ @availablePasses = Pass.all
|
|
|
hash[:availablePasses] = @availablePasses
|
|
|
end
|
|
|
|
|
@@ -108,7 +109,10 @@ class PeopleController < ApplicationController
|
|
|
def download
|
|
|
require 'net/http'
|
|
|
|
|
|
- people_jraw = get_json_data_by_url "https://api.cps.mephi.ru/people?prepareFormulars=true&apiKey=#{Rails.application.config.cps_api_key}"
|
|
|
+ #people_jraw = get_json_data_by_url "https://api.cps.mephi.ru/people?prepareFormulars=true&apiKey=#{Rails.application.config.cps_api_key}"
|
|
|
+ #return if people_jraw.nil?
|
|
|
+
|
|
|
+ people_jraw = get_json_data_by_url "https://sd.mephi.ru/api/11/get_people.json?api_key=#{Rails.application.config.sd_api_key}"
|
|
|
return if people_jraw.nil?
|
|
|
|
|
|
passes_jraw = get_json_data_by_url "https://api.cps.mephi.ru/passes?apiKey=#{Rails.application.config.cps_api_key}"
|
|
@@ -116,17 +120,22 @@ class PeopleController < ApplicationController
|
|
|
|
|
|
#puts "#{people_jraw.to_yaml}"
|
|
|
|
|
|
- employees = Hash.new
|
|
|
+ personById = Hash.new
|
|
|
+ Person.all.each do |person|
|
|
|
+ personById[person.id] = person
|
|
|
+ end
|
|
|
+
|
|
|
ActiveRecord::Base.transaction do
|
|
|
- people_jraw["arg"].each do |employee|
|
|
|
- person = Person.find_by_id( employee["EmpGUID"].to_i )
|
|
|
+ people_jraw.each do |person_jraw|
|
|
|
+ #person = Person.find_by_id( person_jraw["id"].to_i )
|
|
|
+ person = personById[ person_jraw["id"].to_i ]
|
|
|
if person.nil?
|
|
|
- person = Person.ParseEmployee(employee)
|
|
|
+ person = Person.ParsePerson(person_jraw)
|
|
|
#puts "#{person.to_yaml}"
|
|
|
person.save
|
|
|
else
|
|
|
unless params[:dont_update_people]
|
|
|
- person.UpdateEmployee(employee)
|
|
|
+ person.UpdatePerson(person_jraw)
|
|
|
#puts "#{person.to_yaml}"
|
|
|
person.save if person.changed?
|
|
|
end
|
|
@@ -189,7 +198,8 @@ class PeopleController < ApplicationController
|
|
|
end
|
|
|
end
|
|
|
if ofz_key == ""
|
|
|
- ofz_key = "#{person.Lastname}#{person.Firstname}".delete(' ').delete('?').gsub('Ё', 'Е').gsub('ё', 'е').strip
|
|
|
+ personNameParts = person.fullname.split
|
|
|
+ ofz_key = "#{personNameParts[0]}#{personNameParts[1]}".delete(' ').delete('?').gsub('Ё', 'Е').gsub('ё', 'е').strip
|
|
|
score = 3
|
|
|
end
|
|
|
if ofz_links[ofz_key].nil? or ofz_links[ofz_key].size == 0
|
|
@@ -210,8 +220,8 @@ class PeopleController < ApplicationController
|
|
|
ofz_links[ofz_key].each do |pass_id|
|
|
|
next if passes_raw[ pass_id ]["score"] > score
|
|
|
|
|
|
- passes_raw[ pass_id ]["EmpGUID"] = person.id
|
|
|
- passes_raw[ pass_id ]["score"] = score
|
|
|
+ passes_raw[ pass_id ]["personId"] = person.id
|
|
|
+ passes_raw[ pass_id ]["score"] = score
|
|
|
end
|
|
|
# mutex.unlock
|
|
|
# }
|