Skip to content

Instantly share code, notes, and snippets.

@mimosz
Created May 11, 2012 09:09
Show Gist options
  • Save mimosz/2658553 to your computer and use it in GitHub Desktop.
Save mimosz/2658553 to your computer and use it in GitHub Desktop.
Ruby:"店铺会员信息导出"
user = User.all[2]
# 同步最新的店铺会员
user.members_sync
# 设定时间区间
start_at='2012-04-01'.to_date
end_at='2012-05-09'.to_date
range = start_at.beginning_of_day..end_at.end_of_day
members = user.members.where(last_trade_time: range)
# 获得交易集合
trade_ids = members.distinct(:biz_order_id)
buyers = {}
trades = Trade.any_in(tid: trade_ids.uniq)
trades.each do |trade|
buyers[trade.id] = { address: (trade.receiver_city + trade.receiver_address), mobile: trade.receiver_mobile, name: trade.receiver_name }
end
# 导出csv
require 'csv'
CSV.open("./#{Time.now.to_i}.csv", "wb:GB18030") do |csv|
csv << ['近期交易时间', '淘宝ID', '真实姓名', '交易总额', '交易次数', '平均客单价', '联系电话', '地址']
members.each do |member|
buyer = buyers[member.biz_order_id.to_s]
unless buyer.nil?
csv << [
member.last_trade_time,
member.buyer_nick,
buyer[:name],
member.trade_amount,
member.trade_count,
(member.trade_amount.to_f / member.trade_count.to_f).round(2),
buyer[:mobile],
buyer[:address]
]
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment