Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 2nd, 2012  |  syntax: None  |  size: 1.70 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. def calculate_platform_caches
  2.     date = @job.date
  3.     # Calculate platforms incomes
  4.     query = "SELECT object_id, money FROM user_transactions WHERE type_id = #{UserTransaction::TP_INCOME_FROM_PLATFORM} AND created_at = '#{date}'"
  5.     info "Select data for update platforms caches"
  6.     res = UserTransaction.connection.select_rows query
  7.     platforms = Hash.new
  8.  
  9.     # Prepare new values hashes
  10.     res.each do |row|
  11.       id = row[0].to_i
  12.       platforms[id] ||= {}
  13.       platforms[id]['all_cost'] = "all_cost + #{row[1]}"
  14.       platforms[id]['yesterday_cost'] = "#{row[1]}"
  15.       platforms[id]['cost_update_date'] = "'#{date}'"
  16.     end
  17.  
  18.     #Calculate platforms weekly incomes
  19.     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"
  20.     info "Select weekly incomes data for update platforms caches"
  21.     res = UserTransaction.connection.select_rows query
  22.     res.each do |row|
  23.       id = row[0].to_i
  24.       platforms[id] ||= {}
  25.       platforms[id]['weekly_cost'] = "#{row[1]}"
  26.     end
  27.  
  28.     #Calculate platforms monthly incomes
  29.     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"
  30.     info "Select monthly incomes data for update platforms caches"
  31.     res = UserTransaction.connection.select_rows query
  32.     res.each do |row|
  33.       id = row[0].to_i
  34.       platforms[id] ||= {}
  35.       platforms[id]['monthly_cost'] = "#{row[1]}"
  36.     end
  37.  
  38.     platforms
  39.   end