|  |  | class PraiseTreadController < ApplicationController
 | 
						
						
						
							|  |  |   
 | 
						
						
						
							|  |  |   accept_api_auth :tread_plus,:praise_plus
 | 
						
						
						
							|  |  |   # before_filter :require_login,:only => [:praise_plus,:tread_plus]
 | 
						
						
						
							|  |  |   before_filter :user_unlogged_check,:only => [:praise_plus,:tread_plus,:praise_minus]
 | 
						
						
						
							|  |  |   
 | 
						
						
						
							|  |  |   def praise_plus
 | 
						
						
						
							|  |  |     @obj = nil
 | 
						
						
						
							|  |  |     @activity = false
 | 
						
						
						
							|  |  |     if request.get?
 | 
						
						
						
							|  |  |       @obj_id = params[:obj_id]
 | 
						
						
						
							|  |  |       @obj_type = params[:obj_type]
 | 
						
						
						
							|  |  |       if !params[:user_activity_id].nil? && !params[:type].nil?
 | 
						
						
						
							|  |  |         @user_activity_id = params[:user_activity_id]
 | 
						
						
						
							|  |  |         @type = params[:type]
 | 
						
						
						
							|  |  |         @activity = true
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |       # @is_in_list = nil
 | 
						
						
						
							|  |  |       @obj = find_object_by_type_and_id(@obj_type,@obj_id)
 | 
						
						
						
							|  |  |       pts = PraiseTread.where("praise_tread_object_id=? and praise_tread_object_type=? and user_id=?",@obj_id,@obj_type.to_s,User.current.id)
 | 
						
						
						
							|  |  |       unless pts.empty?
 | 
						
						
						
							|  |  |         respond_to do |format|
 | 
						
						
						
							|  |  |           format.js
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  |         return
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |       @horizontal = params[:horizontal].downcase == "false" ? false:true if params[:horizontal]
 | 
						
						
						
							|  |  |       # if @obj.respond_to?("author_id")
 | 
						
						
						
							|  |  |       #   author_id = @obj.author_id
 | 
						
						
						
							|  |  |       # elsif @obj.respond_to?("user_id")
 | 
						
						
						
							|  |  |       #   author_id = @obj.user_id
 | 
						
						
						
							|  |  |       # end
 | 
						
						
						
							|  |  |       # unless author_id == User.current.id
 | 
						
						
						
							|  |  |          praise_tread_plus(@obj_type,@obj_id,1)
 | 
						
						
						
							|  |  |       # end
 | 
						
						
						
							|  |  |       respond_to do |format|
 | 
						
						
						
							|  |  |         format.js
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def praise_minus
 | 
						
						
						
							|  |  |     @obj = nil
 | 
						
						
						
							|  |  |     @activity = false
 | 
						
						
						
							|  |  |     if request.get?
 | 
						
						
						
							|  |  |       #@obj = params[:obj]  # 传的是对象,最后变成id了
 | 
						
						
						
							|  |  |       #首先更新praise_tread 表 删除关注记录
 | 
						
						
						
							|  |  |       #@pt = PraiseTread.find_by_user_id_and_praise_tread_object_id_and_praise_tread_object_type(User.current.id,@obj,"user")
 | 
						
						
						
							|  |  |       @obj_id = params[:obj_id]
 | 
						
						
						
							|  |  |       @obj_type = params[:obj_type]
 | 
						
						
						
							|  |  |       if !params[:user_activity_id].nil? && !params[:type].nil?
 | 
						
						
						
							|  |  |         @user_activity_id = params[:user_activity_id]
 | 
						
						
						
							|  |  |         @type = params[:type]
 | 
						
						
						
							|  |  |         @activity = true
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |       @obj = find_object_by_type_and_id(@obj_type,@obj_id)
 | 
						
						
						
							|  |  |       @pt = PraiseTread.where("praise_tread_object_id=? and praise_tread_object_type=? and user_id=?",@obj_id,@obj_type.to_s,User.current.id).first
 | 
						
						
						
							|  |  |       if @pt.nil?
 | 
						
						
						
							|  |  |         respond_to do |format|
 | 
						
						
						
							|  |  |           format.js
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  |         return
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |       @pt.delete if !@pt.nil?
 | 
						
						
						
							|  |  |       #再更新praise_tread_cache表 使相应的记录减1 当为0时删除
 | 
						
						
						
							|  |  |       @ptc = PraiseTreadCache.where("object_id=? and object_type=?",@obj_id,@obj_type.to_s).first
 | 
						
						
						
							|  |  |       @ptc.minus(1) if !@ptc.nil?
 | 
						
						
						
							|  |  |       if @ptc.praise_num == 0
 | 
						
						
						
							|  |  |         @ptc.delete
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     #@obj = User.find_by_id(@obj)
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       format.js
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def tread_plus
 | 
						
						
						
							|  |  |     @obj = nil
 | 
						
						
						
							|  |  |     # @is_in_list = nil
 | 
						
						
						
							|  |  |     if request.get?
 | 
						
						
						
							|  |  |       @obj_id = params[:obj_id]
 | 
						
						
						
							|  |  |       @obj_type = params[:obj_type]
 | 
						
						
						
							|  |  |       #@horizontal = params[:horizontal].downcase == "false" ? false:true
 | 
						
						
						
							|  |  |       @obj = find_object_by_type_and_id(@obj_type,@obj_id)
 | 
						
						
						
							|  |  |       unless @obj.author_id == User.current.id
 | 
						
						
						
							|  |  |         praise_tread_plus(@obj_type,@obj_id,0)
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def tread_minus
 | 
						
						
						
							|  |  |     respond_to do |format|
 | 
						
						
						
							|  |  |       format.html
 | 
						
						
						
							|  |  |       format.js
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   private
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def find_object_by_type_and_id(type,id)
 | 
						
						
						
							|  |  |     @obj = nil
 | 
						
						
						
							|  |  |     case type
 | 
						
						
						
							|  |  |       when  'Memo'
 | 
						
						
						
							|  |  |         @obj = Memo.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'Message'
 | 
						
						
						
							|  |  |         @obj = Message.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'HomeworkCommon'
 | 
						
						
						
							|  |  |         @obj = HomeworkCommon.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'JournalsForMessage'
 | 
						
						
						
							|  |  |         @obj = JournalsForMessage.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'News'
 | 
						
						
						
							|  |  |         @obj = News.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'Comment'
 | 
						
						
						
							|  |  |         @obj = Comment.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'Journal'
 | 
						
						
						
							|  |  |         @obj = Journal.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'BlogComment'
 | 
						
						
						
							|  |  |         @obj = BlogComment.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'OrgDocumentComment'
 | 
						
						
						
							|  |  |         @obj = OrgDocumentComment.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'User'
 | 
						
						
						
							|  |  |         @obj = User.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'Issue'
 | 
						
						
						
							|  |  |         @obj = Issue.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'Project'
 | 
						
						
						
							|  |  |         @obj = Project.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'Bid'
 | 
						
						
						
							|  |  |         @obj = Bid.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'Contest'
 | 
						
						
						
							|  |  |         @obj = Contest.find_by_id(id)
 | 
						
						
						
							|  |  |       when 'Syllabus'
 | 
						
						
						
							|  |  |         @obj = Syllabus.find_by_id(id)
 | 
						
						
						
							|  |  |       else
 | 
						
						
						
							|  |  |         @obj = nil
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     return @obj
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def praise_tread_plus(type,id,flag)
 | 
						
						
						
							|  |  |     unless id.nil? and type.nil?
 | 
						
						
						
							|  |  |       #首先创建或更新praise_tread 表
 | 
						
						
						
							|  |  |       @pt = PraiseTread.new
 | 
						
						
						
							|  |  |       @pt.user_id = User.current.id
 | 
						
						
						
							|  |  |       @pt.praise_tread_object_id = id.to_i
 | 
						
						
						
							|  |  |       @pt.praise_tread_object_type = type
 | 
						
						
						
							|  |  |       @pt.praise_or_tread = flag
 | 
						
						
						
							|  |  |       @pt.save
 | 
						
						
						
							|  |  |       # end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       #再创建或更新praise_tread_cache表
 | 
						
						
						
							|  |  |       #@ptc = PraiseTreadCache.find_by_object_id_and_object_type(id,type)
 | 
						
						
						
							|  |  |       @ptc = PraiseTreadCache.where("object_id = ? and object_type = ?",id.to_i,type).first
 | 
						
						
						
							|  |  |       @ptc = @ptc.nil? ? PraiseTreadCache.new : @ptc
 | 
						
						
						
							|  |  |       @ptc.object_id = id.to_i
 | 
						
						
						
							|  |  |       @ptc.object_type = type
 | 
						
						
						
							|  |  |       @ptc.save
 | 
						
						
						
							|  |  |       @ptc.plus(flag,1)
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | end
 |