From eced528c8fefe764cf589b710157c45a7bcdea51 Mon Sep 17 00:00:00 2001
From: cxt
Date: Fri, 22 Sep 2017 10:19:59 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8A=8A=E5=B7=B2=E5=8F=91=E5=B8=83=E7=9A=84?=
=?UTF-8?q?=E8=B7=AF=E5=BE=84=E6=8E=92=E5=9C=A8=E6=9C=80=E5=89=8D=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/shixuns_controller.rb | 6 +++---
app/controllers/subjects_controller.rb | 11 ++++++++---
app/models/subject.rb | 9 +++++++++
app/views/subjects/_subject_list.html.erb | 12 ++++++------
4 files changed, 26 insertions(+), 12 deletions(-)
diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb
index f4bbc6ad8..d9a46da0a 100644
--- a/app/controllers/shixuns_controller.rb
+++ b/app/controllers/shixuns_controller.rb
@@ -243,8 +243,8 @@ class ShixunsController < ApplicationController
@order = params[:order] || "myshixun_count"
bsort = params[:sort] || "desc"
@sort = bsort == "desc" ? "asc" : "desc"
- if @order == "created_at"
- order_str = "#{Shixun.table_name}.created_at #{bsort}"
+ if @order == "updated_at"
+ order_str = "#{Shixun.table_name}.updated_at #{bsort}"
else
order_str = "myshixun_count #{bsort}, #{Shixun.table_name}.updated_at #{bsort}"
end
@@ -300,7 +300,7 @@ class ShixunsController < ApplicationController
when nil, "0"
@shixuns = @shixuns
end
- if @order == "created_at"
+ if @order == "updated_at"
@shixuns =@shixuns.reorder(order_str)
else
# 最热排序
diff --git a/app/controllers/subjects_controller.rb b/app/controllers/subjects_controller.rb
index f14ec8017..45575406f 100644
--- a/app/controllers/subjects_controller.rb
+++ b/app/controllers/subjects_controller.rb
@@ -8,12 +8,17 @@ class SubjectsController < ApplicationController
include ApplicationHelper
def index
- @order = params[:order] || "updated_at"
- bsort = params[:sort] || "asc"
+ @order = params[:order] || "myshixun_count"
+ bsort = params[:sort] || "desc"
@sort = bsort == "desc" ? "asc" : "desc"
search = params[:search]
#ids = Subject.find_by_sql("select group_concat(id) as allId from subjects where id in (SELECT distinct(subject_id) FROM `stages`)")
- @subjects = Subject.where("hidden = 0").reorder("#{@order} #{bsort}")
+ if @order == "myshixun_count"
+ #@shixuns = @shixuns.select("shixuns.*, (select count(myshixuns.id) from myshixuns where myshixuns.shixun_id = shixuns.id group by shixuns.id) AS myshixunCount").reorder("status = 2 desc, myshixunCount desc")
+ @subjects = Subject.where("hidden = 0").select("subjects.*, (select count(myshixuns.id) from myshixuns, stage_shixuns where myshixuns.shixun_id = stage_shixuns.shixun_id and stage_shixuns.subject_id = subjects.id group by subjects.id) AS myshixunCount").reorder("status = 2 desc, myshixunCount #{bsort}")
+ else
+ @subjects = Subject.where("hidden = 0").reorder("#{@order} #{bsort}")
+ end
@subject_created_count = Subject.where(:user_id => User.current.id).count
@subjects_all_count = @subjects.count
#@subjects = Subject.where("name like ?", "%#{search}%").reorder("#{@order} #{@sort}")
diff --git a/app/models/subject.rb b/app/models/subject.rb
index 7eb102bf5..fc4fa393c 100644
--- a/app/models/subject.rb
+++ b/app/models/subject.rb
@@ -35,6 +35,15 @@ class Subject < ActiveRecord::Base
count
end
+ def subject_users
+ count = 0
+ self.stage_shixuns.each do |stage_shixun|
+ shixun = stage_shixun.shixun
+ count += shixun.myshixuns.count
+ end
+ count
+ end
+
def subject_score
score = 0
self.stage_shixuns.each do |stage_shixun|
diff --git a/app/views/subjects/_subject_list.html.erb b/app/views/subjects/_subject_list.html.erb
index 6bca42ab6..908af0a9e 100644
--- a/app/views/subjects/_subject_list.html.erb
+++ b/app/views/subjects/_subject_list.html.erb
@@ -1,9 +1,9 @@
- - ">
- <%= link_to "最热", subjects_path(:order => "updated_at", :search => @search, :sort => @sort), :remote => true %>
+
- ">
+ <%= link_to "最热", subjects_path(:order => "myshixun_count", :search => @search, :sort => @sort), :remote => true %>
- - ">
- <%= link_to "最新", subjects_path(:order => "created_at", :search => @search, :sort => @sort), :remote => true %>
+
- ">
+ <%= link_to "最新", subjects_path(:order => "updated_at", :search => @search, :sort => @sort), :remote => true %>
- 共<%= @subjects_count %>个检索结果
@@ -43,8 +43,8 @@
<% if subject.subject_score > 0 %>
<%= subject.subject_score %>
<% end %>
- <% if subject.subject_challenges > 0 %>
- <%= subject.subject_challenges %>
+ <% if subject.subject_users > 0 %>
+ <%= subject.subject_users %>
<% end %>