コード例 #1
0
 /**
  * @brief 冻结资金,在提现申请的时候,会冻结资金,如果用户取消,会取消冻结资金
  *
  * @return  public function 
  * @retval   
  * @see 
  * @note 
  * @author 吕宝贵
  * @date 2016/01/01 20:00:36
  **/
 public function freeze($withdrawId)
 {
     $withdraw = UserWithdraw::findOne($withdrawId);
     if (empty($withdraw)) {
         $this->addError('display-error', '提现申请记录不存在');
         return false;
     }
     //产生freeze记录
     $freeze = new Freeze();
     $freeze->source_id = $withdrawId;
     $freeze->uid = $withdraw->uid;
     $freeze->type = Freeze::FREEZE_TYPE_WITHDRAW;
     $freeze->status = Freeze::FREEZE_STATUS_FREEZING;
     $freeze->currency = 1;
     $freeze->money = $withdraw->money;
     $freeze->description = '提现';
     if ($freeze->save()) {
         $userAccount = $this->getUserAccount($withdraw->uid);
         if ($userAccount->freeze($withdraw->money)) {
             return true;
         } else {
             $this->addError('display-error', '冻结用户金额失败');
             return false;
         }
     } else {
         $this->addError('display-error', '冻结记录保存失败');
         return false;
     }
 }
コード例 #2
0
ファイル: BaseAccount.php プロジェクト: lubaogui/yii2-account
 /**
  * @brief 用户账户需要冻结$money的金额,UserAccount类中也应该有freeze方法
  *
  * @return  protected function 
  * @retval   
  * @author 吕宝贵
  * @date 2015/12/05 12:45:52
  **/
 public function freeze($uid, $money, $type, $sourceId, $description, $currency = 1)
 {
     //产生冻结记录
     $freeze = new Freeze();
     $freeze->uid = $uid;
     $freeze->type = $type;
     $freeze->money = $money;
     $freeze->currency = $currency;
     $freeze->source_id = $sourceId ? $sourceId : 0;
     $freeze->status = Freeze::FREEZE_STATUS_FREEZING;
     $freeze->description = $description;
     if ($freeze->save()) {
         //账户结算
         return $this->balance($uid, UserAccount::BALANCE_TYPE_FREEZE, $money, $freeze->id, $description, $currency);
     } else {
         $this->addErrors($freeze->getErrors);
         return false;
     }
 }