|
- class Admins::UnitAppliesController < Admins::BaseController
- before_action :get_apply,only: [:agree,:destroy,:edit,:update]
-
- def index
- params[:sort_by] ||= 'created_at'
- params[:sort_direction] ||= 'desc'
- unit_applies = Admins::UnitApplyQuery.call(params)
- @unit_applies = paginate unit_applies.preload(:school, :user)
- end
-
- def agree
- ActiveRecord::Base.transaction do
- begin
- @unit_apply.update_attribute("status",1)
- @unit_apply&.applied_messages&.update_all(status:1)
- @unit_apply&.school&.update_attribute("province",@unit_apply.province)
-
- # #申请信息的创建
- apply_message_params = {
- user_id: @unit_apply&.user_id,
- status: 1,
- viewed: 0,
- applied_id: @unit_apply.school_id,
- applied_type: "ApplyAddSchools",
- name: @unit_apply.name,
- }
- AppliedMessage.new(apply_message_params).save(validate: false)
-
- 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_params = {
- 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: 1
- }
- Tiding.create(tiding_params)
- render_success_js
- rescue Exception => e
- Rails.logger.info("############_________________#########{e}")
- end
- end
- end
-
- def destroy
- Admins::DeleteUnitApplyService.call(@unit_apply, params)
- render_success_js
- end
-
- def edit
- @all_schools = School.where.not(id: @unit_apply.school_id).pluck("name","id")
-
- end
-
- def update
- school = School.find_by(id: params[:school_id])
- ActiveRecord::Base.transaction do
- @unit_apply&.applied_messages&.update_all(status:4)
- 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_params = {
- user_id: @unit_apply.user_id,
- trigger_user_id: 0,
- container_id: @unit_apply.id,
- container_type: 'ApplyAddSchools',
- belong_container_id: params[:school_id],
- belong_container_type: "School",
- tiding_type: "System",
- status: 3,
- extra: school.try(:name).to_s
- }
- Tiding.create(tiding_params)
-
- UserExtension.where(school_id: @unit_apply.school_id).update_all(school_id: params[:school_id].to_i)
- ApplyAddDepartment.where(:school_id => @unit_apply.school_id).update_all(school_id: params[:school_id].to_i)
-
- # 判断重复
- before_apply_departments = Department.where(school_id: @unit_apply.school_id)
- before_apply_departments.each do |department|
- after_dep = Department.where(school_id: params[:school_id].to_i, name: department.name)&.first
- if after_dep.present?
- UserExtension.where(school_id: @unit_apply.school_id, department_id: department.id).update_all(department_id: after_dep.id)
- department.destroy
- department.apply_add_departments.destroy_all
- else
- department.apply_add_departments.update_all(school_id: school.id)
- department.update_attribute(:school_id, school.id)
- end
- end
-
- @unit_apply&.school&.destroy
- apply_params = {
- status: 2,
- name: school&.name.to_s,
- school_id: params[:school_id],
- province: params[:province],
- city: params[:city],
- address: params[:address]
- }
- @unit_apply.update_attributes(apply_params)
- # render_success_js
- end
- end
-
- private
-
- def get_apply
- @unit_apply = ApplyAddSchool.find_by(id:params[:id])
- end
-
- def disk_auth_filename(source_type, source_id, type)
- File.join(storage_path, "#{source_type}", "#{source_id}#{type}")
- end
- end
|