delete convert user

feature/schedule-sms-update-status_command_in_kernel
Saeid 4 years ago
commit a29138bbb8

@ -1,327 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB as Database;
use Illuminate\Support\Carbon;
class ConvertUser extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'db:convert';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This command when work you need transfer a table rows to another table row';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Return data from Temp-business
*
* @return rows
*
*/
private function getBusinessRows()
{
$data = Database::table('temp_businesses')->get();
return $data;
}
/**
* Insert a row in table users
*/
private function insertRowToUsers($data)
{
Database::table('users')->insertOrIgnore($data);
$lastUser = Database::table('users')
->orderBy('id', 'DESC')
->first();
return $lastUser->id;
}
/**
* Insert to wmuser_common phone
*/
private function insertPhone($phones,$userId)
{
foreach($phones as $phone)
{
$number_type ;
$regex = '/^09[0,1,2,3,9]{1}[0-9]{8}$/';
if (preg_match($regex,$phone->tel) == 1)
{
$number_type = 'cellphone';
}else{
$number_type = 'telephone';
}
Database::table('wmuser_common.phones')->insertOrIgnore([
'phonable_id' => $userId,
'number' => $phone->tel,
'label' => $phone->label,
'number_type' => $number_type,
'phonable_type' => 'user',
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
}
}
/**
* Insert address
*/
private function InsertAddress($addressData,$tmp_id, $userId)
{
$userAddress = Database::select(
'select * from `addresses` where addressable_id=? and addressable_type =?',
[
$tmp_id,
'App\TempBusiness'
]
);
foreach ($userAddress as $address)
{
Database::table('wmuser_common.addresses')->insertOrIgnore([
'title' => $address->title,
'city_id' => $addressData['city_id'],
'district_id' => $addressData['district_id'],
'postal_code' => $address->postal_code,
'addressable_id' => $userId,
'addressable_type' => 'user',
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
]);
}
}
/**
* insert Status to client status
*
*/
private function insertToClientStatuses($clientStatus)
{
$check_client_status = Database::table('wmuser_crm.client_statuses')
->where('name' , $clientStatus)
->first();
$client_status_id;
if ($check_client_status === null) {
Database::table('wmuser_crm.client_statuses')->insertOrIgnore([
'name' => $clientStatus,
'user_id' => 52,
'business_id' => 3,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
]);
$client_status_id = Database::table('wmuser_crm.client_statuses')
->orderBy('id', 'DESC')
->first();
} else {
$client_status_id = $check_client_status;
}
return $client_status_id->id;
}
/**
* update user status
**/
private function updateToUserStatus($userId,$userStatusId)
{
Database::table('users')
->where('id', $userId)
->update(['user_status_id' => $userStatusId]);
}
/**
* Insert categories with Id
*/
private function categoriesConfig($categoryId, $client_id)
{
$category = Database::table('categories')
->where('id' , $categoryId)
->first();
$check_category_exist = Database::table('wmuser_crm.client_categories')
->where('name_en' , $category->name_en)
->first();
$client_category_id ;
if ($check_category_exist === null)
{
Database::table('wmuser_crm.client_categories')->insertOrIgnore([
'name_en' => $category->name_en,
'name' => $category->name_fa,
'parent_id' => null,
'business_id' => 3,
'user_id' => $client_id,
'level' => 1,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
]);
$client_category_id = Database::table('wmuser_crm.client_categories')
->orderBy('id', 'DESC')
->first();
$client_category_id = $client_category_id->id;
} else {
$client_category_id = $check_category_exist->id;
}
Database::table('wmuser_crm.client_client_category')->insertOrIgnore([
'client_category_id' => $client_category_id,
'client_id' => $client_id
]);
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$count = 0;
foreach($this->getBusinessRows() as $userData)
{
$phones = json_decode($userData->phones);
$cellPhone = null;
foreach ($phones as $phone)
{
$phone->tel = str_replace(' ','',$phone->tel);
}
for( $i=0; $i <= count($phones)-1 ; $i++ )
{
$regex = '/^09[0,1,2,3,9]{1}[0-9]{8}$/';
$match = preg_match($regex,$phones[$i]->tel);
if ($match == 1)
{
$cellPhone = $phones[$i]->tel;
break;
}
}
$userTableDedails = [
'address' => [
'latitude' => $userData->latitude,
'longitude' => $userData->longitude
],
'details' => json_decode($userData->details),
];
$userTableData = [
'name' => $userData->brand_fa,
'name_en' => $userData->brand_en,
'business_id' => 3,
'cell_number' => $cellPhone,
'detail' => json_encode($userTableDedails),
'instagram' => json_decode($userData->details)->InstagramID,
'telegram' => json_decode($userData->details)->TelegramID,
'email' => json_decode($userData->details)->Email,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
'user_status_id' => null,
];
$userAddress = [
'district_id' => $userData->district_id,
'city_id' => $userData->city_id
];
$newUserId = $this->insertRowToUsers($userTableData);
$this->categoriesConfig($userData->category_id, $newUserId);
$this->InsertAddress($userAddress, $userData->id,$newUserId);
$this->insertPhone($phones , $newUserId);
$lastStatusId = $this->insertToClientStatuses($userData->status);
$this->updateToUserStatus($newUserId,$lastStatusId);
$count ++;
$this->info('success transfer user : '. $newUserId . ' count of add : '.$count);
}
}
}
Loading…
Cancel
Save