Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/sproduction.datasync/lib/ |
Upload File : |
<?php /** * Orders adding lock * * @mail support@s-production.online * @link s-production.online */ namespace SProduction\Datasync; use Bitrix\Main, Bitrix\Main\DB\Exception, Bitrix\Main\Config\Option; class PortalAddLock { function add($order_id) { if (!self::check($order_id)) { $result = LockTable::add([ 'type' => 'new_order', 'entity_id' => $order_id, ]); FileLog::put('(OrderAddLock::add) order ' . $order_id . ' lock add "' . $result . '"'); } return true; } function delete($order_id) { LockTable::delLock($order_id, 'new_order'); FileLog::put('(OrderAddLock::delete) order ' . $order_id . ' lock delete'); return true; } function check($order_id, $delete=false) { $res = false; $i = 0; do { if (isset($orders)) { usleep(50000); } $orders = LockTable::getList([ 'filter' => [ 'type' => 'new_order', 'entity_id' => $order_id ] ]); $i++; } while(empty($orders) && $i < 3); if (!empty($orders)) { $res = $orders[0]['time']; } if ($delete) { self::delete($order_id); } FileLog::put('(OrderAddLock::check) order ' . $order_id . ' lock check "' . $res . '"'); return $res; } }