Esempio n. 1
0
 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;
     }
 }
Esempio n. 2
0
 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);
     }
 }