|
|
|
@ -13,7 +13,7 @@ class ProjectsService
|
|
|
|
|
#显示项目
|
|
|
|
|
def show_project(params,current_user)
|
|
|
|
|
project = Project.find(params[:id])
|
|
|
|
|
# project.generate_invite_code
|
|
|
|
|
project.generate_invite_code
|
|
|
|
|
# project.generate_qrcode
|
|
|
|
|
|
|
|
|
|
project
|
|
|
|
@ -226,21 +226,61 @@ class ProjectsService
|
|
|
|
|
message = ""
|
|
|
|
|
|
|
|
|
|
project = Project.find(params[:project_id])
|
|
|
|
|
|
|
|
|
|
user = User.find(params[:user_id])
|
|
|
|
|
if project
|
|
|
|
|
messages = AppliedProject.where("project_id = ? and user_id=?",project.id,params[:user_id]).first
|
|
|
|
|
if messages
|
|
|
|
|
apply_user = User.find(params[:user_id])
|
|
|
|
|
applied_messages = AppliedMessage.where(:user_id => current_user.id, :project_id => project.id, :status => 1, :applied_user_id=>user.id,:applied_type => "AppliedProject")
|
|
|
|
|
apply_message = applied_messages.first
|
|
|
|
|
if apply_message
|
|
|
|
|
if user.member_of?(project)
|
|
|
|
|
message = "已经是该项目的成员了"
|
|
|
|
|
applied_messages.update_all(:status=>7)
|
|
|
|
|
else
|
|
|
|
|
applied_project = apply_message.applied
|
|
|
|
|
ap_role = applied_project.try(:role)
|
|
|
|
|
if ap_role
|
|
|
|
|
rolename = ap_role == 3 ? :"管理人员" : "开发人员"
|
|
|
|
|
if params[:type] == 0
|
|
|
|
|
#同意
|
|
|
|
|
members = []
|
|
|
|
|
user_grades = []
|
|
|
|
|
project_info = []
|
|
|
|
|
members << Member.new(:role_ids => ["#{ap_role}"], :user_id => user.id)
|
|
|
|
|
user_grades << UserGrade.new(:user_id => user.id, :project_id => project.id)
|
|
|
|
|
role = Role.find(ap_role)
|
|
|
|
|
project_info << ProjectInfo.new(:project_id => project.id, :user_id => user.id) if role.allowed_to?(:is_manager)
|
|
|
|
|
project.members << members
|
|
|
|
|
project.project_infos << project_info
|
|
|
|
|
project.user_grades << user_grades unless user_grades.first.user_id.nil?
|
|
|
|
|
|
|
|
|
|
# 添加成功后所有管理员收到的消息状态都要更新
|
|
|
|
|
applied_messages.update_all(:status => 7, :viewed => true)
|
|
|
|
|
# 添加成功后,申请人收到消息
|
|
|
|
|
AppliedMessage.create(:user_id => user.id, :applied_type => "AppliedProject", :applied_id => applied_project.id ,
|
|
|
|
|
:status => 6, :viewed => false, :applied_user_id => current_user.id, :role => applied_project.role, :project_id => applied_project.project_id)
|
|
|
|
|
|
|
|
|
|
message = "您已同意"+rolename+user.show_name+",加入项目"
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
else
|
|
|
|
|
#拒绝
|
|
|
|
|
AppliedMessage.create(:user_id => user.id, :applied_type => "AppliedProject", :applied_id => applied_project.id ,:status => 4,
|
|
|
|
|
:viewed => false, :applied_user_id => current_user.id, :role => applied_project.role, :project_id => applied_project.project_id)
|
|
|
|
|
|
|
|
|
|
applied_messages.update_all(:status => 5, :viewed => true)
|
|
|
|
|
applied_project.delete
|
|
|
|
|
|
|
|
|
|
status = 0
|
|
|
|
|
else
|
|
|
|
|
message = "该申请不存在或已被处理"
|
|
|
|
|
end
|
|
|
|
|
message = "您已拒绝"+rolename+user.show_name+",加入项目"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
status = 0
|
|
|
|
|
else
|
|
|
|
|
message = "该申请不存在或已被处理"
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
message = "该申请不存在或已被处理"
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
message = "该班级不存在或已被删除"
|
|
|
|
|
message = "该项目不存在或已被删除"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
{:status => status,:message => message}
|
|
|
|
|