function cacheWaitingOrders($link, $orders, $timestamp) { if (!\database\beginTransaction($link)) { return false; } $expirationTime = $timestamp + FEED_CACHE_LIFETIME; if (!\database\setCacheExpirationTime($link, FEED_CACHE_ID, $expirationTime) || !\database\putFeedCache($link, $orders)) { \database\rollbackTransaction($link); return false; } return \database\commitTransaction($link); }
/** * Return: * null - error * false - no object * balance - success */ function markOrderExecuted($orderId, $customerId, $executorId, $commission) { $userInfo = getUserInfoById($executorId); if (!$userInfo || getIfExists($userInfo, 'role') !== ROLE_EXECUTOR) { return null; } $dbInfo = getDbForWaitingOrders($customerId); $link = $dbInfo ? connect($dbInfo) : null; if (!$link || !\database\beginTransaction($link)) { return null; } $result = doMarkOrderExecuted($link, $orderId, $customerId, $executorId, $commission); if (!$result) { \database\rollbackTransaction($link); return $result; } $userInfo = \storage\getUserInfoById($executorId); if (!$userInfo) { \database\rollbackTransaction($link); return null; } return \database\commitTransaction($link) ? $userInfo['balance'] : null; }