
Untitled
By: a guest on
May 2nd, 2012 | syntax:
None | size: 1.70 KB | hits: 13 | expires: Never
def calculate_platform_caches
date = @job.date
# Calculate platforms incomes
query = "SELECT object_id, money FROM user_transactions WHERE type_id = #{UserTransaction::TP_INCOME_FROM_PLATFORM} AND created_at = '#{date}'"
info "Select data for update platforms caches"
res = UserTransaction.connection.select_rows query
platforms = Hash.new
# Prepare new values hashes
res.each do |row|
id = row[0].to_i
platforms[id] ||= {}
platforms[id]['all_cost'] = "all_cost + #{row[1]}"
platforms[id]['yesterday_cost'] = "#{row[1]}"
platforms[id]['cost_update_date'] = "'#{date}'"
end
#Calculate platforms weekly incomes
query = "SELECT object_id, SUM(money) FROM user_transactions WHERE type_id = #{UserTransaction::TP_INCOME_FROM_PLATFORM} AND created_at >= '#{date}'::date - interval '7 days' AND created_at <= '#{date}' GROUP BY object_id"
info "Select weekly incomes data for update platforms caches"
res = UserTransaction.connection.select_rows query
res.each do |row|
id = row[0].to_i
platforms[id] ||= {}
platforms[id]['weekly_cost'] = "#{row[1]}"
end
#Calculate platforms monthly incomes
query = "SELECT object_id, SUM(money) FROM user_transactions WHERE type_id = #{UserTransaction::TP_INCOME_FROM_PLATFORM} AND created_at >= '#{date}'::date - interval '30 days' AND created_at <= '#{date}' GROUP BY object_id"
info "Select monthly incomes data for update platforms caches"
res = UserTransaction.connection.select_rows query
res.each do |row|
id = row[0].to_i
platforms[id] ||= {}
platforms[id]['monthly_cost'] = "#{row[1]}"
end
platforms
end