You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
3.0 KiB
56 lines
3.0 KiB
5 years ago
|
class Admins::DeleteUnitApplyService < ApplicationService
|
||
|
|
||
|
attr_reader :department, :params
|
||
|
|
||
|
def initialize(unit_apply, params)
|
||
|
@unit_apply = unit_apply
|
||
|
@params = params
|
||
|
end
|
||
|
|
||
|
def call
|
||
|
ActiveRecord::Base.transaction do
|
||
|
@unit_apply.update_attribute("status",3)
|
||
|
@unit_apply&.applied_messages&.update_all(status:3)
|
||
|
@unit_apply&.school&.apply_add_departments&.update_all(status:3)
|
||
|
|
||
|
applied_departments = ApplyAddDepartment.where(school_id: @unit_apply.school_id)
|
||
|
applied_departments.update_all(status: 3)
|
||
|
|
||
|
use_extensions = UserExtension&.where(school_id: @unit_apply.school_id)
|
||
|
user_ids = UserExtension&.where(school_id: @unit_apply.school_id)&.pluck(:user_id)
|
||
|
User.where(id: user_ids).update_all(profile_completed: false)
|
||
|
use_extensions.update_all(school_id: nil,department_id: nil)
|
||
|
|
||
|
@unit_apply&.user&.user_extension&.update_attribute("department_id", nil)
|
||
|
|
||
|
# 申请了职业认证的用户撤销申请
|
||
|
apply_user_auth = ApplyUserAuthentication.where(user_id: user_ids, auth_type: 2, status: 0)
|
||
|
apply_user_auth.each do |apply|
|
||
|
apply.tidings.destroy_all
|
||
|
apply.update_attribute('status', 3)
|
||
|
diskfile2 = disk_auth_filename('UserAuthentication', apply.user_id, 'PRO')
|
||
|
diskfilePRO = diskfile2 + 'temp'
|
||
|
File.delete(diskfilePRO) if File.exist?(diskfilePRO)
|
||
|
File.delete(diskfile2) if File.exist?(diskfile2)
|
||
|
end
|
||
|
|
||
|
# 未审批删除
|
||
|
if params[:tip] == "unapplied"
|
||
|
Tiding.where(:user_id => 1, :trigger_user_id => @unit_apply.user_id, :container_id => @unit_apply.id, :container_type => 'ApplyAddSchools', :status => 0, :tiding_type => "Apply").update_all(status: 1)
|
||
|
Tiding.create(:user_id => @unit_apply.user_id, :trigger_user_id => 0, :container_id => @unit_apply.id, :container_type =>'ApplyAddSchools', :belong_container_id => @unit_apply.school_id, :belong_container_type=> 'School', :tiding_type => "System", :status => 2, :extra => params[:reason])
|
||
|
|
||
|
Tiding.where(:user_id => 1, :container_id => applied_departments.pluck(:id), :container_type => 'ApplyAddDepartment', :status => 0, :tiding_type => "Apply").update_all(status: 1)
|
||
|
if applied_departments&.first.present?
|
||
|
Tiding.create(:user_id => applied_departments.first.user_id, :trigger_user_id => 0, :container_id => applied_departments.first.id, :container_type =>'ApplyAddDepartment', :belong_container_id => @unit_apply.school_id, :belong_container_type=> 'School', :tiding_type => "System", :status => 2)
|
||
|
AppliedMessage.create(:user_id => applied_departments.first.user_id, :status => 3, :viewed => 0, :applied_id => applied_departments.first.id, :applied_type => "ApplyAddDepartment", :name => applied_departments.first.name )
|
||
|
end
|
||
|
@unit_apply&.school&.destroy
|
||
|
@unit_apply&.school&.departments&.destroy_all
|
||
|
elsif params[:tip] == "applied"
|
||
|
applied_departments.destroy_all
|
||
|
@unit_apply.destroy
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|
||
|
end
|