accelerate speed
This commit is contained in:
parent
2c53177389
commit
12d35e0645
|
@ -13,7 +13,8 @@ wb.add_worksheet(name: "EventNewsModule") do |sheet|
|
||||||
row << t("category")
|
row << t("category")
|
||||||
row1 << "select"
|
row1 << "select"
|
||||||
t = ""
|
t = ""
|
||||||
categories = @module_app.categories.asc(:created_at)
|
categories = @module_app.categories.asc(:created_at).to_a
|
||||||
|
categories_ids_map = categories.to_enum.with_index.map{|v,i| [v.id,i]}.to_h
|
||||||
categories.each_with_index do |cat,i|
|
categories.each_with_index do |cat,i|
|
||||||
t = t + "#{i}" + " -> " + cat.title + ", "
|
t = t + "#{i}" + " -> " + cat.title + ", "
|
||||||
end
|
end
|
||||||
|
@ -27,7 +28,8 @@ wb.add_worksheet(name: "EventNewsModule") do |sheet|
|
||||||
row << t("tags")
|
row << t("tags")
|
||||||
row1 << "select"
|
row1 << "select"
|
||||||
t = ""
|
t = ""
|
||||||
tags = @module_app.tags.asc(:created_at)
|
tags = @module_app.tags.asc(:created_at).to_a
|
||||||
|
tag_ids_map = tags.to_enum.with_index.map{|v,i| [v.id,i]}.to_h
|
||||||
tags.each_with_index do |tag,i|
|
tags.each_with_index do |tag,i|
|
||||||
t = t + "#{i}" + " -> " + tag.name + ", "
|
t = t + "#{i}" + " -> " + tag.name + ", "
|
||||||
end
|
end
|
||||||
|
@ -165,13 +167,15 @@ wb.add_worksheet(name: "EventNewsModule") do |sheet|
|
||||||
sheet.add_row row, :style => heading
|
sheet.add_row row, :style => heading
|
||||||
sheet.add_row row1
|
sheet.add_row row1
|
||||||
sheet.add_row row2, :style => example
|
sheet.add_row row2, :style => example
|
||||||
|
tag_anns_map = Tagging.collection.aggregate([
|
||||||
|
{"$match" => {"taggable_id"=>{"$in"=>@event_news.pluck(:id)}}},
|
||||||
|
{"$group" => {"_id"=>"$taggable_id","children"=>{"$push"=>"$tag_id"}}}
|
||||||
|
]).map{|v| [v['_id'],v['children']]}.to_h
|
||||||
@event_news.each do |anns|
|
@event_news.each do |anns|
|
||||||
row = []
|
row = []
|
||||||
row << categories.to_a.index(anns.category)
|
row << categories_ids_map[anns.category_id]
|
||||||
t = []
|
t = Array(tag_anns_map[anns.id]).map do |tag_id|
|
||||||
anns.tags.each do |tag|
|
tag_ids_map[tag_id]
|
||||||
t << tags.to_a.index(tag)
|
|
||||||
end
|
end
|
||||||
row << t.join(",")
|
row << t.join(",")
|
||||||
row << (anns.event_date.strftime("%Y/%m/%d %H:%M") rescue "")
|
row << (anns.event_date.strftime("%Y/%m/%d %H:%M") rescue "")
|
||||||
|
|
Loading…
Reference in New Issue