修复编辑作业提交时的bug

修改个人得分
This commit is contained in:
z9hang 2014-08-07 10:45:56 +08:00
parent 17e6f0ee4f
commit eacc0fdf53
2 changed files with 35 additions and 68 deletions

View File

@ -29,6 +29,7 @@ class BidsController < ApplicationController
helper :projects
helper :words
helper :welcome
helper :project_score
def find_project_by_bid_id
@bid = Bid.find(params[:id])

View File

@ -414,7 +414,7 @@ module UserScoreHelper
#发帖数
def memo_num(user,project=nil)
if project.nil?
Message.includes(:author).joins(:board).where("#{Message.table_name}.parent_id IS NULL and #{Message.table_name}.author_id = '#{user.id}' and #{Board.table_name}.project_id != -1").all.count
Message.includes(:author).joins(:board).where("#{Message.table_name}.parent_id IS NULL and #{Message.table_name}.author_id = '#{user.id}' and #{Board.table_name}.project_id != -1").all.count #+ Memo.includes(:author).where("parent_id IS NULL and author_id = '#{user.id}'").all.count
else
Message.includes(:author).joins(:board).where("#{Message.table_name}.parent_id IS NULL and #{Message.table_name}.author_id = '#{user.id}' and #{Board.table_name}.project_id = #{project.id}").all.count
end
@ -458,26 +458,26 @@ module UserScoreHelper
option_number.replay_for_message = replay_for_message_num(user,project)#JournalsForMessage.includes(:user).where("m_parent_id IS NOT NULL and user_id = #{user.id}").count
update_score(option_number)
end
#====================================contiue here=====================================================
def replay_for_message_num(user,project=nil)
if project.nil?
JournalsForMessage.includes(:user).where("m_parent_id IS NOT NULL and user_id = #{user.id}").count
JournalsForMessage.includes(:user).where("m_parent_id IS NOT NULL and user_id = #{user.id} and jour_type = 'Project'").count
else
JournalsForMessage.includes(:user).where("m_parent_id IS NOT NULL and user_id = #{user.id} and jour_type = 'Project' and jour_id = '#{project.id}'").count
end
end
#更新对帖子的回复数量
def update_replay_for_memo(user,type)
def update_replay_for_memo(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.replay_for_memo = Message.includes(:author).where("parent_id IS NOT NULL and author_id = #{user.id}").all.count #+ Memo.includes(:author).where("parent_id IS NOT NULL and author_id = #{user.id}").all.count
option_number.replay_for_memo = replay_for_memo_num(user,project)#Message.includes(:author).where("parent_id IS NOT NULL and author_id = #{user.id}").all.count #+ Memo.includes(:author).where("parent_id IS NOT NULL and author_id = #{user.id}").all.count
update_score(option_number)
end
def replay_for_memo_num(user,project=nil)
if project.nil?
Message.includes(:author).where("parent_id IS NOT NULL and author_id = #{user.id}").all.count
Message.includes(:author).joins(:board).where("#{Message.table_name}.parent_id IS NOT NULL and #{Message.table_name}.author_id = '#{user.id}' and #{Board.table_name}.project_id != -1").all.count
else
Message.includes(:author).joins(:board).where("#{Message.table_name}.parent_id IS NOT NULL and #{Message.table_name}.author_id = '#{user.id}' and #{Board.table_name}.project_id = #{project.id}").all.count
end
@ -495,32 +495,13 @@ module UserScoreHelper
end
#更新帖子踩各项数量
def update_tread(user,type)
def update_tread(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.tread = PraiseTread.where("praise_tread_object_type = 'Issue' || praise_tread_object_type = 'Message' and praise_or_tread = 0 and user_id = '#{user.id}'").all.count
pts = PraiseTread.where("praise_tread_object_type = 'Issue' || praise_tread_object_type = 'Message' and praise_or_tread = 0").all
result = []
result1 = []
result2 = []
pts.each do |pt|
obj = PraiseTread.find_object_by_type_and_id(pt.praise_tread_object_type, pt.praise_tread_object_id)
if obj.nil?
next
end
target_user = obj.author
level = UserLevels.get_level(pt.user)#pt.user.get_level
project = pt.project
if level == 1 && target_user.id = user.id
result << pt
elsif level == 2 && target_user.id = user.id
result1 << pt
elsif level == 3 && target_user.id = user.id
result2 << pt
end
end
option_number.tread_by_one = result.count
option_number.tread_by_two = result1.count
option_number.tread_by_three = result2.count
tread_nums = tread_num(user,project)
option_number.tread = tread_nums[:tread]
option_number.tread_by_one = tread_nums[:tead_by_one]
option_number.tread_by_two = tread_nums[:tread_by_two]
option_number.tread_by_three = tread_nums[:tread_by_three]
update_score(option_number)
end
@ -579,31 +560,12 @@ module UserScoreHelper
end
#更新帖子顶数量
def update_praise(user,type)
def update_praise(user,type,project=nil)
option_number = get_option_number(user,type)
pts = PraiseTread.where("praise_tread_object_type = 'Issue' || praise_tread_object_type = 'Message' and praise_or_tread = 1").all
result = []
result1 = []
result2 = []
pts.each do |pt|
obj = PraiseTread.find_object_by_type_and_id(pt.praise_tread_object_type, pt.praise_tread_object_id)
if obj.nil?
next
end
target_user = obj.author
level = UserLevels.get_level(pt.user)#pt.user.get_level
project = pt.project
if level == 1 && target_user.id = user.id
result << pt
elsif level == 2 && target_user.id = user.id
result1 << pt
elsif level == 3 && target_user.id = user.id
result2 << pt
end
end
option_number.praise_by_one = result.count
option_number.praise_by_two = result1.count
option_number.praise_by_three = result2.count
praise_nums = praise_num(user,project)
option_number.praise_by_one = praise_nums[:praise_by_one]
option_number.praise_by_two = praise_nums[:praise_by_two]
option_number.praise_by_three = praise_nums[:praise_by_three]
update_score(option_number)
end
@ -643,6 +605,9 @@ module UserScoreHelper
if obj.nil?
next
end
#if obj.project.id == -1
# next
#end
target_user = obj.author
level = UserLevels.get_level(pt.user)#pt.user.get_level
project = pt.project
@ -660,9 +625,9 @@ module UserScoreHelper
end
#更新提交代码次数
def update_changeset(user,type)
def update_changeset(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.changeset = Changeset.includes(:user).where("user_id = '#{user.id}'").all.count
option_number.changeset = changeset_num(user,project)#Changeset.includes(:user).where("user_id = '#{user.id}'").all.count
update_score(option_number)
end
@ -676,9 +641,9 @@ module UserScoreHelper
end
#更新文档提交次数
def update_document(user,type)
def update_document(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.document = Document.includes(:user).where("user_id = '#{user.id}'").all.count
option_number.document = document_num(user,project)#Document.includes(:user).where("user_id = '#{user.id}'").all.count
update_score(option_number)
end
@ -692,9 +657,9 @@ module UserScoreHelper
end
#更新附件提交数量
def update_attachment(user,type)
def update_attachment(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.attachment = Attachment.includes(:author).where("author_id = '#{user.id}'").all.count
option_number.attachment = attachment_num(user,project)#Attachment.includes(:author).where("author_id = '#{user.id}'").all.count
update_score(option_number)
end
@ -707,9 +672,9 @@ module UserScoreHelper
end
#更新缺陷完成度次数
def update_issue_done_ratio(user,type)
def update_issue_done_ratio(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.issue_done_ratio = Journal.joins(:details, :user).where("#{JournalDetail.table_name}.prop_key = 'done_ratio' and #{User.table_name}.id = '#{user.id}'").count
option_number.issue_done_ratio = issue_done_ratio_num(user,project) #Journal.joins(:details, :user).where("#{JournalDetail.table_name}.prop_key = 'done_ratio' and #{User.table_name}.id = '#{user.id}'").count
update_score(option_number)
end
@ -723,9 +688,9 @@ module UserScoreHelper
end
#更新发布缺陷次数
def update_post_issue(user,type)
def update_post_issue(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.post_issue = Issue.includes(:author).where("author_id = '#{user.id}'").all.count
option_number.post_issue = post_issue_num(user,project) #Issue.includes(:author).where("author_id = '#{user.id}'").all.count
update_score(option_number)
end
@ -737,7 +702,8 @@ module UserScoreHelper
end
end
def user_scores(user,type)
def user_scores(user,type,project=nil)
ooption_num = get_option_number(user,type,project)
update_score(ooption_num)
end
end