Created
November 14, 2012 19:29
-
-
Save mimosz/4074194 to your computer and use it in GitHub Desktop.
超卖补货,部分依旧缺货。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
user = User.last | |
# 订单列表 | |
trades = CSV.read('trades.csv', 'rb:GB18030:UTF-8', headers: true, col_sep: ';') | |
trade_ids = [] | |
@items = {} | |
trades.each do |trade| | |
trade_ids << trade['TID'] | |
@items[trade['SKU']] = 0 unless @items.has_key?(trade['SKU']) | |
end | |
trade_ids.uniq! | |
# 库存数 | |
skus_data = CSV.read('all_items.csv', 'rb:GB18030:UTF-8', headers: true, col_sep: ';') | |
skus_data.each do |sku| | |
@items[sku['SKU']] = 0 unless @items.has_key?(sku['SKU']) | |
@items[sku['SKU']] += sku['NUM'].to_i | |
end | |
# 同步订单 | |
counter = 0 | |
trade_ids.each_slice(1000).to_a.each do |trades| | |
Trade.sync_orders(user.session, trades) | |
counter += 1000 | |
end | |
# 补货 | |
def check_num(sku, num) | |
status = if @items.has_key?(sku) | |
if @items[sku] > 0 | |
if (@items[sku] - num) >= 0 | |
@items[sku] -= num | |
'补货' | |
else | |
'缺货' | |
end | |
else | |
'缺货' | |
end | |
else | |
'有货' | |
end | |
end | |
sent_ids = [] | |
header_row = ['订单号', '卖家昵称', '收货人', '手机', '付款', '付款时间', '城市', '数量', '金额', '状态', 'SKU', '宝贝ID'] | |
footer_row = ['', '', '', '', '', '', ''] | |
CSV.open('缺货处理.csv', "wb:GB18030", col_sep: ',') do |csv| | |
trades = Trade.in(_id: trade_ids).asc(:pay_time) | |
csv << header_row | |
trades.each do |trade| | |
if trade.status == 'WAIT_SELLER_SEND_GOODS' | |
first = [ | |
trade._id, | |
trade.buyer_nick, | |
trade.receiver_name, | |
trade.receiver_mobile, | |
trade.payment, | |
trade.pay_time.in_time_zone.strftime("%Y-%m-%d %H:%M:%S"), | |
trade.receiver_city | |
] | |
trade.orders.each do |order| | |
row = [ | |
order.num, | |
order.payment, | |
check_num(order.outer_sku_id, order.num), | |
order.outer_sku_id, | |
order.num_iid | |
] | |
csv << first + row | |
end | |
else | |
sent_ids << trade._id | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment