|
|
|
@ -95,37 +95,18 @@ class UsersController < ApplicationController
|
|
|
|
|
# 说明: homework 发布作业;message:讨论区; news:新闻; poll:问卷;works_reviewers:作品评阅;works_reply:作品回复
|
|
|
|
|
# issue:问题;journal:缺陷状态更新; forum:公共贴吧: user_feedback: 用户留言; new_reply:新闻回复(comment)
|
|
|
|
|
def user_messages
|
|
|
|
|
unless User.current.logged?
|
|
|
|
|
if !User.current.logged?
|
|
|
|
|
redirect_to signin_url
|
|
|
|
|
return
|
|
|
|
|
elsif @user != User.current && !User.current.admin?
|
|
|
|
|
return render_403
|
|
|
|
|
end
|
|
|
|
|
# 记录当前点击按钮的时间
|
|
|
|
|
# 考虑到用户未退出刷新消息页面
|
|
|
|
|
message_time = OnclickTime.where("user_id =?", User.current).first
|
|
|
|
|
if message_time.nil?
|
|
|
|
|
message_new_time = OnclickTime.new
|
|
|
|
|
message_new_time.user_id = User.current.id
|
|
|
|
|
message_new_time.onclick_time = Time.now
|
|
|
|
|
message_new_time.save
|
|
|
|
|
else
|
|
|
|
|
# 24小时内显示
|
|
|
|
|
contrast_time = Time.now - 86400
|
|
|
|
|
message_time.update_attributes(:onclick_time => Time.now)
|
|
|
|
|
end
|
|
|
|
|
@user_system_messages = SystemMessage.where("created_at >?", contrast_time).order("created_at desc")
|
|
|
|
|
# 当前用户查看消息,则设置消息为已读
|
|
|
|
|
# DO 待优化,只需查出符合条件的再更新
|
|
|
|
|
# 初始化/更新 点击按钮时间
|
|
|
|
|
# 24小时内显示系统消息
|
|
|
|
|
update_onclick_time
|
|
|
|
|
# 全部设为已读
|
|
|
|
|
if params[:viewed] == "all"
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
update_message_viewed(@user)
|
|
|
|
|
end
|
|
|
|
|
# @new_message_count = forge_querys.count + forum_querys.count + course_querys.count + user_querys.count
|
|
|
|
|
case params[:type]
|
|
|
|
@ -195,10 +176,43 @@ class UsersController < ApplicationController
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 初始化/更新 点击按钮时间
|
|
|
|
|
def update_onclick_time
|
|
|
|
|
# 记录当前点击按钮的时间
|
|
|
|
|
# 考虑到用户未退出刷新消息页面
|
|
|
|
|
message_time = OnclickTime.where("user_id =?", User.current).first
|
|
|
|
|
if message_time.nil?
|
|
|
|
|
message_new_time = OnclickTime.new
|
|
|
|
|
message_new_time.user_id = User.current.id
|
|
|
|
|
message_new_time.onclick_time = Time.now
|
|
|
|
|
message_new_time.save
|
|
|
|
|
else
|
|
|
|
|
# 24小时内显示
|
|
|
|
|
contrast_time = Time.now - 86400
|
|
|
|
|
message_time.update_attributes(:onclick_time => Time.now)
|
|
|
|
|
end
|
|
|
|
|
# 24小时内显示系统消息
|
|
|
|
|
@user_system_messages = SystemMessage.where("created_at >?", contrast_time).order("created_at desc")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 消息设置为已读
|
|
|
|
|
def update_message_viewed(user)
|
|
|
|
|
course_querys = CourseMessage.where("user_id =? and viewed =?", user, 0)
|
|
|
|
|
forge_querys = ForgeMessage.where("user_id =? and viewed =?", user, 0)
|
|
|
|
|
user_querys = UserFeedbackMessage.where("user_id =? and viewed =?", user, 0)
|
|
|
|
|
forum_querys = MemoMessage.where("user_id =? and viewed =?", user, 0)
|
|
|
|
|
if User.current.id == @user.id
|
|
|
|
|
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
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 系统消息
|
|
|
|
|
def user_system_messages
|
|
|
|
|
@sytem_messages = SystemMessage.order("created_at desc").all
|
|
|
|
|
@sytem_messages = paginateHelper @sytem_messages,25
|
|
|
|
|
@sytem_messages = paginateHelper @sytem_messages, 10
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html{render :layout=>'new_base_user'}
|
|
|
|
|
end
|
|
|
|
|