@ -101,37 +101,83 @@ class UsersController < ApplicationController
end
# 用户消息
# 说明: homework 发布作业; message: 讨论区; news: 新闻; poll: 问卷; works_reviewers: 作品评阅; works_reply:作品回复
# issue: 问题; journal: 缺陷状态更新; forum: 公共贴吧: user_feedback: 用户留言; new_reply:新闻回复( comment)
def user_messages
unless User . current . logged?
render_403
return
end
# 当前用户查看消息,则设置消息为已读
querys = @user . course_messages
course_querys = @user . course_messages
forge_querys = @user . forge_messages
user_querys = @user . user_feedback_messages
forum_querys = @user . memo_messages
if User . current . id == @user . id
querys . update_all ( :viewed = > true )
end
if @user . course_messages
if params [ :type ] . nil?
@user_course_messages = @user . course_messages . reverse
@user_project_messges = @user . forge_messages . reverse
else
case params [ :type ]
when 'homework'
@user_course_messages = @user . course_messages . reverse . select { | x | x . course_message_type == " HomeworkCommon " }
#@user_course_messages = ForgeMessage.find_by_sql("select * from course_messages where user_id='#{@user.id}' and course_message_type = 'HomeworkCommon' order by created_at desc;")
when 'message'
@user_course_messages = @user . course_messages . reverse . select { | x | x . course_message_type == " Message " }
when 'news'
@user_course_messages = @user . course_messages . reverse . select { | x | x . course_message_type == " News " }
when 'poll'
@user_course_messages = @user . course_messages . reverse . select { | x | x . course_message_type == " Poll " }
end
end
respond_to do | format |
format . html { render :layout = > 'base_users_new' }
format . api
end
course_querys . update_all ( :viewed = > true )
forge_querys . update_all ( :viewed = > true )
user_querys . update_all ( :viewed = > true )
forum_querys . update_all ( :viewed = > true )
end
@new_message_count = @user . forge_messages . count + @user . memo_messages . count + @user . course_messages . count + @user . user_feedback_messages . count
case params [ :type ]
when nil
@user_course_messages = CourseMessage . where ( " user_id =? " , @user ) . order ( " created_at desc " )
@user_forge_messages = ForgeMessage . where ( " user_id =? " , @user ) . order ( " created_at desc " )
@user_memo_messages = MemoMessage . where ( " user_id =? " , @user ) . order ( " created_at desc " )
@user_feedback_messages = UserFeedbackMessage . where ( " user_id =? " , @user ) . order ( " created_at desc " )
@user_course_messages_count = @user_course_messages . count
@user_forge_messages_count = @user_forge_messages . count
@user_memo_messages_count = @user_memo_messages . count
@user_feedback_messages_count = @user_feedback_messages . count
when 'homework'
@user_course_messages = CourseMessage . where ( " course_message_type =? and user_id =? " , " HomeworkCommon " , @user ) . order ( " created_at desc " )
@user_course_messages_count = @user_course_messages . count
when 'course_message'
@user_course_messages = CourseMessage . where ( " course_message_type =? and user_id =? " , " Message " , @user ) . order ( " created_at desc " )
@user_course_messages_count = @user_course_messages . count
when 'forge_message'
@user_forge_messages = ForgeMessage . where ( " forge_message_type =? and user_id =? " , " Message " , @user ) . order ( " created_at desc " )
@user_forge_messages_count = @user_forge_messages . count
when 'course_news'
@user_course_messages = CourseMessage . where ( " course_message_type =? and user_id =? " , " News " , @user ) . order ( " created_at desc " )
@user_course_messages_count = @user_course_messages . count
when 'forge_news'
@user_forge_messages = ForgeMessage . where ( " forge_message_type =? and user_id =? " , " News " , @user ) . order ( " created_at desc " )
@user_forge_messages_count = @user_forge_messages . count
when 'course_news_reply'
@user_course_messages = CourseMessage . where ( " course_message_type =? and user_id =? " , " Comment " , @user ) . order ( " created_at desc " )
@user_course_messages_count = @user_course_messages . count
when 'forge_news_reply'
@user_forge_messages = ForgeMessage . where ( " course_message_type =? and user_id =? " , " Comment " , @user ) . order ( " created_at desc " )
@user_forge_messagess_count = @user_forge_messages . count
when 'poll'
@user_course_messages = CourseMessage . where ( " course_message_type =? and user_id =? " , " Poll " , @user ) . order ( " created_at desc " )
@user_course_messages_count = @user_course_messages . count
when 'works_reviewers'
@user_course_messages = CourseMessage . where ( " course_message_type =? and user_id =? " , " StudentWorksScore " , @user ) . order ( " created_at desc " )
@user_course_messages_count = @user_course_messages . count
when 'works_reply'
@user_course_messages = CourseMessage . where ( " course_message_type =? and user_id =? " , " JournalsForMessage " , @user ) . order ( " created_at desc " )
@user_course_messages_count = @user_course_messages . count
when 'issue'
@user_forge_messages = ForgeMessage . where ( " forge_message_type =? and user_id =? " , " Issue " , @user ) . order ( " created_at desc " )
@user_forge_messages_count = @user_forge_messages . count
when 'issue_update' # 缺陷状态更新、留言
@user_forge_messages = ForgeMessage . where ( " forge_message_type =? and user_id =? " , " Journal " , @user ) . order ( " created_at desc " )
@user_forge_messages_count = @user_forge_messages . count
when 'forum'
@user_memo_messages = MemoMessage . where ( " memo_type =? and user_id =? " , " Memo " , @user ) . order ( " created_at desc " )
@user_memo_messages_count = @user_memo_messages . count
when 'user_feedback'
@user_feedback_messages = UserFeedbackMessage . where ( " journals_for_message_type =? and user_id =? " , " Principal " , @user ) . order ( " created_at desc " )
@user_feedback_messages_count = @user_feedback_messages . count
else
render_404
return
end
respond_to do | format |
format . html { render :layout = > 'base_users_new' }
end
end