예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * @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;
 }