예제 #1
0
 /**
  * Grant credits by one user to another
  *
  * @param $grantorId
  * @param $userId
  * @param $amount
  * @return bool
  */
 public function grantCredits($grantorId, $userId, $amount)
 {
     if (!$grantorId || !$userId || !$amount) {
         return false;
     }
     $grantorBalance = $this->balanceDao->findByUserId($grantorId);
     if (!$grantorBalance || $grantorBalance->balance < $amount) {
         return false;
     }
     $balance = $this->balanceDao->findByUserId($userId);
     if (!$balance) {
         $balance = new USERCREDITS_BOL_Balance();
         $balance->userId = $userId;
         $balance->balance = 0;
     }
     // increase balance
     $balance->balance = $balance->balance + $amount;
     $this->balanceDao->save($balance);
     //decrease grantor balance
     $grantorBalance->balance = $grantorBalance->balance - $amount;
     $this->balanceDao->save($grantorBalance);
     return true;
 }