/** * @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; } }
/** * @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; } }