修改首页定制中热门项目排序方式的实现
This commit is contained in:
parent
4542b9e21a
commit
f83336aed0
|
@ -24,24 +24,19 @@ class WelcomeController < ApplicationController
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@first_page = FirstPage.where("page_type = 'project'").first
|
@first_page = FirstPage.where("page_type = 'project'").first
|
||||||
@hot_projects = find_miracle_project(10, 3)
|
|
||||||
@hot_projects_ids = []
|
|
||||||
@hot_projects.each do |p|
|
|
||||||
@hot_projects_ids << p
|
|
||||||
end
|
|
||||||
@projects_all = Project.active.visible.
|
|
||||||
joins("LEFT JOIN #{ProjectStatus.table_name} ON #{Project.table_name}.id = #{ProjectStatus.table_name}.project_id").
|
|
||||||
where("#{Project.table_name}.project_type = ? and #{Project.table_name}.id in (?)", Project::ProjectType_project,@hot_projects_ids)
|
|
||||||
if @first_page.nil? || @first_page.sort_type.nil?
|
if @first_page.nil? || @first_page.sort_type.nil?
|
||||||
@projects = @projects_all.order("grade desc")
|
@projects = find_miracle_project(10, 3,"grade desc")
|
||||||
else
|
else
|
||||||
case @first_page.sort_type
|
case @first_page.sort_type
|
||||||
when 0
|
when 0
|
||||||
@projects = @projects_all.order("created_on desc")
|
@projects = find_miracle_project(10, 3,"created_on desc")
|
||||||
|
#@projects = @projects_all.order("created_on desc")
|
||||||
when 1
|
when 1
|
||||||
@projects = @projects_all.order("grade desc")
|
@projects = find_miracle_project(10, 3,"grade desc")
|
||||||
|
#@projects = @projects_all.order("grade desc")
|
||||||
when 2
|
when 2
|
||||||
@projects = @projects_all.order("watchers_count desc")
|
@projects = find_miracle_project(10, 3,"watchers_count desc")
|
||||||
|
#@projects = @projects_all.order("watchers_count desc")
|
||||||
|
|
||||||
#gcm
|
#gcm
|
||||||
#when '3'
|
#when '3'
|
||||||
|
|
|
@ -203,12 +203,12 @@ module WelcomeHelper
|
||||||
#end
|
#end
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_miracle_project(sum, max_rate)
|
def find_miracle_project(sum, max_rate,order)
|
||||||
#max = sum*(max_rate.to_f/10)
|
#max = sum*(max_rate.to_f/10)
|
||||||
#c1 = find_new_project(sum).to_a.dup
|
#c1 = find_new_project(sum).to_a.dup
|
||||||
#c2 = find_all_hot_project(sum).to_a.dup
|
#c2 = find_all_hot_project(sum).to_a.dup
|
||||||
#(c2.take(sum-max)+c1.take(max)).take(sum)
|
#(c2.take(sum-max)+c1.take(max)).take(sum)
|
||||||
find_all_hot_project(sum).dup#.to_a.dup
|
find_all_hot_project(sum,order).to_a.dup
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_new_course limit=15
|
def find_new_course limit=15
|
||||||
|
@ -220,8 +220,8 @@ module WelcomeHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def find_all_hot_project limit=15
|
def find_all_hot_project limit=15,order
|
||||||
sort_project_by_hot limit
|
sort_project_by_hot limit,order
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_all_hot_course limit=15
|
def find_all_hot_course limit=15
|
||||||
|
@ -366,8 +366,9 @@ module WelcomeHelper
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def sort_project_by_hot limit=15
|
def sort_project_by_hot limit=15,order
|
||||||
sort_project_by_hot_rails 0, 'grade DESC', limit
|
#'grade DESC'
|
||||||
|
sort_project_by_hot_rails 0,order , limit
|
||||||
end
|
end
|
||||||
|
|
||||||
def sort_course_by_hot limit=15
|
def sort_course_by_hot limit=15
|
||||||
|
@ -433,7 +434,7 @@ module WelcomeHelper
|
||||||
# FROM projects AS p LEFT OUTER JOIN (
|
# FROM projects AS p LEFT OUTER JOIN (
|
||||||
# SELECT project_id,grade FROM project_statuses
|
# SELECT project_id,grade FROM project_statuses
|
||||||
# WHERE project_type = #{project_type} ORDER BY #{order_by} LIMIT #{limit} ) AS t ON p.id = t.project_id ")
|
# WHERE project_type = #{project_type} ORDER BY #{order_by} LIMIT #{limit} ) AS t ON p.id = t.project_id ")
|
||||||
Project.visible.joins(:project_status).where("#{Project.table_name}.project_type = ?", project_type).order(order_by).limit(limit)#.all
|
Project.visible.joins(:project_status).where("#{Project.table_name}.project_type = ?", project_type).order(order_by).limit(limit).all
|
||||||
end
|
end
|
||||||
|
|
||||||
def sort_bid_by_hot_rails reward_type, limit = 10
|
def sort_bid_by_hot_rails reward_type, limit = 10
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
class ChangeOptionNumber < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
change_column("option_numbers","user_id",:integer)
|
||||||
|
add_column("option_numbers","project_id",:integer)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue