|
|
|
@ -355,4 +355,67 @@ class ProjectsService
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#删除项目成员
|
|
|
|
|
def project_delete_member project,user_id,current_user
|
|
|
|
|
if user.nil?
|
|
|
|
|
state = -1
|
|
|
|
|
return state
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
member = project.members.where("user_id=?",user_id).first
|
|
|
|
|
|
|
|
|
|
if member != nil
|
|
|
|
|
member.destroy
|
|
|
|
|
# end
|
|
|
|
|
user_admin = ProjectInfo.where("user_id = ? and project_id = ?", member.user_id, project.id)
|
|
|
|
|
if user_admin.size > 0
|
|
|
|
|
user_admin.each do |user|
|
|
|
|
|
user.destroy
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
user_grade = UserGrade.where("user_id = ? and project_id = ?", member.user_id, project.id)
|
|
|
|
|
if user_grade.size > 0
|
|
|
|
|
user_grade.each do |grade|
|
|
|
|
|
grade.destroy
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
# 移出的时候删除申请消息,不需要删除消息,所以不必要关联删除
|
|
|
|
|
applied_projects = AppliedProject.where(:project_id => project.id, :user_id => member.user_id).first
|
|
|
|
|
unless applied_projects.nil?
|
|
|
|
|
applied_projects.delete
|
|
|
|
|
end
|
|
|
|
|
#移出项目发送消息
|
|
|
|
|
ForgeMessage.create(:user_id => member.user_id, :project_id => project.id, :forge_message_type => "RemoveFromProject", :viewed => false, :forge_message_id => current_user.id)
|
|
|
|
|
return 0
|
|
|
|
|
else
|
|
|
|
|
return 1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def exit_project project,user
|
|
|
|
|
if user.nil?
|
|
|
|
|
state = -1
|
|
|
|
|
return state
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if project.user_id == user.id
|
|
|
|
|
state = -2
|
|
|
|
|
return state
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
members = Member.where(:user_id => user.id, :project_id=>project.id).first
|
|
|
|
|
if members != nil && members.roles.first.to_s != "Manager"
|
|
|
|
|
members.destroy
|
|
|
|
|
# 移出的时候删除申请消息,不需要删除消息,所以不必要关联删除
|
|
|
|
|
applied_projects = AppliedProject.where(:project_id => project.id, :user_id => members.user_id).first
|
|
|
|
|
unless applied_projects.nil?
|
|
|
|
|
applied_projects.delete
|
|
|
|
|
end
|
|
|
|
|
state = 0
|
|
|
|
|
else
|
|
|
|
|
state = -3
|
|
|
|
|
end
|
|
|
|
|
return state
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|