lk.zachem.info/app/Modules/Admin/Http/Controllers/AdminBitrixController.php
2025-07-16 09:45:40 +08:00

69 lines
2.0 KiB
PHP

<?php
namespace Modules\Admin\Http\Controllers;
use Modules\Docs\Models\Document;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use App\Models\Agent\Agent;
use App\Models\Deal\Deal;
use App\Models\Deal\DealStatus;
use Modules\Bitrix\Models\BitrixId;
use App\Models\User;
//use App\Models\User\UserRole;
//use App\Models\User\Role;
class AdminBitrixController extends Controller
{
public function index()
{
return view('admin::bitrix.index', [
]);
}
public function agents()
{
return view('admin::bitrix.agents', [
'agents' => Agent::all()
]);
}
public function setAgentId(Request $request, Agent $agent)
{
$agent->setBitrixId($request->id);
return back()->withSuccess('ID агента обновлен');
}
public function syncDeals(Agent $agent)
{
$url = 'https://b24alfa.pro/channels/lk/getDealsOfContact?id=' . $agent->bitrixId();
$data = file_get_contents($url);
$deals = json_decode($data, true);
foreach ($deals as $deal)
{
$client = false;
//Загрузка контактов
if ($deal['contacts'][0]['phone'])
{
$client = User::createOrFirst(
['phone' => $deal['contacts'][0]['phone']],
[
'name' => $deal['contacts'][0]['name'],
'phone' => $deal['contacts'][0]['phone']
]
);
}
//Загрузка сделок
if (BitrixId::where('bx_id', $deal['deal']['deal_id'])->count() == 0)
{
$dealItem = Deal::create([
'client_id' => $client->id,
'complex_id' => 1,
'agent_id' => $agent->id,
'status' => DealStatus::UNIQUE,
]);
$dealItem->setBitrixId($deal['deal']['deal_id']);
}
}
}
}