From 459e89fafc238c2590bf686a71c052efbdd545c0 Mon Sep 17 00:00:00 2001 From: chiu Date: Thu, 22 Aug 2024 02:37:19 +0000 Subject: [PATCH] Fix error for get_feed_cache --- app/models/site_feed_annc.rb | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/models/site_feed_annc.rb b/app/models/site_feed_annc.rb index 187437e..41b94c6 100644 --- a/app/models/site_feed_annc.rb +++ b/app/models/site_feed_annc.rb @@ -307,17 +307,22 @@ class SiteFeedAnnc if feeds_time_field.nil? feeds_time_field = 'postdate' end - match_cond = {"channel_key"=>channel_key} + site_feed_anncs = self.where("channel_key" => channel_key) if !merge_with_category.blank? && merge_with_category.exclude?('all') - match_cond["merge_with_category"] = {"$in"=>merge_with_category} + site_feed_anncs = site_feed_anncs.where(:merge_with_category.in => merge_with_category) end if site_source - match_cond["channel_title.#{locale}"] = site_source + site_feed_anncs = site_feed_anncs.where({"channel_title.#{locale}" => site_source}) end + site_feed_annc_ids = site_feed_anncs.pluck(:id) + match_cond = { + "site_feed_annc_id" => {"$in" => site_feed_annc_ids}, + "locale" => locale + } + pipeline = [ - {"$match"=>match_cond}, - {"$project"=>{"data"=>"$all_contents_for_feed.#{locale}"}}, - {"$unwind"=>"$data"}, + {"$match" => match_cond}, + {"$project"=>{"data"=>1}}, {"$sort"=>{"data.is_hidden"=>-1,"data.is_top"=>-1,"data.#{feeds_time_field}"=>-1}}, {"$match"=>{"data.is_hidden"=>{"$ne"=>true}, "data.postdate"=>{"$lte"=>Time.now}, @@ -328,7 +333,8 @@ class SiteFeedAnnc if max_len pipeline << {"$limit"=> max_len} end - self.collection.aggregate(pipeline).collect do |data| + + SiteFeedAnncDetail.collection.aggregate(pipeline).collect do |data| tmp = data['data'] if !(tmp['category'].is_a? String) tmp['category'] = tmp['category'][locale]