public function getWithdraw($id) { $order = S('withdraw_order_' . $id); if (is_bool($order)) { $order = $this->where(array('id' => $id, 'status' => 1))->find(); if ($order) { $order['recharge_type'] = get_withdraw_type($order['field']); $order['pay_method'] = get_pay_method($order['method']); $order['score_type'] = D('Ucenter/Score')->getType(array('id' => $order['field'], 'status' => 1)); } S('withdraw_order_' . $id, $order, 60 * 5); } return $order; }
private function createWithdraw() { $loginUid = is_login(); $this->checkActionLimit('create_withdraw', 'RechargeWithdraw', 0, $loginUid); if (!$loginUid) { $this->error('请登陆后再操作'); } $aAmount = I('post.amount', 0, 'floatval'); $aMethod = I('post.method', '', 'op_t'); $aField = I('post.field', '', 'intval'); $aAccountInfo = I('post.account_info', '', 'op_t'); if (strlen($aAccountInfo) <= 0) { $this->error('请填写完整的收款信息。'); } $method = modC('WITHDRAW_METHOD', 'alipay', 'recharge'); if (!check_is_in_config($aMethod, $method)) { $this->error('不支持该支付方式,请尝试其他支付方式'); } $aAmount = number_format($aAmount, 2, ".", ""); $minAmount = modC('WITHDRAW_MIN_AMOUNT', 0, 'recharge'); if ($aAmount <= 0) { $this->error('提现金额不能小于等于0。'); } $canInput = modC('WITHDRAW_CAN_INPUT', 1, 'recharge'); if ($canInput && $aAmount < $minAmount && $minAmount != 0) { $this->error('最小提现金额不能小于' . $minAmount . '。'); } $type = get_withdraw_type($aField); $memberModel = D('Member'); $score = $memberModel->where(array('uid' => $loginUid))->getField('score' . $aField); $forzen_count = $type['UNIT'] * $aAmount; if ($score - $forzen_count < 0) { $this->error('余额不足,无法提现。提现需' . $forzen_count . ',账户余额' . $score); } $result = $memberModel->where(array('uid' => $loginUid))->setDec('score' . $aField, $forzen_count); clean_query_user_cache($loginUid, 'score' . $aField); if (!$result) { $this->error('冻结账户余额失败。'); } $data['field'] = $aField; $data['amount'] = $aAmount; $data['method'] = $aMethod; $data['uid'] = $loginUid; $data['account_info'] = $aAccountInfo; $data['frozen_amount'] = $forzen_count; $withdraw_id = D('Withdraw')->addWithdraw($data); return $withdraw_id; }