private function xhbuy_deal($id, $order_money) { $return_data = array(); $return_data['result'] = 'success'; $xh_info = M('xiaohao')->where('id=' . $id)->find(); if (empty($xh_info)) { $return_data['result'] = 'fail'; $return_data['comm'] = '选择的小号不存在,请联系网站客服'; $return_data['rtn_url'] = U('xh'); return $return_data; } $xiaohao_type = M('xiaohao_type')->where('id=' . $xh_info['type_id'])->find(); $type_config = json_decode($xiaohao_type['config'], true); $inprice = isset($type_config['in_price']) ? $type_config['in_price'] : 0; if ($xh_info['isused'] == 1) { $return_data['result'] = 'fail'; $return_data['comm'] = 'Sorry,该小号已经被其他用户购买,请选择其他小号后尽快购买!'; $return_data['rtn_url'] = U('xh'); return $return_data; } $order_nums = 1; $userid = session('userid'); $user_model = new Model('user'); $user = $user_model->where('id=' . $userid)->find(); $utype = 'a' . $user['user_type']; $uprice = isset($type_config['price'][$utype]) ? $type_config['price'][$utype] : 0; $money = $user['money']; if ($order_money < $uprice) { $return_data['result'] = 'fail'; $return_data['comm'] = '订单金额有误!'; $return_data['rtn_url'] = U('xh'); return $return_data; } if ($money < $order_money) { $return_data['result'] = 'fail'; $return_data['comm'] = '你的账户可用金额不足,请先充值!'; $return_data['rtn_url'] = U('Cash/recharge'); return $return_data; } $xh_data = array(); $xh_data['isused'] = 1; $xh_data['id'] = $id; M('xiaohao')->data($xh_data)->save(); $user_model->startTrans(); $userdata['id'] = $userid; $userdata['money'] = $user['money'] - $order_money; $userdata['used_money'] = $user['used_money'] + $order_money; if (false !== $user_model->data($userdata)->save()) { $order_no = $this->create_orderno('XHBuy'); $reason = '(购买小号) 订单号 ' . $order_no; $account_log = array(); $account_log['user_id'] = $userid; $account_log['stage'] = 'buy'; $account_log['money'] = 0 - $order_money; $account_log['comm'] = $reason; $account_log['addtime'] = $this->getDate(); $account_log['remain_money'] = $userdata['money']; $account_log['remain_refer_money'] = $user['refer_money']; $account_log['order_no'] = $order_no; $account_log_model = new Model('account_log'); $return_1 = D('account_log')->data($account_log)->add(); $paydata = array(); $paydata['user_id'] = $userid; $paydata['user_type'] = $user['user_type']; $paydata['pay_money'] = $order_money; $paydata['order_no'] = $order_no; $paydata['type'] = 0; $paydata['comm'] = '购买小号订单'; $paydata['status'] = 1; $paydata['addtime'] = $this->getDate(); $return_2 = M('pay_order')->data($paydata)->add(); if ($return_1 && $return_2) { $i = 0; $order_time = $this->getDate(); $result = true; $xiaohao_data = array(); $xiaohao_data['id'] = $xh_info['id']; $xiaohao_data['isused'] = 1; $xiaohao_data['order_type'] = 0; $xiaohao_data['order_no'] = $order_no; $return_3 = D('xiaohao')->data($xiaohao_data)->save(); if (!$return_3) { $result = false; } if (!$result) { $user_model->rollback(); $xh_data = array(); $xh_data['isused'] = 0; $xh_data['id'] = $id; M('xiaohao')->data($xh_data)->save(); $return_data['result'] = 'fail'; $return_data['comm'] = '购买失败1'; $return_data['rtn_url'] = U('xh'); return $return_data; } $xiaohao_order_data = array(); $xiaohao_order_data['user_id'] = $userid; $xiaohao_order_data['type_id'] = $xh_info['type_id']; $xiaohao_order_data['order_no'] = $order_no; $xiaohao_order_data['order_time'] = $order_time; $xiaohao_order_data['order_status'] = 1; $xiaohao_order_data['order_money'] = $uprice; $xiaohao_order_data['in_price'] = $inprice; $xiaohao_order_data['user_type'] = $user['user_type']; $xiaohao_order_data['note_no'] = $xh_info['note_no']; if ($xh_info['encry_key'] != '') { $xiaohao_order_data['note_no'] = encrypt($xh_info['note_no'], 'D', $xh_info['encry_key']); } $result_4 = D('xiaohao_order')->data($xiaohao_order_data)->add(); if (!$result_4) { $user_model->rollback(); $xh_data = array(); $xh_data['isused'] = 0; $xh_data['id'] = $id; M('xiaohao')->data($xh_data)->save(); $return_data['result'] = 'fail'; $return_data['comm'] = '购买失败2'; $return_data['rtn_url'] = U('xh'); return $return_data; } $refer_users = calc_commission($userid, 1, 3, $xh_info['type_id']); $add_result = true; if (!empty($refer_users)) { $add_result = addrefer_money($refer_users, 1, $order_nums, 3, $order_no); } if (!$add_result) { $user_model->rollback(); $xh_data = array(); $xh_data['isused'] = 0; $xh_data['id'] = $id; M('xiaohao')->data($xh_data)->save(); $return_data['result'] = 'fail'; $return_data['comm'] = '购买失败3'; $return_data['rtn_url'] = U('xh'); return $return_data; } $user_model->commit(); $return_data['comm'] = '购买成功'; $return_data['rtn_url'] = U('xh'); return $return_data; } else { $user_model->rollback(); $xh_data = array(); $xh_data['isused'] = 0; $xh_data['id'] = $id; M('xiaohao')->data($xh_data)->save(); $return_data['result'] = 'fail'; $return_data['comm'] = '购买失败4'; $return_data['rtn_url'] = U('xh'); return $return_data; } } else { $user_model->rollback(); $xh_data = array(); $xh_data['isused'] = 0; $xh_data['id'] = $id; M('xiaohao')->data($xh_data)->save(); $return_data['result'] = 'fail'; $return_data['comm'] = '购买失败5'; $return_data['rtn_url'] = U('xh'); return $return_data; } }
public function deal_uplevel() { if (!IS_AJAX) { $this->message2('无效请求!', __APP__ . '/Index'); } $userid = session('userid'); $level_id = I('id', NULL); if (empty($level_id)) { $this->ajaxReturn('', '升级失败1', 0); } $level_list = M('user_level')->order('sort_order asc')->select(); $level_array = array(); foreach ($level_list as $k => $v) { $level_array[$v['id']] = $v['title']; } $user_level = M('user_level')->where('id=' . $level_id)->find(); if (empty($user_level)) { $this->ajaxReturn('', '升级失败2', 0); } $level_config = json_decode($user_level['config'], true); $up_money = $level_config['money']; if ($up_money <= 0) { $this->ajaxReturn('', '无升级费用', 0); } $user_model = new Model('user'); $user = $user_model->where('id=' . $userid)->find(); if (empty($user)) { $this->ajaxReturn('', '获取人员信息出错,或者尚未登录!', 0); } $current_type = $user['user_type']; if ($current_type == $level_id) { $this->ajaxReturn('', '你目前已经是' . $level_array[$current_type] . ',无需升级!', 0); } $money = $user['money']; if ($money < $up_money) { $this->ajaxReturn('', '您的账户可用余额不足!请先充值或者使用可用佣金转换成账户余额!', 0); } $userdata['id'] = $userid; $userdata['money'] = $user['money'] - $up_money; $userdata['used_money'] = $user['used_money'] + $up_money; $userdata['user_type'] = $level_id; $user_model->startTrans(); $result = $user_model->data($userdata)->save(); if ($result) { $reason = '(会员升级) 会员由 ' . $level_array[$current_type] . '升级为:' . $level_array[$level_id]; $account_log = array(); $account_log['user_id'] = $userid; $account_log['stage'] = 'upgrade'; $account_log['money'] = 0 - $up_money; $account_log['comm'] = $reason; $account_log['addtime'] = $this->getDate(); $account_log['remain_money'] = $userdata['money']; $account_log['remain_refer_money'] = $user['refer_money']; $account_log_model = new Model('account_log'); $return_1 = D('account_log')->data($account_log)->add(); if ($return_1) { $refer_users = calc_commission($userid, 2); $add_result = true; if (!empty($refer_users)) { $add_result = addrefer_money($refer_users, 2, 1, 1, $userid); } if (!$add_result) { $user_model->rollback(); $this->ajaxReturn('', '升级失败-l!', 0); } $user_model->commit(); $this->ajaxReturn('', '升级成功', 1); } else { $this->ajaxReturn('', '升级失败 -A', 0); } } else { $user_model->rollback(); $this->ajaxReturn('', '升级失败 -U', 0); } }