From f38e01edaf1760727b6fb1c8def68e7cf8896c3f Mon Sep 17 00:00:00 2001 From: jasder Date: Tue, 11 May 2021 18:17:17 +0800 Subject: [PATCH] =?UTF-8?q?FIX=20*=E4=B8=80=E7=BA=A7=E6=9D=BF=E5=9D=97?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E6=9F=A5=E7=9C=8B=E5=B8=96=E5=AD=90=20*=20?= =?UTF-8?q?=E6=9D=BF=E5=9D=97=E7=AE=A1=E7=90=86=E4=B8=AD=E7=9A=84=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E5=B8=96=E5=AD=90=E6=B7=BB=E5=8A=A0=E8=B6=85=E7=BA=A7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/forum_sections_service.rb | 12 ++++++------ app/services/memos_service.rb | 10 +++++++++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/services/forum_sections_service.rb b/app/services/forum_sections_service.rb index fdfb14ace..3317a37bb 100644 --- a/app/services/forum_sections_service.rb +++ b/app/services/forum_sections_service.rb @@ -364,7 +364,7 @@ class ForumSectionsService return {status: -1, message: "请登录"} unless check_user_permission(current_user, params[:id]) select_section_ids = [params[:id]] unless @forum_section.parent_id.present? - children_forums = @forum_section.children_forum.pluck(:id) + children_forums = @forum_section.child_ids select_section_ids = select_section_ids + children_forums end select_section_ids.uniq @@ -389,7 +389,7 @@ class ForumSectionsService else memo_min_sections = memo.memo_forums.first end - memo_last_section = memo_min_sections.forum_section + memo_last_section = memo_min_sections&.forum_section memo_list = { memo_id: memo.id, @@ -416,7 +416,7 @@ class ForumSectionsService select_section_ids = [params[:id]] unless @forum_section.parent_id.present? - children_forums = @forum_section.children_forum.pluck(:id) + children_forums = @forum_section.child_ids select_section_ids = select_section_ids + children_forums end select_section_ids.uniq @@ -462,7 +462,7 @@ class ForumSectionsService select_section_ids = [params[:id]] unless @forum_section.parent_id.present? - children_forums = @forum_section.children_forum.pluck(:id) + children_forums = @forum_section.child_ids select_section_ids = select_section_ids + children_forums end select_section_ids.uniq @@ -473,7 +473,7 @@ class ForumSectionsService offset = page * LIMIT #全部的父帖子 memo_forum_section_ids = MemoForum.where(forum_id: select_section_ids).pluck(:memo_id).uniq - memos_all = Memo.where(hidden: false,parent_id: nil, id: memo_forum_section_ids).order("created_at desc") + memos_all = Memo.where(hidden: false,parent_id: nil, forum_section_id: select_section_ids).order("created_at desc") # memos_all = Memo.where(hidden: false, parent_id: nil).joins(:memo_forums).where("memo_forums.forum_id in (#{select_section_ids.join(",")})") if params[:type].present? if params[:type] == "sticky" @@ -499,7 +499,7 @@ class ForumSectionsService else memo_min_sections = memo.memo_forums.first end - memo_last_section = memo_min_sections.forum_section + memo_last_section = memo_min_sections&.forum_section memo_list = { memo_id: memo.id, diff --git a/app/services/memos_service.rb b/app/services/memos_service.rb index 28e2b2363..11742cdf7 100644 --- a/app/services/memos_service.rb +++ b/app/services/memos_service.rb @@ -596,7 +596,14 @@ class MemosService page = params[:page].to_i > 0 ? (params[:page].to_i - 1) : 0 offset = page * LIMIT - all_memos = forum_section.memos.posts + all_memos = + if forum_section.is_root? + forum_section_ids = forum_section.child_ids << forum_section.id + Rails.logger.info "######### forum_section_ids: #{forum_section_ids}" + Memo.where(forum_section_id: forum_section_ids) + else + forum_section.memos.posts + end select_type = params[:select_type] case select_type.to_s when "is_fine" @@ -729,6 +736,7 @@ class MemosService def check_banned_permission current_user, memo_id + return true if current_user&.admin? forum_id = MemoForum&.where(is_children: false, memo_id: memo_id)&.first.try(:forum_id).to_s user_banned_permission current_user, forum_id end