讨论区的模板消息
This commit is contained in:
parent
bd22364f0a
commit
d845b14992
|
@ -45,7 +45,8 @@ class Comment < ActiveRecord::Base
|
||||||
if self.commented.course
|
if self.commented.course
|
||||||
if self.author_id != self.commented.author_id
|
if self.author_id != self.commented.author_id
|
||||||
self.course_messages << CourseMessage.new(:user_id => self.commented.author_id, :course_id => self.commented.course.id, :viewed => false)
|
self.course_messages << CourseMessage.new(:user_id => self.commented.author_id, :course_id => self.commented.course.id, :viewed => false)
|
||||||
if ShieldWechatMessage.where("container_type='User' and container_id=#{self.commented.author_id} and shield_type='Course' and shield_id=#{self.commented.course.id}").count == 0
|
count = ShieldWechatMessage.where("container_type='User' and container_id=#{self.commented.author_id} and shield_type='Course' and shield_id=#{self.commented.course.id}").count
|
||||||
|
if count == 0
|
||||||
content = strip_html self.comments.html_safe, 200
|
content = strip_html self.comments.html_safe, 200
|
||||||
ws.comment_template self.commented.author_id, "course_notice", self.id, "#{l(:label_notice_comment_template)}", self.author.try(:realname), format_time(self.created_on), content
|
ws.comment_template self.commented.author_id, "course_notice", self.id, "#{l(:label_notice_comment_template)}", self.author.try(:realname), format_time(self.created_on), content
|
||||||
end
|
end
|
||||||
|
|
|
@ -59,7 +59,8 @@ class HomeworkCommon < ActiveRecord::Base
|
||||||
self.course.members.each do |m|
|
self.course.members.each do |m|
|
||||||
# if m.user_id != self.user_id
|
# if m.user_id != self.user_id
|
||||||
self.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => self.course_id, :viewed => false)
|
self.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => self.course_id, :viewed => false)
|
||||||
if ShieldWechatMessage.where("container_type='User' and container_id=#{m.user_id} and shield_type='Course' and shield_id=#{self.course_id}").count == 0
|
count = ShieldWechatMessage.where("container_type='User' and container_id=#{m.user_id} and shield_type='Course' and shield_id=#{self.course_id}").count
|
||||||
|
if count == 0
|
||||||
ws = WechatService.new
|
ws = WechatService.new
|
||||||
ws.homework_template(m.user_id, "homework", self.id, "#{l(:label_new_homework_template)}", self.course.name, self.name.html_safe, self.end_time.to_s + " 23:59:59")
|
ws.homework_template(m.user_id, "homework", self.id, "#{l(:label_new_homework_template)}", self.course.name, self.name.html_safe, self.end_time.to_s + " 23:59:59")
|
||||||
end
|
end
|
||||||
|
@ -108,7 +109,8 @@ class HomeworkCommon < ActiveRecord::Base
|
||||||
#修改作业后发送微信模板消息
|
#修改作业后发送微信模板消息
|
||||||
def wechat_message
|
def wechat_message
|
||||||
self.course.members.each do |member|
|
self.course.members.each do |member|
|
||||||
if ShieldWechatMessage.where("container_type='User' and container_id=#{member.user_id} and shield_type='Course' and shield_id=#{self.course_id}").count == 0
|
count = ShieldWechatMessage.where("container_type='User' and container_id=#{member.user_id} and shield_type='Course' and shield_id=#{self.course_id}").count
|
||||||
|
if count == 0
|
||||||
ws = WechatService.new
|
ws = WechatService.new
|
||||||
ws.homework_template(member.user_id, "homework", self.id, "#{l(:label_update_homework_template)}", self.course.name, self.name.html_safe, self.end_time.to_s + " 23:59:59")
|
ws.homework_template(member.user_id, "homework", self.id, "#{l(:label_update_homework_template)}", self.course.name, self.name.html_safe, self.end_time.to_s + " 23:59:59")
|
||||||
end
|
end
|
||||||
|
|
|
@ -255,7 +255,8 @@ class JournalsForMessage < ActiveRecord::Base
|
||||||
self.course_messages << CourseMessage.new(:user_id => r, :course_id => self.jour.id, :viewed => false)
|
self.course_messages << CourseMessage.new(:user_id => r, :course_id => self.jour.id, :viewed => false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if self.jour_type == 'HomeworkCommon' && ShieldWechatMessage.where("container_type='User' and container_id=#{self.jour.user_id} and shield_type='Course' and shield_id=#{self.jour.course_id}").count == 0
|
count = ShieldWechatMessage.where("container_type='User' and container_id=#{self.jour.user_id} and shield_type='Course' and shield_id=#{self.jour.course_id}").count
|
||||||
|
if self.jour_type == 'HomeworkCommon' && count == 0
|
||||||
ws = WechatService.new
|
ws = WechatService.new
|
||||||
#content = truncate(strip_tags(self.notes.to_s), length: 200)
|
#content = truncate(strip_tags(self.notes.to_s), length: 200)
|
||||||
content = strip_html self.notes.html_safe, 200
|
content = strip_html self.notes.html_safe, 200
|
||||||
|
|
|
@ -83,7 +83,7 @@ class Message < ActiveRecord::Base
|
||||||
# after_create :add_author_as_watcher, :reset_counters!, :add_boards_count
|
# after_create :add_author_as_watcher, :reset_counters!, :add_boards_count
|
||||||
after_update :update_messages_board, :update_activity
|
after_update :update_messages_board, :update_activity
|
||||||
after_destroy :reset_counters!,:down_user_score,:delete_kindeditor_assets, :decrease_boards_count, :down_course_score
|
after_destroy :reset_counters!,:down_user_score,:delete_kindeditor_assets, :decrease_boards_count, :down_course_score
|
||||||
after_create :act_as_course_activity, :act_as_forge_activity, :act_as_student_score, act_as_at_message(:content, :author_id), :add_author_as_watcher, :reset_counters!, :add_boards_count
|
after_create :act_as_course_activity, :act_as_forge_activity, :act_as_student_score, act_as_at_message(:content, :author_id), :add_author_as_watcher, :reset_counters!, :add_boards_count, :act_as_system_message
|
||||||
#before_save :be_user_score
|
#before_save :be_user_score
|
||||||
|
|
||||||
scope :visible, lambda {|*args|
|
scope :visible, lambda {|*args|
|
||||||
|
@ -263,8 +263,9 @@ class Message < ActiveRecord::Base
|
||||||
if self.parent_id.nil? # 主贴
|
if self.parent_id.nil? # 主贴
|
||||||
self.course.members.includes(:user).each do |m|
|
self.course.members.includes(:user).each do |m|
|
||||||
if self.author.allowed_to?(:as_teacher, self.course) && m.user_id != self.author_id # 老师 自己的帖子不给自己发送消息
|
if self.author.allowed_to?(:as_teacher, self.course) && m.user_id != self.author_id # 老师 自己的帖子不给自己发送消息
|
||||||
self.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => self.board.course_id, :viewed => false)
|
#self.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => self.board.course_id, :viewed => false)
|
||||||
if ShieldWechatMessage.where("container_type='User' and container_id=#{m.user_id} and shield_type='Course' and shield_id=#{self.course.id}").count == 0
|
count = ShieldWechatMessage.where("container_type='User' and container_id=#{m.user_id} and shield_type='Course' and shield_id=#{self.course.id}").count
|
||||||
|
if count == 0
|
||||||
content = strip_html self.subject, 200
|
content = strip_html self.subject, 200
|
||||||
ws.topic_publish_template m.user_id, "course_discussion", self.id, "#{l(:label_course_topic_template)}", content, self.author.try(:realname), format_time(self.created_on)
|
ws.topic_publish_template m.user_id, "course_discussion", self.id, "#{l(:label_course_topic_template)}", content, self.author.try(:realname), format_time(self.created_on)
|
||||||
end
|
end
|
||||||
|
@ -273,8 +274,9 @@ class Message < ActiveRecord::Base
|
||||||
else # 回帖
|
else # 回帖
|
||||||
parent_author_id = Message.find(self.parent_id).author_id
|
parent_author_id = Message.find(self.parent_id).author_id
|
||||||
if parent_author_id != self.author_id # 只针对主贴回复,回复自己的帖子不发消息
|
if parent_author_id != self.author_id # 只针对主贴回复,回复自己的帖子不发消息
|
||||||
self.course_messages << CourseMessage.new(:user_id => parent_author_id, :course_id => self.board.course_id, :viewed => false)
|
#self.course_messages << CourseMessage.new(:user_id => parent_author_id, :course_id => self.board.course_id, :viewed => false)
|
||||||
if ShieldWechatMessage.where("container_type='User' and container_id=#{parent_author_id} and shield_type='Course' and shield_id=#{self.board.course_id}").count == 0
|
count = ShieldWechatMessage.where("container_type='User' and container_id=#{parent_author_id} and shield_type='Course' and shield_id=#{self.board.course_id}").count
|
||||||
|
if count == 0
|
||||||
content = strip_html self.content.html_safe, 200
|
content = strip_html self.content.html_safe, 200
|
||||||
ws.comment_template parent_author_id, "course_discussion", self.parent_id, "#{l(:label_topic_comment_template)}", self.author.try(:realname), format_time(self.created_on), content
|
ws.comment_template parent_author_id, "course_discussion", self.parent_id, "#{l(:label_topic_comment_template)}", self.author.try(:realname), format_time(self.created_on), content
|
||||||
end
|
end
|
||||||
|
@ -284,8 +286,9 @@ class Message < ActiveRecord::Base
|
||||||
if self.parent_id.nil? # 主贴
|
if self.parent_id.nil? # 主贴
|
||||||
self.project.members.includes(:user).each do |m|
|
self.project.members.includes(:user).each do |m|
|
||||||
if m.user_id != self.author_id
|
if m.user_id != self.author_id
|
||||||
self.forge_messages << ForgeMessage.new(:user_id => m.user_id, :project_id => self.board.project_id, :viewed => false)
|
#self.forge_messages << ForgeMessage.new(:user_id => m.user_id, :project_id => self.board.project_id, :viewed => false)
|
||||||
if ShieldWechatMessage.where("container_type='User' and container_id=#{m.user_id} and shield_type='Project' and shield_id=#{self.project.id}").count == 0
|
count = ShieldWechatMessage.where("container_type='User' and container_id=#{m.user_id} and shield_type='Project' and shield_id=#{self.project.id}").count
|
||||||
|
if count == 0
|
||||||
content = strip_html self.subject, 200
|
content = strip_html self.subject, 200
|
||||||
ws.topic_publish_template m.user_id, "project_discussion", self.id, "#{l(:label_project_topic_template)}", content, self.author.try(:realname), format_time(self.created_on)
|
ws.topic_publish_template m.user_id, "project_discussion", self.id, "#{l(:label_project_topic_template)}", content, self.author.try(:realname), format_time(self.created_on)
|
||||||
end
|
end
|
||||||
|
@ -294,8 +297,9 @@ class Message < ActiveRecord::Base
|
||||||
else # 回帖
|
else # 回帖
|
||||||
parent_author_id = Message.find(self.parent_id).author_id
|
parent_author_id = Message.find(self.parent_id).author_id
|
||||||
if parent_author_id != self.author_id # 只针对主贴回复,回复自己的帖子不发消息
|
if parent_author_id != self.author_id # 只针对主贴回复,回复自己的帖子不发消息
|
||||||
self.forge_messages << ForgeMessage.new(:user_id => parent_author_id, :project_id => self.board.project_id, :viewed => false)
|
#self.forge_messages << ForgeMessage.new(:user_id => parent_author_id, :project_id => self.board.project_id, :viewed => false)
|
||||||
if ShieldWechatMessage.where("container_type='User' and container_id=#{parent_author_id} and shield_type='Project' and shield_id=#{self.board.project_id}").count == 0
|
count = ShieldWechatMessage.where("container_type='User' and container_id=#{parent_author_id} and shield_type='Project' and shield_id=#{self.board.project_id}").count
|
||||||
|
if count == 0
|
||||||
content = strip_html self.content.html_safe, 200
|
content = strip_html self.content.html_safe, 200
|
||||||
ws.comment_template parent_author_id, "project_discussion", self.parent_id, "#{l(:label_topic_comment_template)}", self.author.try(:realname), format_time(self.created_on), content
|
ws.comment_template parent_author_id, "project_discussion", self.parent_id, "#{l(:label_topic_comment_template)}", self.author.try(:realname), format_time(self.created_on), content
|
||||||
end
|
end
|
||||||
|
|
|
@ -170,7 +170,8 @@ class News < ActiveRecord::Base
|
||||||
self.course.members.each do |m|
|
self.course.members.each do |m|
|
||||||
if m.user_id != self.author_id
|
if m.user_id != self.author_id
|
||||||
self.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => self.course_id, :viewed => false)
|
self.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => self.course_id, :viewed => false)
|
||||||
if ShieldWechatMessage.where("container_type='User' and container_id=#{m.user_id} and shield_type='Course' and shield_id=#{self.course_id}").count == 0
|
count = ShieldWechatMessage.where("container_type='User' and container_id=#{m.user_id} and shield_type='Course' and shield_id=#{self.course_id}").count
|
||||||
|
if count == 0
|
||||||
ws = WechatService.new
|
ws = WechatService.new
|
||||||
content = strip_html self.author.try(:realname) + " 发布了通知:" + self.title.html_safe, 200
|
content = strip_html self.author.try(:realname) + " 发布了通知:" + self.title.html_safe, 200
|
||||||
ws.message_update_template m.user_id, "course_notice", self.id, "#{l(:label_new_notice_template)}", self.author.try(:realname) + " 发布了通知:" + content, format_time(self.created_on)
|
ws.message_update_template m.user_id, "course_notice", self.id, "#{l(:label_new_notice_template)}", self.author.try(:realname) + " 发布了通知:" + content, format_time(self.created_on)
|
||||||
|
|
Loading…
Reference in New Issue