Skip to content

Instantly share code, notes, and snippets.

@mimosz
Created August 3, 2012 09:59
Show Gist options
  • Save mimosz/3246384 to your computer and use it in GitHub Desktop.
Save mimosz/3246384 to your computer and use it in GitHub Desktop.
从订单中获取,会员联系信息。
def mobile_specs(mobile)
mobile = mobile.to_s[0..2].to_i # 号段
china_mobile = {
'2G' => [134, 135, 136, 137, 138, 139, 150, 151, 152, 157, 158, 159, 182],
'3G' => [187, 188]
}
china_unicom = {
'2G' => [130, 131, 132, 155, 156],
'3G' => [185, 186]
}
china_telecom = {
'2G' => [133, 153],
'3G' => [180, 189]
}
case
when china_mobile['2G'].include?(mobile)
{ carrier: '中国移动', network: '2G' }
when china_mobile['3G'].include?(mobile)
{ carrier: '中国移动', network: '3G' }
when china_unicom['2G'].include?(mobile)
{ carrier: '中国联通', network: '2G' }
when china_unicom['3G'].include?(mobile)
{ carrier: '中国联通', network: '3G' }
when china_telecom['2G'].include?(mobile)
{ carrier: '中国电信', network: '2G' }
when china_telecom['3G'].include?(mobile)
{ carrier: '中国电信', network: '3G' }
else
{ carrier: mobile, network: mobile }
end
end
def cache_receivers(member, trade)
current_receiver = nil
if member.receivers.exists?
current_receiver = member.receivers.where(
receiver_mobile: trade.receiver_mobile,
receiver_name: trade.receiver_name,
receiver_address: trade.receiver_address,
).last
end
# 检测:手机号、姓名、地址,是否存在。
if current_receiver.nil?
specs = mobile_specs(trade.receiver_mobile)
member.receivers << Receiver.new({
receiver_address: trade.receiver_address,
receiver_city: trade.receiver_city,
receiver_district: trade.receiver_district,
receiver_mobile: trade.receiver_mobile,
receiver_name: trade.receiver_name,
receiver_state: trade.receiver_state,
receiver_zip: trade.receiver_zip,
mobile_carrier: specs[:carrier],
mobile_network: specs[:network],
})
member.save
end
end
def process(user)
trades = user.trades
total = trades.count
user.trades.each do |trade|
puts "======================#{total}"
member = user.members.where(buyer_nick: trade.buyer_nick).last
cache_receivers(member, trade) if member
total -= 1
end
end
user = User.all[5]
process(user)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment