You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							105 lines
						
					
					
						
							3.2 KiB
						
					
					
				
			
		
		
	
	
							105 lines
						
					
					
						
							3.2 KiB
						
					
					
				| #encoding: utf-8
 | |
| class BlogComment < ActiveRecord::Base
 | |
|   # attr_accessible :title, :body
 | |
|   require 'net/http'
 | |
|   require 'json'
 | |
|   include Redmine::SafeAttributes
 | |
|   belongs_to :blog
 | |
|   belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
 | |
| 
 | |
|   acts_as_tree :counter_cache => :comments_count, :order => "#{BlogComment.table_name}.sticky desc ,#{BlogComment.table_name}.created_on ASC"
 | |
|   acts_as_attachable
 | |
|   belongs_to :last_reply, :class_name => 'BlogComment', :foreign_key => 'last_comment_id'
 | |
|   # 虚拟关联
 | |
|   has_many :user_acts, :class_name => 'UserAcivity',:as =>:act
 | |
|   acts_as_watchable
 | |
| 
 | |
|   validates_presence_of  :title, :content
 | |
|   validates_length_of :title, :maximum => 255
 | |
|   #validate :cannot_reply_to_locked_comment, :on => :create
 | |
|   safe_attributes 'title', 'content',"sticky", "locked"
 | |
| 
 | |
|   after_save :add_user_activity
 | |
|   after_update :update_activity
 | |
|   after_create :update_parent_time
 | |
|   before_destroy :destroy_user_activity
 | |
| 
 | |
|   scope :like, lambda {|arg|
 | |
|     if arg.blank?
 | |
|       where(nil)
 | |
|     else
 | |
|       pattern = "%#{arg.to_s.strip.downcase}%"
 | |
|       where(" LOWER(title) LIKE :p ", :p => pattern)
 | |
|     end
 | |
|   }
 | |
| 
 | |
|   #动态更新
 | |
|   def update_activity
 | |
|     user_activity = UserActivity.where("act_type='BlogComment' and act_id =?",self.id).first
 | |
|     if user_activity
 | |
|       user_activity.updated_at = Time.now
 | |
|       user_activity.save
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   #在个人动态里面增加当前动态
 | |
|   def add_user_activity
 | |
|     if self.parent_id.nil? #只有发博文才插入动态
 | |
|         user_activity = UserActivity.where("act_type = '#{self.class.to_s}' and act_id = '#{self.id}'").first
 | |
|         if user_activity
 | |
|           user_activity.save
 | |
|         else
 | |
|             user_activity = UserActivity.new
 | |
|             user_activity.act_id = self.id
 | |
|             user_activity.act_type = self.class.to_s
 | |
|             user_activity.container_type = "Blog"
 | |
|             user_activity.container_id = self.blog_id
 | |
|             user_activity.user_id = self.author_id
 | |
|             user_activity.save
 | |
|         end
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def destroy_user_activity
 | |
|     user_activity = UserActivity.where("act_type = '#{self.class.to_s}' and act_id = '#{self.id}'")
 | |
|     user_activity.destroy_all
 | |
|   end
 | |
|   def deleted_attach_able_by? user
 | |
|     (user && user.logged? && (self.author == user) ) || user.admin?
 | |
|   end
 | |
| 
 | |
|   def update_parent_time
 | |
|     if !self.parent.nil?
 | |
|       self.root.update_attribute(:updated_on, self.updated_on)
 | |
|     end
 | |
|   end
 | |
|   def project
 | |
|   end
 | |
| 
 | |
|   def creator_user
 | |
|     self.author
 | |
|   end
 | |
| 
 | |
|   def created_time
 | |
|     self.created_at
 | |
|   end
 | |
| 
 | |
|   def content_detail
 | |
|     self.content
 | |
|   end
 | |
| 
 | |
|   #博客回复微信模板消息
 | |
|   # def blog_wechat_message
 | |
|   #   ws = WechatService.new
 | |
|   #   if self.parent_id.nil?
 | |
|   #     self.author.watcher_users.each do |watcher|
 | |
|   #       content = strip_html self.author.try(:realname) + " 发表了博客:" + self.title.html_safe, 200
 | |
|   #       ws.message_update_template watcher.id, "blog_comment", self.id, "#{l(:label_new_blog_template)}", content, format_time(self.created_at)
 | |
|   #     end
 | |
|   #   else
 | |
|   #     content = strip_html self.content.html_safe, 200
 | |
|   #     ws.comment_template self.parent.author_id, "blog_comment", self.parent_id, "#{l(:label_blog_comment_template)}", self.author.try(:realname), format_time(self.created_at), content
 | |
|   #   end
 | |
|   # end
 | |
| end
 |