From e77a891bc618b152ec52c97fe1218038ff08e561 Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 21 Mar 2016 16:36:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=9F=A5=E8=AF=A2=E8=AF=AD?= =?UTF-8?q?=E5=8F=A5=E4=BC=98=E5=8C=96=EF=BC=8C=E6=B7=BB=E5=8A=A0=E7=B4=A2?= =?UTF-8?q?=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 29 +++++++++---------- ...0160321071740_add_index_to_message_alls.rb | 5 ++++ ...0321073042_add_index_to_course_messages.rb | 5 ++++ ...160321073107_add_index_to_memo_messages.rb | 5 ++++ ...227_add_index_to_user_feedback_messages.rb | 5 ++++ ...60321075815_add_index_to_forge_messages.rb | 5 ++++ ...1080116_add_forgetype_to_forge_messages.rb | 5 ++++ ..._add_usertype_to_user_feedback_messages.rb | 5 ++++ ...321080412_add_memotype_to_memo_messages.rb | 5 ++++ ...0825_add_feed_to_user_feedback_messages.rb | 5 ++++ db/schema.rb | 17 ++++++++++- 11 files changed, 74 insertions(+), 17 deletions(-) create mode 100644 db/migrate/20160321071740_add_index_to_message_alls.rb create mode 100644 db/migrate/20160321073042_add_index_to_course_messages.rb create mode 100644 db/migrate/20160321073107_add_index_to_memo_messages.rb create mode 100644 db/migrate/20160321073227_add_index_to_user_feedback_messages.rb create mode 100644 db/migrate/20160321075815_add_index_to_forge_messages.rb create mode 100644 db/migrate/20160321080116_add_forgetype_to_forge_messages.rb create mode 100644 db/migrate/20160321080336_add_usertype_to_user_feedback_messages.rb create mode 100644 db/migrate/20160321080412_add_memotype_to_memo_messages.rb create mode 100644 db/migrate/20160321080825_add_feed_to_user_feedback_messages.rb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 38f1ad152..d85778e73 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -119,49 +119,46 @@ class UsersController < ApplicationController # @new_message_count = forge_querys.count + forum_querys.count + course_querys.count + user_querys.count case params[:type] when nil + # 系统消息为管理员发送,我的消息中包含有系统消息 @message_alls = [] - messages = MessageAll.where("(user_id =? and message_type !=?) or message_type =?" ,@user, "SystemMessage", "SystemMessage").order("created_at desc") + messages = MessageAll.where("(user_id =? and message_type !=?) or message_type =?" ,@user.id, "SystemMessage", "SystemMessage").includes(:message).order("created_at desc") messages.each do |message_all| @message_alls << message_all.message end when 'unviewed' @message_alls = [] - messages = MessageAll.where("user_id =?", @user).order("created_at desc") + messages = MessageAll.where("user_id =?", @user.id).includes(:message).order("created_at desc") messages.each do |message_all| # 在点击或者刷新消息列表后未读的消息存放在数组 if message_all.message_type != "SystemMessage"&& !message_all.message.nil? && message_all.message.viewed == 0 @message_alls << message_all.message end end - #课程相关消息 when 'homework' - @message_alls = CourseMessage.where("course_message_type in ('HomeworkCommon','StudentWorksScore','JournalsForMessage','StudentWork','Exercise') and user_id =?", @user).order("created_at desc") + @message_alls = CourseMessage.where("course_message_type in ('HomeworkCommon','StudentWorksScore','JournalsForMessage','StudentWork','Exercise') and user_id =?", @user.id).order("created_at desc") when 'course_message' - @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Message", @user).order("created_at desc") + @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Message", @user.id).order("created_at desc") when 'course_news' # 课程通知包含发布的通知和回复的通知 - @message_alls = CourseMessage.where("course_message_type in (?, ? ,?)", "News", "Comment", "Course").where("user_id =?", @user).order("created_at desc") + @message_alls = CourseMessage.where("course_message_type in ('News', 'Comment') and user_id =?", @user.id).order("created_at desc") when 'poll' - @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Poll", @user).order("created_at desc") - + @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Poll", @user.id).order("created_at desc") #项目相关消息 when 'issue' - @message_alls = ForgeMessage.where("forge_message_type =? or forge_message_type =?" , "Issue", "Journal").where("user_id=?", @user).order("created_at desc") + @message_alls = ForgeMessage.where("forge_message_type in ('Issue', 'Journal') and user_id =?" , @user.id).order("created_at desc") when 'forge_message' - @message_alls = ForgeMessage.where("forge_message_type =? and user_id =?", "Message", @user).order("created_at desc") + @message_alls = ForgeMessage.where("forge_message_type =? and user_id =?", "Message", @user.id).order("created_at desc") when 'forge_news' - @message_alls = ForgeMessage.where("forge_message_type in (?,?) and user_id =?", "News", "Comment", @user).order("created_at desc") + @message_alls = ForgeMessage.where("forge_message_type in (?,?) and user_id =?", "News", "Comment", @user.id).order("created_at desc") when 'apply' - @message_alls = ForgeMessage.where("forge_message_type in ('ProjectInvite', 'AppliedProject', 'JoinProject', 'RemoveFromProject') and user_id =?", @user).order("created_at desc") - + @message_alls = ForgeMessage.where("forge_message_type in ('ProjectInvite', 'AppliedProject', 'JoinProject', 'RemoveFromProject') and user_id =?", @user.id).order("created_at desc") #贴吧消息 when 'forum' - @message_alls = MemoMessage.where("memo_type =? and user_id =?", "Memo", @user).order("created_at desc") - + @message_alls = MemoMessage.where("memo_type =? and user_id =?", "Memo", @user.id).order("created_at desc") #用户留言 when 'user_feedback' - @message_alls = UserFeedbackMessage.where("journals_for_message_type =? and user_id =?", "JournalsForMessage", @user).order("created_at desc") + @message_alls = UserFeedbackMessage.where("journals_for_message_type =? and user_id =?", "JournalsForMessage", @user.id).order("created_at desc") else render_404 return diff --git a/db/migrate/20160321071740_add_index_to_message_alls.rb b/db/migrate/20160321071740_add_index_to_message_alls.rb new file mode 100644 index 000000000..cb204d809 --- /dev/null +++ b/db/migrate/20160321071740_add_index_to_message_alls.rb @@ -0,0 +1,5 @@ +class AddIndexToMessageAlls < ActiveRecord::Migration + def change + add_index :message_alls, [:user_id, :message_id, :message_type, :created_at] + end +end diff --git a/db/migrate/20160321073042_add_index_to_course_messages.rb b/db/migrate/20160321073042_add_index_to_course_messages.rb new file mode 100644 index 000000000..ede54779b --- /dev/null +++ b/db/migrate/20160321073042_add_index_to_course_messages.rb @@ -0,0 +1,5 @@ +class AddIndexToCourseMessages < ActiveRecord::Migration + def change + add_index :course_messages, [:user_id, :course_id, :created_at] + end +end diff --git a/db/migrate/20160321073107_add_index_to_memo_messages.rb b/db/migrate/20160321073107_add_index_to_memo_messages.rb new file mode 100644 index 000000000..59bf69fb5 --- /dev/null +++ b/db/migrate/20160321073107_add_index_to_memo_messages.rb @@ -0,0 +1,5 @@ +class AddIndexToMemoMessages < ActiveRecord::Migration + def change + add_index :memo_messages, [:user_id, :forum_id, :created_at] + end +end diff --git a/db/migrate/20160321073227_add_index_to_user_feedback_messages.rb b/db/migrate/20160321073227_add_index_to_user_feedback_messages.rb new file mode 100644 index 000000000..c067f58d8 --- /dev/null +++ b/db/migrate/20160321073227_add_index_to_user_feedback_messages.rb @@ -0,0 +1,5 @@ +class AddIndexToUserFeedbackMessages < ActiveRecord::Migration + def change + add_index :user_feedback_messages, [:user_id, :created_at] + end +end diff --git a/db/migrate/20160321075815_add_index_to_forge_messages.rb b/db/migrate/20160321075815_add_index_to_forge_messages.rb new file mode 100644 index 000000000..ada345501 --- /dev/null +++ b/db/migrate/20160321075815_add_index_to_forge_messages.rb @@ -0,0 +1,5 @@ +class AddIndexToForgeMessages < ActiveRecord::Migration + def change + add_index :forge_messages, [:user_id, :project_id, :created_at] + end +end diff --git a/db/migrate/20160321080116_add_forgetype_to_forge_messages.rb b/db/migrate/20160321080116_add_forgetype_to_forge_messages.rb new file mode 100644 index 000000000..5dbd96340 --- /dev/null +++ b/db/migrate/20160321080116_add_forgetype_to_forge_messages.rb @@ -0,0 +1,5 @@ +class AddForgetypeToForgeMessages < ActiveRecord::Migration + def change + add_index :forge_messages, [:forge_message_id, :forge_message_type] + end +end diff --git a/db/migrate/20160321080336_add_usertype_to_user_feedback_messages.rb b/db/migrate/20160321080336_add_usertype_to_user_feedback_messages.rb new file mode 100644 index 000000000..6a40ad444 --- /dev/null +++ b/db/migrate/20160321080336_add_usertype_to_user_feedback_messages.rb @@ -0,0 +1,5 @@ +class AddUsertypeToUserFeedbackMessages < ActiveRecord::Migration + def change + add_index :user_feedback_messages, [:journals_for_message_id] + end +end diff --git a/db/migrate/20160321080412_add_memotype_to_memo_messages.rb b/db/migrate/20160321080412_add_memotype_to_memo_messages.rb new file mode 100644 index 000000000..0e79cd8f6 --- /dev/null +++ b/db/migrate/20160321080412_add_memotype_to_memo_messages.rb @@ -0,0 +1,5 @@ +class AddMemotypeToMemoMessages < ActiveRecord::Migration + def change + add_index :memo_messages, [:memo_id, :memo_type] + end +end diff --git a/db/migrate/20160321080825_add_feed_to_user_feedback_messages.rb b/db/migrate/20160321080825_add_feed_to_user_feedback_messages.rb new file mode 100644 index 000000000..98a3e2c3e --- /dev/null +++ b/db/migrate/20160321080825_add_feed_to_user_feedback_messages.rb @@ -0,0 +1,5 @@ +class AddFeedToUserFeedbackMessages < ActiveRecord::Migration + def change + add_index :course_messages, [:course_message_type] + end +end diff --git a/db/schema.rb b/db/schema.rb index 2c55aad61..5eb9edd36 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20160317090350) do +ActiveRecord::Schema.define(:version => 20160321080825) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -465,6 +465,10 @@ ActiveRecord::Schema.define(:version => 20160317090350) do t.integer "status" end + add_index "course_messages", ["course_message_id"], :name => "index_course_messages_on_course_message_id" + add_index "course_messages", ["course_message_type"], :name => "index_course_messages_on_course_message_type" + add_index "course_messages", ["user_id", "course_id", "created_at"], :name => "index_course_messages_on_user_id_and_course_id_and_created_at" + create_table "course_statuses", :force => true do |t| t.integer "changesets_count" t.integer "watchers_count" @@ -741,6 +745,9 @@ ActiveRecord::Schema.define(:version => 20160317090350) do t.integer "status" end + add_index "forge_messages", ["forge_message_id", "forge_message_type"], :name => "index_forge_messages_on_forge_message_id_and_forge_message_type" + add_index "forge_messages", ["user_id", "project_id", "created_at"], :name => "index_forge_messages_on_user_id_and_project_id_and_created_at" + create_table "forums", :force => true do |t| t.string "name", :null => false t.text "description" @@ -1055,6 +1062,9 @@ ActiveRecord::Schema.define(:version => 20160317090350) do t.datetime "updated_at", :null => false end + add_index "memo_messages", ["memo_id", "memo_type"], :name => "index_memo_messages_on_memo_id_and_memo_type" + add_index "memo_messages", ["user_id", "forum_id", "created_at"], :name => "index_memo_messages_on_user_id_and_forum_id_and_created_at" + create_table "memos", :force => true do |t| t.integer "forum_id", :null => false t.integer "parent_id" @@ -1078,6 +1088,8 @@ ActiveRecord::Schema.define(:version => 20160317090350) do t.datetime "updated_at", :null => false end + add_index "message_alls", ["message_id", "message_type", "created_at"], :name => "index_message_alls_on_message_id_and_message_type_and_created_at" + create_table "messages", :force => true do |t| t.integer "board_id", :null => false t.integer "parent_id" @@ -1830,6 +1842,9 @@ ActiveRecord::Schema.define(:version => 20160317090350) do t.datetime "updated_at", :null => false end + add_index "user_feedback_messages", ["journals_for_message_id"], :name => "index_user_feedback_messages_on_journals_for_message_id" + add_index "user_feedback_messages", ["user_id", "created_at"], :name => "index_user_feedback_messages_on_user_id_and_created_at" + create_table "user_grades", :force => true do |t| t.integer "user_id", :null => false t.integer "project_id", :null => false