Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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;
 }