FIX 插销掉dev_chain分支的合并

This commit is contained in:
Jasder
2020-07-15 17:13:16 +08:00
parent c181abce81
commit b9abd6a152
3 changed files with 85 additions and 32 deletions

View File

@@ -57,23 +57,42 @@ class SyncProjectsJob < ApplicationJob
u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first
re[:target_params].delete(:id)
if target_type == "Issue"
new_target = target_type.constantize.new(re[:target_params].merge(author_id: u_id))
is_exists = Issue.exists?(author_id: u_id, project_id: re[:target_params][:project_id], subject: re[:target_params][:subject])
unless is_exists
assing_u_id = User.select(:id, :login).where(login: re[:assign_login]).pluck(:id).first
new_target = target_type.constantize.new(re[:target_params].merge(author_id: u_id))
new_target.assigned_to_id = assing_u_id
end
else
new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id))
case target_type
when "Journal"
is_exists = Journal.exists?(user_id: u_id, journalized_id: re[:target_params][:journalized_id], created_on: re[:target_params][:created_on].to_s.to_time)
when "Member"
is_exists = Member.exists?(user_id: u_id, project_id: re[:target_params][:project_id], created_on: re[:target_params][:created_on].to_s.to_time)
when "Version"
is_exists = Version.exists?(user_id: u_id, project_id: re[:target_params][:project_id], created_on: re[:target_params][:created_on].to_s.to_time)
when "Watcher"
is_exists = Watcher.exists?(user_id: u_id, watchable_id: re[:target_params][:watchable_id], created_at: re[:target_params][:created_at].to_s.to_time)
when "PraiseTread"
is_exists = PraiseTread.exists?(user_id: u_id, praise_tread_object_id: re[:target_params][:praise_tread_object_id], created_at: re[:target_params][:created_at].to_s.to_time)
else
is_exists = false
end
unless is_exists
new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id))
end
end
if target_type == "Issue"
assing_u_id = User.select(:id, :login).where(login: re[:assign_login]).pluck(:id).first
new_target.assigned_to_id = assing_u_id
end
if new_target.save!
if !is_exists && new_target.save!
SyncLog.sync_project_log("***【#{target_type}】. create_success---------------")
if re[:journals].present?
create_journals(re[:journals], "Journal", new_target.id)
end
if re[:journal_details].present?
re[:journal_details].each do |j|
JournalDetail.create!(j.merge(journal_id: new_target.id)) if j.present?
unless JournalDetail.exists?(journal_id: new_target.id)
JournalDetail.create!(j.merge(journal_id: new_target.id)) if j.present?
end
end
end
if re[:member_roles].present?
@@ -82,7 +101,7 @@ class SyncProjectsJob < ApplicationJob
end
end
else
SyncLog.sync_project_log("***【#{target_type}】. create_failed---------------")
SyncLog.sync_project_log("***【#{target_type}】. create_failed---or has_exists---------------")
end
end
end
@@ -100,14 +119,22 @@ class SyncProjectsJob < ApplicationJob
SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}-----#{index+1}")
if re[:target_params].present?
u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first
re[:target_params].delete(:id)
new_target = Journal.new(re[:target_params].merge(user_id: u_id))
new_target.journalized_id = issue_id
if new_target.save!
if re[:journal_details].present?
re[:journal_details].each do |j|
JournalDetail.create!(j.merge(journal_id: new_target.id))
is_exists = Journal.exists?(user_id: u_id, journalized_id: re[:target_params][:journalized_id], created_on: re[:target_params][:created_on].to_s.to_time)
if is_exists
SyncLog.sync_project_log("***00000. Journal:#{re[:target_params][:id]}-is exists--------------")
else
re[:target_params].delete(:id)
new_target = Journal.new(re[:target_params].merge(user_id: u_id))
new_target.journalized_id = issue_id
if new_target.save!
if re[:journal_details].present?
re[:journal_details].each do |j|
JournalDetail.create!(j.merge(journal_id: new_target.id))
end
end
else
SyncLog.sync_project_log("***111222. journal_create failed---------------")
end
end
end
@@ -118,15 +145,22 @@ class SyncProjectsJob < ApplicationJob
def create_versions(project, target_jsons)
SyncLog.sync_log("***【Versions】. begin_to_create_verison---------------")
return SyncLog.sync_log("*** no target_jsons") if target_jsons.blank?
all_issues = project.issues.select(:id, :project_id, :fixed_version_id)
target_jsons.each do |re|
old_id = re[:target_params][:id]
if re[:target_params].present?
u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first
re[:target_params].delete(:id)
new_target = Version.new(re[:target_params].merge(user_id: u_id))
if new_target.save!
all_issues&.where(fixed_version_id: old_id)&.update_all(fixed_version_id: new_target.id)
is_exists = Version.exists?(user_id: u_id, project_id: re[:target_params][:project_id], created_on: re[:target_params][:created_on].to_s.to_time)
if is_exists
SyncLog.sync_project_log("***00000. Version:#{re[:target_params][:id]}-is exists--------------")
else
re[:target_params].delete(:id)
new_target = Version.new(re[:target_params].merge(user_id: u_id))
if new_target.save!
all_issues = project.issues.select(:id, :project_id, :fixed_version_id)
all_issues&.where(fixed_version_id: old_id)&.update_all(fixed_version_id: new_target.id)
else
SyncLog.sync_project_log("***111222. Version_create failed---------------")
end
end
end
end