Skip to content

Instantly share code, notes, and snippets.

@yangxing-star
Last active August 29, 2015 14:10
Show Gist options
  • Save yangxing-star/2d5e3edb3638943c6115 to your computer and use it in GitHub Desktop.
Save yangxing-star/2d5e3edb3638943c6115 to your computer and use it in GitHub Desktop.
require 'csv'
error = []
CSV.open("#{Padrino.root}/users.csv", 'w' ) do |writer|
writer << %w( ID 昵称 密码 Email 手机 位置(城市) 头像 身份证号 姓名 身份证照片地址 weibo_openid weibo_token weibo_uid tqq2_openid tqq2_token tqq2_uid douban_openid douban_token douban_uid tudou_openid tudou_token tudou_uid 性别 生日 注册时间 注册IP 喜欢的城市 个人描述 积分 学历 职业 语言 会员类别 价格 好友 )
User.all.each do |u|
begin
tqq2_openid = tqq2_token = tqq2_uid = ''
weibo_openid = weibo_token = weibo_uid = ''
tudou_openid = tudou_token = tudou_uid = ''
douban_openid = douban_token = douban_uid = ''
u.identities.each do |id|
if id.provider == 'tqq2'
tqq2_openid = id.openid
tqq2_token = id.token
tqq2_uid = id.uid
end
if id.provider == 'weibo'
weibo_openid = id.openid
weibo_token = id.token
weibo_uid = id.uid
end
if id.provider == 'tudou'
tudou_openid = id.openid
tudou_token = id.token
tudou_uid = id.uid
end
if id.provider == 'douban'
douban_openid = id.openid
douban_token = id.token
douban_uid = id.uid
end
end
lgs = []
u.languages.each do |l|
lgs << l.to_s
end
idcard_obverse = u.idcard_obverse.nil? ? nil : u.idcard_obverse.image.url
idcard_obverse_desc = u.idcard_obverse.nil? ? nil : u.idcard_obverse.desc
password = u.crypted_password.blank? ? '' : u.password_clean
price = u.tour.try(:price)
frients = (u.following_ids + u.follower_ids).join(';')
photos = []
u.photos.each do |p|
photos << p.image.url
end
ps = photos.join(';')
writer << [ u.id, u.nickname, password, u.email, u.mobile, u.location.try(:city).to_s,
u.avatar.url, idcard_obverse_desc, u.name, idcard_obverse,
weibo_openid, weibo_token, weibo_uid, tqq2_openid, tqq2_token, tqq2_uid,
douban_openid, douban_token, douban_uid, tudou_openid, tudou_token, tudou_uid,
u.gender, u.birthday.to_s, u.created_at.strftime('%Y-%m-%d %H:%M:%S'),
u.logged_ip, u.liked_ins, u.desc, u.point, u.education, u.career, lgs, User.characters.invert[u.character.to_sym], price,
frients, ps ]
rescue Exception => e
error << e.to_s
end
end
end
CSV.open("#{Padrino.root}/marks.csv", 'w' ) do |writer|
writer << %w( ID 用户ID 轨迹内容 发布时间 )
Mark.all.each do |m|
writer << [ m.id, m.user_id, m.content, m.created_at.to_s ]
end
end
CSV.open("#{Padrino.root}/marks_photos.csv", 'w' ) do |writer|
writer << %w( 图片ID 图片url 轨迹ID )
Mark.all.each do |m|
m.photos.each do |p|
writer << [ p.id, p.image.url, m.id ]
end
end
end
CSV.open("#{Padrino.root}/marks_comments.csv", 'w' ) do |writer|
writer << %w( 评论ID 轨迹ID 用户ID 评论内容 )
Mark.all.each do |m|
m.comments.each do |c|
writer << [ c.id, m.id, m.user_id, c.content ]
end
end
end
CSV.open("#{Padrino.root}/extras.csv", 'w' ) do |writer|
writer << %w( 用户ID 名称 描述 开始时间 结束时间 数量 价格 计费方式 承担方式 )
Service.all.each do |s|
writer << [ s.id, s.user_id, s.name, s.desc, s.started_at, s.ended_at, s.num, s.price, s.charge, s.paid_by ]
end
end
CSV.open("#{Padrino.root}/orders.csv", 'w' ) do |writer|
writer << %w( 订单ID 状态 现金 收入 支付时间 客人确认完成时间 主人拒绝时间 主人同意时间 客人提交时间 附加服务费 住宿费 交通费 顾问费 优惠金额 订单总价格 客人ID 主人ID )
Order.all.each do |o|
writer << [ o.id, o.status_label, o.cash, o.gross, o.paid_at.to_s,
o.finished_at.to_s, o.refused_at.to_s, o.confirmed_at.to_s,
o.submitted_at.to_s, o.extras_price, o.livings_price, o.travellings_price,
o.services_price, o.discount, o.total_price, o.guest_id, o.user_id ]
end
end
CSV.open("#{Padrino.root}/extras_photos.csv", 'w' ) do |writer|
writer << %w( 特色服务ID 图片ID 图片 图片描述 )
Service.all.each do |s|
s.photos.each do |p|
writer << [ s.id, p.id, p.image.url, p.desc ]
end
end
end
CSV.open("#{Padrino.root}/extras_comments.csv", 'w' ) do |writer|
writer << %w( 特色服务ID 评论ID 评论内容 )
Service.all.each do |s|
s.comments.each do |c|
writer << [ s.id, c.id, c.content ]
end
end
end
CSV.open("#{Padrino.root}/orders_comments.csv", 'w' ) do |writer|
writer << %w( 订单ID 评论ID 评论内容 类型 )
Order.all.each do |o|
writer << [ o.id, o.user_review.id, o.user_review.content, '客评主' ] unless o.user_review.nil?
writer << [ o.id, o.guest_review.id, o.guest_review.content, '主评客' ] unless o.guest_review.nil?
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment