|  |  |  | @ -49,14 +49,21 @@ class UserScore < ActiveRecord::Base | 
			
		
	
		
			
				
					|  |  |  |  |   def self.joint(operate, current_user, target_user, options={}) | 
			
		
	
		
			
				
					|  |  |  |  |     case operate  | 
			
		
	
		
			
				
					|  |  |  |  |     when :post_message            # current_user 发帖了 | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.info "[UserScore#joint] ===> User: #{current_user} posting a message. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     when :post_issue              # current_user 对 target_user 的缺陷留言了 | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.info "[UserScore#joint] ===> User: #{current_user} posting a issue. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     when :change_issue_status     # current_user 更改了缺陷的状态 | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.info "[UserScore#joint] ===> User: #{current_user} change issue status. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     when :reply_message           # current_user 对 target_user 留言的回复 | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.info "[UserScore#joint] ===> User: #{current_user} reply message. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     when :reply_posting           # current_user 对 target_user 帖子的回复 | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.info "[UserScore#joint] ===> User: #{current_user} reply posting. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     else | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.error "[UserScore#joint] ===> #{operate} is not define." | 
			
		
	
		
			
				
					|  |  |  |  |       return false | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  |   rescue => e | 
			
		
	
		
			
				
					|  |  |  |  |     Rails.logger.error "[UserScore#joint] ===> Exception: #{e}." | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   # 前略·影响力得分 | 
			
		
	
	
		
			
				
					|  |  |  | @ -72,10 +79,13 @@ class UserScore < ActiveRecord::Base | 
			
		
	
		
			
				
					|  |  |  |  |   def self.influence(operate, current_user, target_user, options={}) | 
			
		
	
		
			
				
					|  |  |  |  |     case operate  | 
			
		
	
		
			
				
					|  |  |  |  |     when :followed_by # current_user 关注了target_user | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.info "[UserScore#influence] ===> User: #{current_user} be followed. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     else | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.error "[UserScore#influence] ===> #{operate} is not define." | 
			
		
	
		
			
				
					|  |  |  |  |       return false | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  |   rescue => e | 
			
		
	
		
			
				
					|  |  |  |  |     Rails.logger.error "[UserScore#influence] ===> Exception: #{e}." | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   # 前略·技术得分 | 
			
		
	
	
		
			
				
					|  |  |  | @ -90,13 +100,18 @@ class UserScore < ActiveRecord::Base | 
			
		
	
		
			
				
					|  |  |  |  |   # Returns boolean. 返回积分保存结果 | 
			
		
	
		
			
				
					|  |  |  |  |   def self.skill(operate, current_user, target_user, options={}) | 
			
		
	
		
			
				
					|  |  |  |  |     case operate  | 
			
		
	
		
			
				
					|  |  |  |  |     when :treading          # current_user 踩了 target_user 的帖子 | 
			
		
	
		
			
				
					|  |  |  |  |     # when :treading          # current_user 踩了 target_user 的帖子 | 
			
		
	
		
			
				
					|  |  |  |  |     #   Rails.logger.info "[UserScore#skill] ===> User: #{current_user} treading #{target_user}'s posting. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     when :treaded_by_user   # current_user 踩了 target_user 的帖子 | 
			
		
	
		
			
				
					|  |  |  |  |     when :praise_by_user    # current_user 顶了 target_user 的帖子 | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.info "[UserScore#skill] ===> User: #{current_user} treaded_by #{target_user}. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     when :praised_by_user    # current_user 顶了 target_user 的帖子 | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.info "[UserScore#skill] ===> User: #{current_user} praised_by #{target_user}. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     else | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.error "[UserScore#skill] ===> #{operate} is not define." | 
			
		
	
		
			
				
					|  |  |  |  |       return false | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  |   rescue => e | 
			
		
	
		
			
				
					|  |  |  |  |     Rails.logger.error "[UserScore#skill] ===> Exception: #{e}." | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   # 前略·项目得分 | 
			
		
	
	
		
			
				
					|  |  |  | @ -110,24 +125,41 @@ class UserScore < ActiveRecord::Base | 
			
		
	
		
			
				
					|  |  |  |  |   # | 
			
		
	
		
			
				
					|  |  |  |  |   # Returns boolean. 返回积分保存结果 | 
			
		
	
		
			
				
					|  |  |  |  |   def self.project(operate, current_user, options={}) | 
			
		
	
		
			
				
					|  |  |  |  |     current_user, target_user = get_users(current_user, nil) | 
			
		
	
		
			
				
					|  |  |  |  |     user_score = current_user.user_score_attr | 
			
		
	
		
			
				
					|  |  |  |  |     case operate  | 
			
		
	
		
			
				
					|  |  |  |  |     when :push_code         # current_user 提交了代码 | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.debug "[UserScore#project] ===> User: [#{current_user.id},#{current_user.name}] pushed code one time. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     when :push_document     # current_user  | 
			
		
	
		
			
				
					|  |  |  |  |       user_score.active = user_score.active.to_i + 4 | 
			
		
	
		
			
				
					|  |  |  |  |       user_score.save | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.debug "[UserScore#project] ===> User: [#{current_user.id},#{current_user.name}] pushed a document. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     when :push_file         # current_user | 
			
		
	
		
			
				
					|  |  |  |  |     when :update_issue      # current_user | 
			
		
	
		
			
				
					|  |  |  |  |       user_score.active = user_score.active.to_i + 4 | 
			
		
	
		
			
				
					|  |  |  |  |       user_score.save | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.debug "[UserScore#project] ===> User: [#{current_user.id},#{current_user.name}] pushed a file. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     when :update_issue_ratio      # current_user | 
			
		
	
		
			
				
					|  |  |  |  |       user_score.active = user_score.active.to_i + 2 | 
			
		
	
		
			
				
					|  |  |  |  |       user_score.save | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.debug "[UserScore#project] ===> User: [#{current_user.id},#{current_user.name}] updated issue ratio. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     when :post_issue        # current_user | 
			
		
	
		
			
				
					|  |  |  |  |       user_score.active = user_score.active.to_i + 4 | 
			
		
	
		
			
				
					|  |  |  |  |       user_score.save | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.debug "[UserScore#project] ===> User: [#{current_user.id},#{current_user.name}] posting issue. options => (#{options.to_s})" | 
			
		
	
		
			
				
					|  |  |  |  |     else | 
			
		
	
		
			
				
					|  |  |  |  |       Rails.logger.error "[UserScore#project] ===> #{operate} is not define." | 
			
		
	
		
			
				
					|  |  |  |  |       return false | 
			
		
	
		
			
				
					|  |  |  |  |     end | 
			
		
	
		
			
				
					|  |  |  |  |   rescue => e | 
			
		
	
		
			
				
					|  |  |  |  |     Rails.logger.error "[UserScore#project] ===> Exception: #{e}." | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   private | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   def get_users(current_user, target_user) | 
			
		
	
		
			
				
					|  |  |  |  |     cUser =  (current_user.kind_of?User) ? user : User.find_by_id(user) | 
			
		
	
		
			
				
					|  |  |  |  |     tUser =  (target_user.kind_of?User) ? user : User.find_by_id(user) | 
			
		
	
		
			
				
					|  |  |  |  |   def self.get_users(current_user, target_user) | 
			
		
	
		
			
				
					|  |  |  |  |     cUser =  (current_user.kind_of?User) ? current_user : User.find_by_id(current_user) | 
			
		
	
		
			
				
					|  |  |  |  |     tUser =  (target_user.kind_of?User) ? target_user : User.find_by_id(target_user) | 
			
		
	
		
			
				
					|  |  |  |  |      | 
			
		
	
		
			
				
					|  |  |  |  |     @current_user, @target_user = cUser, tUser | 
			
		
	
		
			
				
					|  |  |  |  |     [cUser, tUser] | 
			
		
	
		
			
				
					|  |  |  |  |   end | 
			
		
	
		
			
				
					|  |  |  |  | end | 
			
		
	
	
		
			
				
					|  |  |  | 
 |