/** * Checks balance of a list of users for sufficient credits to perform action * * @param string $pluginKey * @param string $action * @param int $userIdList */ public function checkBalanceForUserList($pluginKey, $action, array $userIdList) { if (!mb_strlen($pluginKey) || !mb_strlen($action) || !$userIdList) { return array(); } $def = array_fill_keys($userIdList, true); if (!($action = $this->findAction($pluginKey, $action))) { return $def; } if ($action->amount >= 0) { return $def; } $balance = $this->balanceDao->getBalanceForUserList($userIdList); $balanceList = array(); if ($balance) { foreach ($balance as $userBalance) { $balanceList[$userBalance->userId] = $userBalance->balance; } } $result = array(); foreach ($userIdList as $userId) { $result[$userId] = !empty($balanceList[$userId]) && $balanceList[$userId] >= abs($action->amount); } return $result; }
/** * @param array $userIdList * @return array */ public function getBalanceForUserList(array $userIdList) { if (!$userIdList) { return null; } $balance = $this->balanceDao->getBalanceForUserList($userIdList); $balanceList = array(); if ($balance) { foreach ($balance as $userBalance) { $balanceList[$userBalance->userId] = $userBalance->balance; } } return $balanceList; }