class PullRequests::SendJournalService < ApplicationService def initialize(project, pull_request,current_user) @project = project @pull_request = pull_request @issue = pull_request.issue @current_user = current_user @org = project.owner end def call if @org.enabling_cla && @org.cla.present? && @org.cla.pr_need && !@org.is_member?(@current_user&.id) && !@org.cla.valid_sign(@current_user&.id) ActiveRecord::Base.transaction do sender_id = if Rails.env.development? User.last.id else 87461 end journal_params = { journalized_id: @issue.id , journalized_type: "Issue", user_id: sender_id , notes: "#{@current_user.nickname}您好!欢迎参与 #{@project.name} 的贡献。首次进行贡献请完成《#{@project.owner.cla.name}》的签署,签署完成后,项目成员才可查看到您的合并请求", } journal = Journal.new journal_params if journal.save @pull_request.update_attributes(status: 3) TouchWebhookJob.set(wait: 5.seconds).perform_later('PullRequestComment', @issue&.id, sender_id, journal.id, 'created', {}) push_activity_2_blockchain("issue_comment_create", journal) if Site.has_blockchain? && @project.use_blockchain end end end end end