|
- 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)
- 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
|