Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- result = {}
- Brand.operating_review.each_shard do |brand|
- puts "process.. #{brand.code}"
- result[brand.code] ||= []
- reviews = Review.joins(:sub_order).where('reviews.brand_user_id <> sub_orders.brand_user_id')
- i = 0
- c = reviews.count
- reviews.find_each do |review|
- i += 1
- print "\r#{i}/#{c}"
- old_sub_order_id = review.sub_order_id
- sub_order_product_id = review.product.main_product? ? review.product.sub_product_ids.first : review.product_id
- new_sub_order_id = review.brand_user.sub_order_for(sub_order_product_id)&.id
- if new_sub_order_id != old_sub_order_id
- review.update_columns(sub_order_id: new_sub_order_id)
- review.detail.update!(calculated_mileage_dirty: true)
- result[brand.code] << old_sub_order_id
- end
- # puts "before: sub_order_#{old_sub_order_id}, after: sub_order_#{review.sub_order_id}" if review.changed?
- rescue => e
- puts "\n#{e}\n"
- end
- rescue => e
- puts "\n#{e}\n"
- end
Add Comment
Please, Sign In to add comment