From f8abd46ae945279253741f2181b261d1d58488cb Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 29 Apr 2016 15:52:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/blogs_controller.rb | 7 ++++++- app/controllers/boards_controller.rb | 5 ++++- app/controllers/news_controller.rb | 5 ++++- app/controllers/users_controller.rb | 6 +++++- app/helpers/application_helper.rb | 3 +-- 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/app/controllers/blogs_controller.rb b/app/controllers/blogs_controller.rb index 6bb90afe1..6df683948 100644 --- a/app/controllers/blogs_controller.rb +++ b/app/controllers/blogs_controller.rb @@ -24,7 +24,12 @@ class BlogsController < ApplicationController #根据 赞+回复数排序 if @order.to_i == 2 @type = 2 - @b_sort == 1 ? @topics = @topics.sort{|x,y| get_praise_num(x) + (x.parent ? x.parent.children.count : x.children.count) <=> get_praise_num(y) + (y.parent ? y.parent.children.count : y.children.count) } : @topics = @topics.sort{|x,y| get_praise_num(y) + (y.parent ? y.parent.children.count : y.children.count) <=> get_praise_num(x) + (x.parent ? x.parent.children.count : x.children.count) } + + @topics.each do |topic| + topic[:infocount] = get_praise_num(topic) + (topic.parent ? topic.parent.children.count : topic.children.count) + end + + @b_sort == 1 ? @topics = @topics.sort{|x,y| x[:infocount] <=> y[:infocount] } : @topics = @topics.sort{|x,y| y[:infocount] <=> x[:infocount] } @topics = sort_by_sticky @topics else diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index 0bccdd139..260c28b16 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -124,7 +124,10 @@ class BoardsController < ApplicationController #根据 赞+回复数排序 if @order.to_i == 2 @type = 2 - @b_sort == 1 ? @topics = @topics.sort{|x,y| get_praise_num(x) + (x.parent ? x.parent.children.count : x.children.count) <=> get_praise_num(y) + (y.parent ? y.parent.children.count : y.children.count) } : @topics = @topics.sort{|x,y| get_praise_num(y) + (y.parent ? y.parent.children.count : y.children.count) <=> get_praise_num(x) + (x.parent ? x.parent.children.count : x.children.count) } + @topics.each do |topic| + topic[:infocount] = get_praise_num(topic) + (topic.parent ? x.parent.children.count : topic.children.count) + end + @b_sort == 1 ? @topics = @topics.sort{|x,y| x[:infocount] <=> y[:infocount] } : @topics = @topics.sort{|x,y| y[:infocount] <=> x[:infocount] } @topics = sort_by_sticky @topics else @type = 1 diff --git a/app/controllers/news_controller.rb b/app/controllers/news_controller.rb index d8e83de80..f47471e0f 100644 --- a/app/controllers/news_controller.rb +++ b/app/controllers/news_controller.rb @@ -104,7 +104,10 @@ class NewsController < ApplicationController #根据 赞+回复数排序 if @order.to_i == 2 @type = 2 - @b_sort == 1 ? scope_order = scope_order.sort{|x,y| get_praise_num(x) + x.comments.count <=> get_praise_num(y) + y.comments.count } : scope_order = scope_order.sort{|x,y| get_praise_num(y) + y.comments.count <=> get_praise_num(x) + x.comments.count } + scope_order.each do |topic| + topic[:infocount] = get_praise_num(topic) + topic.comments.count + end + @b_sort == 1 ? scope_order = scope_order.sort{|x,y| x[:infocount] <=> y[:infocount] } : scope_order = scope_order.sort{|x,y| y[:infocount] <=> x[:infocount] } scope_order = sort_by_sticky scope_order else @type = 1 diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 554afdb20..6cb0c8b53 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2913,7 +2913,11 @@ class UsersController < ApplicationController #根据 问题+资源数排序 @project.project_score.issue_num @project.project_score.attach_num if @order.to_i == 2 @type = 2 - @c_sort == 1 ? (@projects = @projects.sort{|x,y| x.project_score.issue_num+x.project_score.attach_num <=> y.project_score.issue_num+y.project_score.attach_num }) : (@projects = @projects.sort{|x,y| y.project_score.issue_num+y.project_score.attach_num <=> x.project_score.issue_num+x.project_score.attach_num }) + @projects.each do |project| + project[:infocount] = project.project_score.issue_num+project.project_score.attach_num + end + + @c_sort == 1 ? (@projects = @projects.sort{|x,y| x[:infocount] <=> y[:infocount] }) : (@projects = @projects.sort{|x,y| y[:infocount] <=> x[:infocount] }) else @type = 1 end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 57faf739d..4cc13dde0 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -3065,7 +3065,7 @@ def host_with_protocol return Setting.protocol + "://" + Setting.host_name end -#将有置顶属性的提到数组前面 +#将有置顶属性的提到数组前面 #infocount 相同的按时间降序排列 def sort_by_sticky topics tmpTopics = [] tmpIndex = 0 @@ -3084,7 +3084,6 @@ def sort_by_sticky topics end topics = tmpTopics - return topics end