VRFS-1664 added paging to fetc_recipients
This commit is contained in:
parent
e35e318884
commit
2719b35dee
|
|
@ -60,7 +60,7 @@ SQL
|
|||
ActiveRecord::Base.connection.execute(sql)
|
||||
end
|
||||
|
||||
def fetch_recipients
|
||||
def fetch_recipients(per_page=500)
|
||||
objs = []
|
||||
# load new musicians into tmp table
|
||||
self._fetch_new_musicians
|
||||
|
|
@ -68,20 +68,27 @@ SQL
|
|||
# load email receivers into tmp table
|
||||
self._fetch_eligible_receivers
|
||||
|
||||
sql = "SELECT DISTINCT receiver_id FROM #{TMP_PAIRS} GROUP BY receiver_id"
|
||||
ActiveRecord::Base.connection.execute(sql).each do |result|
|
||||
receiver = User.find_by_id(result['receiver_id'])
|
||||
|
||||
sql = "SELECT new_user_id, latency FROM #{TMP_PAIRS} WHERE receiver_id = '#{receiver.id}'"
|
||||
new_musicians = ActiveRecord::Base.connection.execute(sql).collect do |rr|
|
||||
new_user = User.where(['id = ?',rr['new_user_id']])
|
||||
.limit(1)
|
||||
.includes([:instruments])
|
||||
.first
|
||||
new_user.latency_store = result['latency']
|
||||
new_user
|
||||
countsql = "SELECT DISTINCT COUNT(receiver_id) AS num FROM #{TMP_PAIRS} GROUP BY receiver_id"
|
||||
num_pair = ActiveRecord::Base.connection.execute(countsql)[0]['num'].to_i
|
||||
loops = (num_pair / per_page) + (num_pair % per_page) - 1
|
||||
0.upto(loops) do |nn|
|
||||
offset = nn * per_page
|
||||
sql =<<SQL
|
||||
SELECT DISTINCT receiver_id
|
||||
FROM #{TMP_PAIRS}
|
||||
GROUP BY receiver_id
|
||||
ORDER BY receiver_id ASC
|
||||
LIMIT #{per_page}
|
||||
OFFSET #{offset}
|
||||
SQL
|
||||
ActiveRecord::Base.connection.execute(sql).each do |result|
|
||||
receiver = User.find_by_id(result['receiver_id'])
|
||||
new_musicians = User.select("users.*, #{TMP_PAIRS}.latency")
|
||||
.joins("INNER JOIN #{TMP_PAIRS} ON #{TMP_PAIRS}.new_user_id = users.id")
|
||||
.where(["#{TMP_PAIRS}.receiver_id = ?", receiver.id])
|
||||
.includes(:instruments)
|
||||
block_given? ? yield(receiver, new_musicians) : objs << [receiver, new_musicians]
|
||||
end
|
||||
block_given? ? yield(receiver, new_musicians) : objs << [receiver, new_musicians]
|
||||
end
|
||||
objs
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue