Exemplo n.º 1
0
 public function count_buy_total()
 {
     require_once APP_ROOT_PATH . "system/libs/cart.php";
     $region_id = intval($_REQUEST['region_id']);
     //配送地区
     $delivery_id = intval($_REQUEST['delivery_id']);
     //配送方式
     $account_money = floatval($_REQUEST['account_money']);
     //余额
     $ecvsn = $_REQUEST['ecvsn'] ? addslashes(trim($_REQUEST['ecvsn'])) : '';
     $ecvpassword = $_REQUEST['ecvpassword'] ? addslashes(trim($_REQUEST['ecvpassword'])) : '';
     $payment = intval($_REQUEST['payment']);
     $all_account_money = intval($_REQUEST['all_account_money']);
     $bank_id = addslashes(trim($_REQUEST['bank_id']));
     $user_id = intval($GLOBALS['user_info']['id']);
     $session_id = es_session::id();
     $goods_list = $GLOBALS['db']->getAll("select * from " . DB_PREFIX . "deal_cart where session_id='" . $session_id . "' and user_id=" . $user_id);
     $result = count_buy_total($region_id, $delivery_id, $payment, $account_money, $all_account_money, $ecvsn, $ecvpassword, $goods_list, 0, 0, $bank_id);
     $GLOBALS['tmpl']->assign("result", $result);
     $html = $GLOBALS['tmpl']->fetch("inc/inc_cart_total.html");
     $data = $result;
     $data['html'] = $html;
     ajax_return($data);
 }
Exemplo n.º 2
0
 public function done()
 {
     require_once APP_ROOT_PATH . "system/model/cart.php";
     require_once APP_ROOT_PATH . "system/model/deal.php";
     require_once APP_ROOT_PATH . "system/model/deal_order.php";
     global_run();
     $ajax = 1;
     $region4_id = intval($_REQUEST['region_lv4']);
     $region3_id = intval($_REQUEST['region_lv3']);
     $region2_id = intval($_REQUEST['region_lv2']);
     $region1_id = intval($_REQUEST['region_lv1']);
     if ($region4_id == 0) {
         if ($region3_id == 0) {
             if ($region2_id == 0) {
                 $region_id = $region1_id;
             } else {
                 $region_id = $region2_id;
             }
         } else {
             $region_id = $region3_id;
         }
     } else {
         $region_id = $region4_id;
     }
     $delivery_id = intval($_REQUEST['delivery']);
     $payment = intval($_REQUEST['payment']);
     $account_money = floatval($_REQUEST['account_money']);
     $all_account_money = intval($_REQUEST['all_account_money']);
     $ecvsn = $_REQUEST['ecvsn'] ? strim($_REQUEST['ecvsn']) : '';
     $ecvpassword = $_REQUEST['ecvpassword'] ? strim($_REQUEST['ecvpassword']) : '';
     $user_id = intval($GLOBALS['user_info']['id']);
     $session_id = es_session::id();
     $cart_result = load_cart_list();
     $goods_list = $cart_result['cart_list'];
     if (!$goods_list) {
         showErr($GLOBALS['lang']['CART_EMPTY_TIP'], $ajax);
     }
     //验证购物车
     if (check_save_login() != LOGIN_STATUS_LOGINED) {
         showErr($GLOBALS['lang']['PLEASE_LOGIN_FIRST'], $ajax, url("index", "user#login"));
     }
     $deal_ids = array();
     foreach ($goods_list as $k => $v) {
         $data = check_cart($v['id'], $v['number']);
         if (!$data['status']) {
             showErr($data['info'], $ajax, url("index", "cart#index"));
         }
         $deal_ids[$v['deal_id']]['deal_id'] = $v['deal_id'];
     }
     foreach ($deal_ids as $row) {
         //验证支付方式的支持
         if ($GLOBALS['db']->getOne("select define_payment from " . DB_PREFIX . "deal where id = " . $row['deal_id']) == 1) {
             if ($GLOBALS['db']->getOne("select count(*) from " . DB_PREFIX . "deal_payment where deal_id = " . $row['deal_id'] . " and payment_id = " . $payment)) {
                 showErr($GLOBALS['lang']['INVALID_PAYMENT'], $ajax, url("index", "cart#index"));
             }
         }
     }
     //结束验证购物车
     //开始验证订单接交信息
     $data = count_buy_total($region_id, $delivery_id, $payment, $account_money, $all_account_money, $ecvsn, $ecvpassword, $goods_list);
     if ($data['is_delivery'] == 1) {
         //配送验证
         if (!$data['region_info'] || $data['region_info']['region_level'] != 4) {
             showErr($GLOBALS['lang']['FILL_CORRECT_CONSIGNEE_ADDRESS'], $ajax);
         }
         if (trim($_REQUEST['consignee']) == '') {
             showErr($GLOBALS['lang']['FILL_CORRECT_CONSIGNEE'], $ajax);
         }
         if (trim($_REQUEST['address']) == '') {
             showErr($GLOBALS['lang']['FILL_CORRECT_ADDRESS'], $ajax);
         }
         if (trim($_REQUEST['zip']) == '') {
             showErr($GLOBALS['lang']['FILL_CORRECT_ZIP'], $ajax);
         }
         if (trim($_REQUEST['mobile']) == '') {
             showErr($GLOBALS['lang']['FILL_MOBILE_PHONE'], $ajax);
         }
         if (!check_mobile(trim($_REQUEST['mobile']))) {
             showErr($GLOBALS['lang']['FILL_CORRECT_MOBILE_PHONE'], $ajax);
         }
         if (!$data['delivery_info']) {
             showErr($GLOBALS['lang']['PLEASE_SELECT_DELIVERY'], $ajax);
         }
     }
     if (round($data['pay_price'], 4) > 0 && !$data['payment_info']) {
         showErr($GLOBALS['lang']['PLEASE_SELECT_PAYMENT'], $ajax);
     }
     //结束验证订单接交信息
     //开始生成订单
     $now = NOW_TIME;
     $order['type'] = 0;
     //普通订单
     $order['user_id'] = $user_id;
     $order['create_time'] = $now;
     $order['total_price'] = $data['pay_total_price'];
     //应付总额  商品价 - 会员折扣 + 运费 + 支付手续费
     $order['pay_amount'] = 0;
     $order['pay_status'] = 0;
     //新单都为零, 等下面的流程同步订单状态
     $order['delivery_status'] = $data['is_delivery'] == 0 ? 5 : 0;
     $order['order_status'] = 0;
     //新单都为零, 等下面的流程同步订单状态
     $order['return_total_score'] = $data['return_total_score'];
     //结单后送的积分
     $order['return_total_money'] = $data['return_total_money'];
     //结单后送的现金
     $order['memo'] = strim($_REQUEST['memo']);
     $order['region_lv1'] = intval($_REQUEST['region_lv1']);
     $order['region_lv2'] = intval($_REQUEST['region_lv2']);
     $order['region_lv3'] = intval($_REQUEST['region_lv3']);
     $order['region_lv4'] = intval($_REQUEST['region_lv4']);
     $order['address'] = strim($_REQUEST['address']);
     $order['mobile'] = strim($_REQUEST['mobile']);
     $order['consignee'] = strim($_REQUEST['consignee']);
     $order['zip'] = strim($_REQUEST['zip']);
     $order['deal_total_price'] = $data['total_price'];
     //团购商品总价
     $order['discount_price'] = $data['user_discount'];
     $order['delivery_fee'] = $data['delivery_fee'];
     $order['ecv_money'] = 0;
     $order['account_money'] = 0;
     $order['ecv_sn'] = '';
     $order['delivery_id'] = $data['delivery_info']['id'];
     $order['payment_id'] = $data['payment_info']['id'];
     $order['payment_fee'] = $data['payment_fee'];
     $order['payment_fee'] = $data['payment_fee'];
     $order['bank_id'] = strim($_REQUEST['bank_id']);
     foreach ($data['promote_description'] as $promote_item) {
         $order['promote_description'] .= $promote_item . "<br />";
     }
     //更新来路
     $order['referer'] = $GLOBALS['referer'];
     $user_info = es_session::get("user_info");
     $order['user_name'] = $user_info['user_name'];
     /** 更新会员手机号
     		$coupon_mobile = htmlspecialchars(addslashes(trim($_REQUEST['coupon_mobile'])));
     		if($coupon_mobile!='')
     			$GLOBALS['db']->query("update ".DB_PREFIX."user set mobile = '".$coupon_mobile."' where id = ".intval($user_info['id']));
     		*/
     if ($user_info['mobile'] == "") {
         $user_mobile = strim($_REQUEST['user_mobile']);
         if ($user_mobile == "") {
             $data = array();
             $data['status'] = false;
             $data['info'] = "请输入手机号";
             $data['jump'] = "";
             ajax_return($data);
         }
         if (!check_mobile($user_mobile)) {
             $data = array();
             $data['status'] = false;
             $data['info'] = "手机号格式不正确";
             $data['jump'] = "";
             ajax_return($data);
         }
         if (app_conf("SMS_ON") == 1) {
             $mobile_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "sms_mobile_verify where mobile_phone = '" . $user_mobile . "'");
             $sms_verify = strim($_POST['sms_verify']);
             if (empty($mobile_data) || $mobile_data['code'] != $sms_verify) {
                 $data = array();
                 $data['status'] = false;
                 $data['info'] = "手机验证码错误";
                 $data['jump'] = "";
                 ajax_return($data);
             }
         }
         $GLOBALS['db']->query("update " . DB_PREFIX . "user set mobile = '" . $user_mobile . "' where id = " . $user_info['id'], "SILENT");
         if ($GLOBALS['db']->affected_rows() > 0) {
             $GLOBALS['db']->query("delete from " . DB_PREFIX . "sms_mobile_verify where mobile_phone = '" . $user_mobile . "'");
             //删除验证码
         } else {
             $data = array();
             $data['status'] = false;
             $data['info'] = "手机号已被注册";
             $data['jump'] = "";
             ajax_return($data);
         }
     }
     do {
         $order['order_sn'] = to_date(NOW_TIME, "Ymdhis") . rand(10, 99);
         $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_order", $order, 'INSERT', '', 'SILENT');
         $order_id = intval($GLOBALS['db']->insert_id());
     } while ($order_id == 0);
     //生成订单商品
     foreach ($goods_list as $k => $v) {
         $deal_info = load_auto_cache("deal", array("id" => $v['deal_id']));
         $goods_item = array();
         $goods_item['deal_id'] = $v['deal_id'];
         $goods_item['number'] = $v['number'];
         $goods_item['unit_price'] = $v['unit_price'];
         $goods_item['total_price'] = $v['total_price'];
         $goods_item['name'] = $v['name'];
         $goods_item['sub_name'] = $v['sub_name'];
         $goods_item['attr'] = $v['attr'];
         $goods_item['verify_code'] = $v['verify_code'];
         $goods_item['order_id'] = $order_id;
         $goods_item['return_score'] = $v['return_score'];
         $goods_item['return_total_score'] = $v['return_total_score'];
         $goods_item['return_money'] = $v['return_money'];
         $goods_item['return_total_money'] = $v['return_total_money'];
         $goods_item['buy_type'] = $v['buy_type'];
         $goods_item['attr_str'] = $v['attr_str'];
         $goods_item['add_balance_price'] = $v['add_balance_price'];
         $goods_item['add_balance_price_total'] = $v['add_balance_price'] * $v['number'];
         $goods_item['balance_unit_price'] = $deal_info['balance_price'];
         $goods_item['balance_total_price'] = $deal_info['balance_price'] * $v['number'];
         $goods_item['delivery_status'] = $deal_info['is_delivery'] == 1 ? 0 : 5;
         $goods_item['is_coupon'] = $deal_info['is_coupon'];
         $goods_item['deal_icon'] = $deal_info['icon'];
         $goods_item['supplier_id'] = $deal_info['supplier_id'];
         $goods_item['is_refund'] = $deal_info['is_refund'];
         $goods_item['user_id'] = $user_id;
         $goods_item['order_sn'] = $order['order_sn'];
         $goods_item['is_shop'] = $deal_info['is_shop'];
         $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_order_item", $goods_item, 'INSERT', '', 'SILENT');
     }
     //开始更新订单表的deal_ids
     $deal_ids = $GLOBALS['db']->getOne("select group_concat(deal_id) from " . DB_PREFIX . "deal_order_item where order_id = " . $order_id);
     $GLOBALS['db']->query("update " . DB_PREFIX . "deal_order set deal_ids = '" . $deal_ids . "' where id = " . $order_id);
     $GLOBALS['db']->query("delete from " . DB_PREFIX . "deal_cart where session_id = '" . $session_id . "'");
     load_cart_list(true);
     if ($data['is_delivery'] == 1) {
         //保存收款人
         $consignee_id = intval($_REQUEST['consignee_id']);
         $user_consignee = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_consignee where user_id = " . $order['user_id'] . " and id = " . $consignee_id);
         $user_consignee['region_lv1'] = intval($_REQUEST['region_lv1']);
         $user_consignee['region_lv2'] = intval($_REQUEST['region_lv2']);
         $user_consignee['region_lv3'] = intval($_REQUEST['region_lv3']);
         $user_consignee['region_lv4'] = intval($_REQUEST['region_lv4']);
         $user_consignee['address'] = strim($_REQUEST['address']);
         $user_consignee['mobile'] = strim($_REQUEST['mobile']);
         $user_consignee['consignee'] = strim($_REQUEST['consignee']);
         $user_consignee['zip'] = strim($_REQUEST['zip']);
         $user_consignee['user_id'] = $order['user_id'];
         if (intval($user_consignee['id']) == 0) {
             //新增
             $user_consignee['is_default'] = 1;
             $GLOBALS['db']->autoExecute(DB_PREFIX . "user_consignee", $user_consignee, 'INSERT', '', 'SILENT');
         } else {
             //更新
             $GLOBALS['db']->autoExecute(DB_PREFIX . "user_consignee", $user_consignee, 'UPDATE', 'id=' . $user_consignee['id'], 'SILENT');
             rm_auto_cache("consignee_info", array("consignee_id" => intval($user_consignee['id'])));
         }
     }
     //生成order_id 后
     //1. 代金券支付
     $ecv_data = $data['ecv_data'];
     if ($ecv_data) {
         $ecv_payment_id = $GLOBALS['db']->getOne("select id from " . DB_PREFIX . "payment where class_name = 'Voucher'");
         if ($ecv_data['money'] > $order['total_price']) {
             $ecv_data['money'] = $order['total_price'];
         }
         $payment_notice_id = make_payment_notice($ecv_data['money'], $order_id, $ecv_payment_id);
         require_once APP_ROOT_PATH . "system/payment/Voucher_payment.php";
         $voucher_payment = new Voucher_payment();
         $voucher_payment->direct_pay($ecv_data['sn'], $ecv_data['password'], $payment_notice_id);
     }
     //2. 余额支付
     $account_money = $data['account_money'];
     if (floatval($account_money) > 0) {
         $account_payment_id = $GLOBALS['db']->getOne("select id from " . DB_PREFIX . "payment where class_name = 'Account'");
         $payment_notice_id = make_payment_notice($account_money, $order_id, $account_payment_id);
         require_once APP_ROOT_PATH . "system/payment/Account_payment.php";
         $account_payment = new Account_payment();
         $account_payment->get_payment_code($payment_notice_id);
     }
     //3. 相应的支付接口
     $payment_info = $data['payment_info'];
     if ($payment_info && $data['pay_price'] > 0) {
         $payment_notice_id = make_payment_notice($data['pay_price'], $order_id, $payment_info['id']);
         //创建支付接口的付款单
     }
     $rs = order_paid($order_id);
     update_order_cache($order_id);
     if ($rs) {
         $data = array();
         $data['info'] = "";
         $data['jump'] = url("index", "payment#done", array("id" => $order_id));
         ajax_return($data);
         //支付成功
     } else {
         distribute_order($order_id);
         $data = array();
         $data['info'] = "";
         $data['jump'] = url("index", "payment#pay", array("id" => $payment_notice_id));
         ajax_return($data);
     }
 }
Exemplo n.º 3
0
 public function index()
 {
     //检查用户,用户密码
     $user = $GLOBALS['user_info'];
     $user_id = intval($user['id']);
     $money = floatval($user['money']);
     $root = array();
     $root['return'] = 1;
     if ($user_id > 0) {
         $root['user_login_status'] = 1;
         //已登录
         $region4_id = intval($GLOBALS['request']['region_lv4']);
         $region3_id = intval($GLOBALS['request']['region_lv3']);
         $region2_id = intval($GLOBALS['request']['region_lv2']);
         $region1_id = intval($GLOBALS['request']['region_lv1']);
         if ($region4_id == 0) {
             if ($region3_id == 0) {
                 if ($region2_id == 0) {
                     $region_id = $region1_id;
                 } else {
                     $region_id = $region2_id;
                 }
             } else {
                 $region_id = $region3_id;
             }
         } else {
             $region_id = $region4_id;
         }
         $payment = $GLOBALS['request']['payment_id'] ? intval($GLOBALS['request']['payment_id']) : 17;
         $account_money = floatval($GLOBALS['request']['use_user_money']);
         $address = strim($GLOBALS['request']['delivery_detail']);
         $consignee_mobile = strim($GLOBALS['request']['phone']);
         $zip = strim($GLOBALS['request']['postcode']);
         $consignee = strim($GLOBALS['request']['consignee']);
         $ecvsn = $GLOBALS['request']['ecv_sn'] ? strim($GLOBALS['request']['ecv_sn']) : '';
         $ecvpassword = $GLOBALS['request']['ecv_pwd'] ? strim($GLOBALS['request']['ecv_pwd']) : '';
         $order_memo = strim($GLOBALS['request']['content']);
         $send_mobile = strim($GLOBALS['request']['send_mobile']);
         $delivery_id = intval($GLOBALS['request']['delivery_id']);
         $order_time = $GLOBALS['request']['order_time'];
         $technician_id = $GLOBALS['request']['tech_id'];
         if (empty($order_time)) {
             $root['status'] = 0;
             $root['info'] = '请选择预约时间';
             output($root);
         }
         $order_time .= ':00';
         $order_time = strtotime($order_time);
         //$delivery_id = intval($GLOBALS['m_config']['delivery_id']);
         $coupon_mobile = htmlspecialchars($send_mobile);
         if ($coupon_mobile != '') {
             $i = intval($GLOBALS['db']->getOne("select count(*) from " . DB_PREFIX . "user where mobile = '" . $coupon_mobile . "' and id != " . intval($user_id)));
             if ($i > 0) {
                 $root['status'] = 0;
                 $root['info'] = '该手机号码,已经被占用';
                 output($root);
             }
         }
         $account_pay = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "payment where class_name = 'Account'");
         if ($account_pay) {
             $all_account_money = 1;
         } else {
             $all_account_money = 0;
         }
         if ($GLOBALS['request']['from'] == "wap") {
             $cartdata = unserialize(base64_decode($GLOBALS['request']['cartdata']));
             $res = insertCartData($user_id, es_session::id(), $cartdata);
         } else {
             $cartdata = $GLOBALS['request']['cartdata'];
             $res = insertCartData($user_id, es_session::id(), $cartdata);
         }
         if ($res['info'] != '') {
             //失败有错误
             $root['status'] = 0;
             $root['info'] = $res['info'];
             output($root);
         } else {
             //可以提交订单
             $goods_list = $res['data'];
             require_once APP_ROOT_PATH . "system/model/cart.php";
             $GLOBALS['user_info']['id'] = $user_id;
             $ids = array();
             foreach ($goods_list as $cart_goods) {
                 array_push($ids, $cart_goods['deal_id']);
             }
             $ids_str = implode(",", $ids);
             $is_delivery = intval($GLOBALS['db']->getOne("select is_delivery from " . DB_PREFIX . "deal where is_delivery = 1 and id in (" . $ids_str . ")"));
             if ($is_delivery == 0) {
                 $delivery_id = 0;
             }
             $data = count_buy_total($region_id, $delivery_id, $payment, $account_money, $all_account_money, $ecvsn, $ecvpassword, $goods_list);
             if ($data['is_delivery'] == 1) {
                 //配送验证
                 if (!$data['region_info'] || $data['region_info']['region_level'] != 4) {
                     $root['info'] = $GLOBALS['lang']['FILL_CORRECT_CONSIGNEE_ADDRESS'];
                     $root['status'] = 0;
                     output($root);
                 } elseif ($consignee == '') {
                     $root['info'] = $GLOBALS['lang']['FILL_CORRECT_CONSIGNEE'];
                     $root['status'] = 0;
                     output($root);
                 } elseif ($address == '') {
                     $root['info'] = $GLOBALS['lang']['FILL_CORRECT_ADDRESS'];
                     $root['status'] = 0;
                     output($root);
                 } elseif ($consignee_mobile == '') {
                     $root['info'] = $GLOBALS['lang']['FILL_MOBILE_PHONE'];
                     $root['status'] = 0;
                     output($root);
                 } elseif (!check_mobile(trim($consignee_mobile))) {
                     $root['info'] = $GLOBALS['lang']['FILL_CORRECT_MOBILE_PHONE'];
                     $root['status'] = 0;
                     output($root);
                 } elseif (!$data['delivery_info']) {
                     $root['info'] = $GLOBALS['lang']['PLEASE_SELECT_DELIVERY'];
                     $root['status'] = 0;
                     output($root);
                 }
             }
             if (round($data['pay_price'], 4) > 0 && !$data['payment_info']) {
                 $root['info'] = $GLOBALS['lang']['PLEASE_SELECT_PAYMENT'];
                 $root['status'] = 0;
                 output($root);
             } else {
                 //获取服务时间
                 foreach ($goods_list as $k => $v) {
                     $order['service_time'] = $v['service_time'];
                 }
                 //技师直约判断当前时间是否可约
                 if ($technician_id) {
                     $tech = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id=" . $technician_id);
                     $start_time = $order_time - $tech['distance_time'] * 60;
                     $end_time = $order_time + $tech['distance_time'] * 60 + $order['service_time'] * 60;
                     $order_able_sql = "SELECT \n                                                                * \n                                                              FROM\n                                                                " . DB_PREFIX . "deal_order DO \n                                                              WHERE  do.technician_id={$technician_id} \n                                                                  and order_status = 0 and is_delete = 0 and extra_status = 0 and after_sale = 0 and refund_status = 0 and  (\n                                                                  do.`order_time` + do.`service_time` * 60 BETWEEN " . $start_time . " \n                                                                  AND " . $end_time . " \n                                                                ) \n                                                                OR (\n                                                                  do.`order_time` BETWEEN " . $start_time . " \n                                                                  AND " . $end_time . "\n                                                                )";
                     $order_able = $GLOBALS['db']->getRow($order_able_sql);
                     if (!empty($order_able)) {
                         $root['info'] = "当前时间已被预约,请重新选择时间";
                         $root['status'] = 0;
                         output($root);
                     }
                 }
                 //验证成功
                 //开始生成订单
                 $now = time();
                 $order['type'] = 0;
                 //普通订单
                 $order['user_id'] = $user_id;
                 $order['user_name'] = $user['user_name'];
                 $order['create_time'] = $now;
                 $order['total_price'] = $data['pay_total_price'];
                 //应付总额  商品价 - 会员折扣 + 运费 + 支付手续费
                 $order['pay_amount'] = 0;
                 $order['pay_status'] = 0;
                 //新单都为零, 等下面的流程同步订单状态
                 $order['delivery_status'] = $data['is_delivery'] == 0 ? 5 : 0;
                 $order['order_status'] = 0;
                 //新单都为零, 等下面的流程同步订单状态
                 $order['return_total_score'] = $data['return_total_score'];
                 //结单后送的积分
                 $order['return_total_money'] = $data['return_total_money'];
                 //结单后送的现金
                 $order['memo'] = htmlspecialchars($order_memo);
                 $order['region_lv1'] = $region1_id;
                 $order['region_lv2'] = $region2_id;
                 $order['region_lv3'] = $region3_id;
                 $order['region_lv4'] = $region4_id;
                 $order['address'] = htmlspecialchars($address);
                 $order['mobile'] = htmlspecialchars($consignee_mobile);
                 $order['consignee'] = htmlspecialchars($consignee);
                 $order['zip'] = htmlspecialchars($zip);
                 $order['deal_total_price'] = $data['total_price'];
                 //团购商品总价
                 $order['discount_price'] = $data['user_discount'];
                 $order['delivery_fee'] = $data['delivery_fee'];
                 $order['ecv_money'] = 0;
                 $order['account_money'] = 0;
                 $order['ecv_sn'] = '';
                 $order['delivery_id'] = $data['delivery_info']['id'];
                 $order['payment_id'] = $data['payment_info']['id'];
                 $order['payment_fee'] = $data['payment_fee'];
                 $order['bank_id'] = 0;
                 $order['order_time'] = $order_time;
                 $order['technician_id'] = $technician_id == '' ? 0 : $technician_id;
                 $order['order_end_time'] = $order_time + $order['service_time'] * 60;
                 //if($send_mobile!='')
                 //	$GLOBALS['db']->query("update ".DB_PREFIX."user set mobile = '".$send_mobile."' where id = ".$user_id);
                 do {
                     $order['order_sn'] = to_date(get_gmtime(), "Ymdhis") . rand(10, 99);
                     $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_order", $order, 'INSERT', '', 'SILENT');
                     $order_id = intval($GLOBALS['db']->insert_id());
                 } while ($order_id == 0);
                 //end 验证成功提交订单成功
                 //开始生成订单产品以及支付
                 //生成订单商品
                 foreach ($goods_list as $k => $v) {
                     $goods_item = array();
                     $goods_item['deal_id'] = $v['deal_id'];
                     $goods_item['number'] = $v['number'];
                     $goods_item['unit_price'] = $v['unit_price'];
                     $goods_item['total_price'] = $v['total_price'];
                     $goods_item['name'] = addslashes($v['name']);
                     $goods_item['sub_name'] = addslashes($v['sub_name']);
                     $goods_item['attr'] = $v['attr'];
                     $goods_item['verify_code'] = $v['verify_code'];
                     $goods_item['order_id'] = $order_id;
                     $goods_item['return_score'] = $v['return_score'];
                     $goods_item['return_total_score'] = $v['return_total_score'];
                     $goods_item['return_money'] = $v['return_money'];
                     $goods_item['return_total_money'] = $v['return_total_money'];
                     $goods_item['buy_type'] = $v['buy_type'];
                     $goods_item['attr_str'] = $v['attr_str'];
                     $goods_item['deal_icon'] = $v['icon'];
                     $goods_item['service_time'] = $v['service_time'];
                     $deal_info = load_auto_cache("cache_deal_cart", array("id" => $v['deal_id']));
                     $goods_item['balance_unit_price'] = $deal_info['balance_price'];
                     $goods_item['balance_total_price'] = $deal_info['balance_price'] * $v['number'];
                     $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_order_item", $goods_item, 'INSERT', '', 'SILENT');
                 }
                 //开始更新订单表的deal_ids
                 $deal_ids = $GLOBALS['db']->getOne("select group_concat(deal_id) from " . DB_PREFIX . "deal_order_item where order_id = " . $order_id);
                 $GLOBALS['db']->query("update " . DB_PREFIX . "deal_order set deal_ids = '" . $deal_ids . "' where id = " . $order_id);
                 if ($data['is_delivery'] == 1) {
                     //保存收款人
                     $user_consignee = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_consignee where user_id = " . $user_id . " order by id desc");
                     $user_consignee['region_lv1'] = $region1_id;
                     $user_consignee['region_lv2'] = $region2_id;
                     $user_consignee['region_lv3'] = $region3_id;
                     $user_consignee['region_lv4'] = $region4_id;
                     $user_consignee['address'] = htmlspecialchars($address);
                     $user_consignee['mobile'] = htmlspecialchars($consignee_mobile);
                     $user_consignee['consignee'] = htmlspecialchars($consignee);
                     $user_consignee['zip'] = htmlspecialchars($zip);
                     $user_consignee['user_id'] = $user_id;
                     if (intval($user_consignee['id']) == 0) {
                         //新增
                         $GLOBALS['db']->autoExecute(DB_PREFIX . "user_consignee", $user_consignee, 'INSERT', '', 'SILENT');
                     } else {
                         //更新
                         $GLOBALS['db']->autoExecute(DB_PREFIX . "user_consignee", $user_consignee, 'UPDATE', 'id=' . $user_consignee['id'], 'SILENT');
                         rm_auto_cache("consignee_info", array("consignee_id" => intval($user_consignee['id'])));
                     }
                 }
                 //生成order_id 后
                 //1. 代金券支付
                 $ecv_data = $data['ecv_data'];
                 if ($ecv_data) {
                     $ecv_payment_id = $GLOBALS['db']->getOne("select id from " . DB_PREFIX . "payment where class_name = 'Voucher'");
                     $payment_notice_id = make_payment_notice($ecv_data['money'], $order_id, $ecv_payment_id);
                     require_once APP_ROOT_PATH . "system/payment/Voucher_payment.php";
                     $voucher_payment = new Voucher_payment();
                     $voucher_payment->direct_pay($ecv_data['sn'], $ecv_data['password'], $payment_notice_id);
                 }
                 //2. 余额支付
                 $account_money = $data['account_money'];
                 if (floatval($account_money) > 0) {
                     $GLOBALS['payment_lang'] = array('name' => '余额支付', 'account_credit' => '帐户余额', 'use_user_money' => '使用余额支付', 'use_all_money' => '全额支付', 'USER_ORDER_PAID' => '%s订单付款,付款单号%s');
                     $account_payment_id = $GLOBALS['db']->getOne("select id from " . DB_PREFIX . "payment where class_name = 'Account'");
                     $payment_notice_id = make_payment_notice($account_money, $order_id, $account_payment_id);
                     require_once APP_ROOT_PATH . "system/payment/Account_payment.php";
                     $account_payment = new Account_payment();
                     $account_payment->get_payment_code($payment_notice_id);
                 }
                 $root['order_id'] = $order_id;
                 $rs = order_paid($order_id);
                 update_order_cache($order_id);
                 if ($rs) {
                     $root['pay_status'] = 1;
                 } else {
                     $root['pay_status'] = 0;
                 }
                 //end 订单产品生成及支付
                 $root['status'] = 1;
             }
             //end 提交订单
         }
     } else {
         $root['user_login_status'] = 0;
         $root['status'] = 0;
         $root['info'] = '请先登录';
         //未登录
     }
     output($root);
 }
Exemplo n.º 4
0
 /**
  * 计算购物车总价
  */
 public function count_buy_total()
 {
     global_run();
     require_once APP_ROOT_PATH . "system/model/cart.php";
     $region_id = intval($_REQUEST['region_id']);
     //配送地区
     $delivery_id = intval($_REQUEST['delivery_id']);
     //配送方式
     $account_money = floatval($_REQUEST['account_money']);
     //余额
     $ecvsn = $_REQUEST['ecvsn'] ? addslashes(trim($_REQUEST['ecvsn'])) : '';
     $ecvpassword = $_REQUEST['ecvpassword'] ? addslashes(trim($_REQUEST['ecvpassword'])) : '';
     $payment = intval($_REQUEST['payment']);
     $all_account_money = intval($_REQUEST['all_account_money']);
     $bank_id = strim(trim($_REQUEST['bank_id']));
     $user_id = intval($GLOBALS['user_info']['id']);
     $session_id = es_session::id();
     $cart_result = load_cart_list();
     $goods_list = $cart_result['cart_list'];
     $result = count_buy_total($region_id, $delivery_id, $payment, $account_money, $all_account_money, $ecvsn, $ecvpassword, $goods_list, 0, 0, $bank_id);
     $GLOBALS['tmpl']->assign("result", $result);
     $html = $GLOBALS['tmpl']->fetch("inc/cart_total.html");
     $data = $result;
     $data['html'] = $html;
     $data['expire'] = empty($goods_list) ? true : false;
     if ($data['expire']) {
         $data['jump'] = url("index", "cart");
     }
     ajax_return($data);
 }
Exemplo n.º 5
0
}
if (isset($request_param['act'])) {
    $act2 = strtolower(strim($request_param['act'])) ? strtolower(strim($request_param['act'])) : "";
} else {
    $act2 = 'index';
}
if (empty($act2)) {
    $act2 = 'index';
}
$is_weixin = isWeixin();
$m_config = getMConfig();
//初始化手机端配置
//用户登陆处理;
user_login();
$user_info = es_session::get('user_info');
$request_param['session_id'] = es_session::id();
require_once APP_ROOT_PATH . 'system/utils/weixin.php';
if ($_REQUEST['code'] && $_REQUEST['state'] == 1 && $m_config['wx_app_key'] && $m_config['wx_app_secret'] && !$user_info) {
    require_once APP_ROOT_PATH . 'system/model/user.php';
    $weixin = new weixin($m_config['wx_app_key'], $m_config['wx_app_secret'], get_domain() . APP_ROOT . "/wap/index.php");
    global $wx_info;
    $wx_info = $weixin->scope_get_userinfo($_REQUEST['code']);
    $GLOBALS['tmpl']->assign('wx_info', $wx_info);
    //用户未登陆
    if ($wx_info['openid']) {
        $wx_user_info = get_user_has('wx_openid', $wx_info['openid']);
        if ($wx_user_info) {
            //如果会员存在,直接登录
            do_login_user($wx_user_info['mobile'], $wx_user_info['user_pwd']);
        } else {
            //会员不存在进入登录流程
Exemplo n.º 6
0
 public function callback()
 {
     es_session::start();
     require_once APP_ROOT_PATH . 'system/api_login/Tencent/Tencent.php';
     OAuth::init($this->api['config']['app_key'], $this->api['config']['app_secret']);
     $code = trim(addslashes($_REQUEST['code']));
     $openid = trim(addslashes($_REQUEST['openid']));
     $openkey = trim(addslashes($_REQUEST['openkey']));
     if ($this->api['config']['app_url'] == "") {
         $app_url = get_domain() . APP_ROOT . "/api_callback.php?c=Tencent";
     } else {
         $app_url = $this->api['config']['app_url'];
     }
     $token_url = OAuth::getAccessToken($code, $app_url);
     $result = Http::request($token_url);
     $result = preg_replace('/[^\\x20-\\xff]*/', "", $result);
     //清除不可见字符
     $result = iconv("utf-8", "utf-8//ignore", $result);
     //UTF-8转码
     parse_str($result, $result_arr);
     $access_token = $result_arr['access_token'];
     $refresh_token = $result_arr['refresh_token'];
     $name = $result_arr['name'];
     $nick = $result_arr['nick'];
     $is_bind = intval(es_session::get("is_bind"));
     es_session::set("t_access_token", $access_token);
     es_session::set("t_openid", $openid);
     es_session::set("t_openkey", $openkey);
     if (es_session::get("t_access_token") || es_session::get("t_openid") && es_session::get("t_openkey")) {
         $msg['field'] = 'tencent_id';
         $msg['id'] = $name;
         $msg['name'] = $name;
         $msg['t_access_token'] = $access_token;
         $msg['t_openid'] = $access_token;
         $msg['t_openkey'] = $openkey;
         es_session::set("api_user_info", $msg);
         if (!$msg['name']) {
             app_redirect(url("index"));
         }
         $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where tencent_id = '" . $name . "' and tencent_id <> ''");
         if ($user_data) {
             $user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id']));
             $user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['score']) . " order by score desc");
             if ($user_current_group['score'] < $user_group['score']) {
                 $user_data['group_id'] = intval($user_group['id']);
             }
             $GLOBALS['db']->query("update " . DB_PREFIX . "user set t_access_token ='" . $access_token . "',t_openkey = '" . $openkey . "',t_openid = '" . $openid . "', login_ip = '" . get_client_ip() . "',login_time= " . get_gmtime() . ",group_id=" . intval($user_data['group_id']) . " where id =" . $user_data['id']);
             $GLOBALS['db']->query("update " . DB_PREFIX . "deal_cart set user_id = " . intval($user_data['id']) . " where session_id = '" . es_session::id() . "'");
             require_once APP_ROOT_PATH . "system/libs/user.php";
             auto_do_login_user($user_data['user_name'], $user_data['user_pwd'], $from_cookie = false);
             es_session::delete("api_user_info");
             app_recirect_preview();
         } else {
             $this->create_user();
             app_redirect(url("shop", "user#stepone"));
         }
     }
 }
Exemplo n.º 7
0
/**
 * 处理会员登录
 * @param $user_name_or_email 用户名或邮箱地址
 * @param $user_pwd 密码
 * 
 */
function do_login_user($phone, $user_pwd)
{
    $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where mobile= " . $phone . "  and is_delete = 0");
    if (!$user_data) {
        $result['status'] = 0;
        $result['data'] = ACCOUNT_NO_EXIST_ERROR;
        return $result;
    } else {
        $result['user'] = $user_data;
        if ($user_data['is_effect'] != 1) {
            $result['status'] = 0;
            $result['data'] = ACCOUNT_NO_VERIFY_ERROR;
            return $result;
        } else {
            if (intval($result['status']) == 0) {
                $result['status'] = 1;
            }
            //登录成功自动检测关于会员等级以及自动登录商家
            $account_name = $user_data['merchant_name'];
            $account = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "supplier_account where account_name = '" . $account_name . "' and is_effect = 1 and is_delete = 0");
            if ($account) {
                /*$account_locations = $GLOBALS['db']->getAll("select location_id from ".DB_PREFIX."supplier_account_location_link where account_id = ".$account['id']);
                 * 
                 */
                $account_locations = $GLOBALS['db']->getAll("select id from " . DB_PREFIX . "supplier_location where supplier_id = " . $account['supplier_id']);
                $account_location_ids = array(0);
                foreach ($account_locations as $row) {
                    $account_location_ids[] = $row['id'];
                }
                $account['location_ids'] = $account_location_ids;
                es_session::set("account_info", $account);
                $GLOBALS['db']->query("update " . DB_PREFIX . "supplier_account set login_ip = '" . get_client_ip() . "' where id=" . $account['id']);
            }
            $user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id']));
            $user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['score']) . " order by score desc");
            if ($user_current_group['score'] < $user_group['score']) {
                $user_data['group_id'] = intval($user_group['id']);
                $GLOBALS['db']->query("update " . DB_PREFIX . "user set group_id = " . $user_data['group_id'] . " where id = " . $user_data['id']);
                $pm_title = "您已经成为" . $user_group['name'] . "";
                $pm_content = "恭喜您,您已经成为" . $user_group['name'] . "。";
                if ($user_group['discount'] < 1) {
                    $pm_content .= "您将享有" . $user_group['discount'] * 10 . "折的购物优惠";
                }
                send_user_msg($pm_title, $pm_content, 0, $user_data['id'], get_gmtime(), 0, true, true);
            }
            $user_current_level = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_level where id = " . intval($user_data['level_id']));
            $user_level = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_level where point <=" . intval($user_data['point']) . " order by point desc");
            if ($user_current_level['point'] < $user_level['point']) {
                $user_data['level_id'] = intval($user_level['id']);
                $GLOBALS['db']->query("update " . DB_PREFIX . "user set level_id = " . $user_data['level_id'] . " where id = " . $user_data['id']);
                $pm_title = "您已经成为" . $user_level['name'] . "";
                $pm_content = "恭喜您,您已经成为" . $user_level['name'] . "。";
                send_user_msg($pm_title, $pm_content, 0, $user_data['id'], get_gmtime(), 0, true, true);
            }
            if ($user_current_level['point'] > $user_level['point']) {
                $user_data['level_id'] = intval($user_level['id']);
                $GLOBALS['db']->query("update " . DB_PREFIX . "user set level_id = " . $user_data['level_id'] . " where id = " . $user_data['id']);
                $pm_title = "您已经降为" . $user_level['name'] . "";
                $pm_content = "很报歉,您已经降为" . $user_level['name'] . "。";
                send_user_msg($pm_title, $pm_content, 0, $user_data['id'], get_gmtime(), 0, true, true);
            }
            es_session::set("user_info", $user_data);
            $GLOBALS['user_info'] = $user_data;
            //检测勋章
            $medal_list = $GLOBALS['db']->getAll("select * from " . DB_PREFIX . "medal where is_effect = 1 and allow_check = 1");
            foreach ($medal_list as $medal) {
                $file = APP_ROOT_PATH . "system/medal/" . $medal['class_name'] . "_medal.php";
                $cls = $medal['class_name'] . "_medal";
                if (file_exists($file)) {
                    require_once $file;
                    if (class_exists($cls)) {
                        $o = new $cls();
                        $check_result = $o->check_medal();
                        if ($check_result['status'] == 0) {
                            send_user_msg($check_result['info'], $check_result['info'], 0, $user_data['id'], get_gmtime(), 0, true, true);
                        }
                    }
                }
            }
            $GLOBALS['db']->query("update " . DB_PREFIX . "user set login_ip = '" . get_client_ip() . "',login_time= " . get_gmtime() . ",group_id=" . intval($user_data['group_id']) . " where id =" . $user_data['id']);
            //更新购物车
            $GLOBALS['db']->query("update " . DB_PREFIX . "deal_cart set user_id = " . intval($user_data['id']) . " where session_id = '" . es_session::id() . "'");
            $s_api_user_info = es_session::get("api_user_info");
            if ($s_api_user_info) {
                $GLOBALS['db']->query("update " . DB_PREFIX . "user set " . $s_api_user_info['field'] . " = '" . $s_api_user_info['id'] . "' where id = " . $user_data['id'] . " and (" . $s_api_user_info['field'] . " = 0 or " . $s_api_user_info['field'] . "='')");
                es_session::delete("api_user_info");
            }
            $result['step'] = intval($user_data["step"]);
            return $result;
        }
    }
}
Exemplo n.º 8
0
/**
* 
1. 如果购物车中有禁用(3), 如果禁用项最后加入,保留禁用项,反之,删除禁用项
2. 如购物车中有按商户禁用(2), 如果加入商户禁用是最后加入,删除与之不相同的商户的商品,反之删除需商户禁用的所有相关的商品
3. 如购物车中有按商品禁用(1), 如果加入商品禁用是最后加入,删除与之不相同的商品,反之删除该商品
*/
function syn_cart()
{
    $first_row = $GLOBALS['db']->getRow("select dc.*,d.cart_type as cart_type from " . DB_PREFIX . "deal_cart as dc left join " . DB_PREFIX . "deal as d on dc.deal_id = d.id where dc.session_id = '" . es_session::id() . "' and dc.user_id = " . intval($GLOBALS['user_info']['id']) . " order by dc.create_time desc");
    //1. 处理禁用全部的状态 cart_type 3
    $result = $GLOBALS['db']->getAll("select dc.id,dc.deal_id,dc.supplier_id from " . DB_PREFIX . "deal_cart as dc left join " . DB_PREFIX . "deal as d on dc.deal_id = d.id where dc.session_id = '" . es_session::id() . "' and dc.user_id = " . intval($GLOBALS['user_info']['id']) . " and d.cart_type = 3");
    if ($result) {
        if ($first_row['cart_type'] == 3) {
            //保留禁用购物车的产品,其他删除
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "deal_cart where session_id = '" . es_session::id() . "' and user_id = " . intval($GLOBALS['user_info']['id']) . " and id <> " . $first_row['id']);
            return;
        } else {
            $ids = array(0);
            foreach ($result as $row) {
                array_push($ids, $row['id']);
            }
            //删除禁用购物车的产品
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "deal_cart where session_id = '" . es_session::id() . "' and user_id = " . intval($GLOBALS['user_info']['id']) . " and id in (" . implode(",", $ids) . ")");
            return;
        }
    }
    //2. 处理按商户禁用的状态 cart_type 2
    $result = $GLOBALS['db']->getAll("select dc.id,dc.deal_id,dc.supplier_id from " . DB_PREFIX . "deal_cart as dc left join " . DB_PREFIX . "deal as d on dc.deal_id = d.id where dc.session_id = '" . es_session::id() . "' and dc.user_id = " . intval($GLOBALS['user_info']['id']) . " and d.cart_type = 2");
    if ($result) {
        if ($first_row['cart_type'] == 2) {
            //保留禁用商户的产品以及同商户商品,其他删除
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "deal_cart where session_id = '" . es_session::id() . "' and user_id = " . intval($GLOBALS['user_info']['id']) . " and supplier_id <> " . $first_row['supplier_id']);
            return;
        } else {
            $ids = array(0);
            foreach ($result as $row) {
                array_push($ids, $row['supplier_id']);
            }
            //删除禁用商户的产品以及同商户商品
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "deal_cart where session_id = '" . es_session::id() . "' and user_id = " . intval($GLOBALS['user_info']['id']) . " and supplier_id in (" . implode(",", $ids) . ")");
            return;
        }
    }
    //3. 处理按商品禁用的状态 cart_type 1
    $result = $GLOBALS['db']->getAll("select dc.id,dc.deal_id,dc.supplier_id from " . DB_PREFIX . "deal_cart as dc left join " . DB_PREFIX . "deal as d on dc.deal_id = d.id where dc.session_id = '" . es_session::id() . "' and dc.user_id = " . intval($GLOBALS['user_info']['id']) . " and d.cart_type = 1");
    if ($result) {
        if ($first_row['cart_type'] == 1) {
            //保留禁用商品以及其他款式的商品,其他删除
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "deal_cart where session_id = '" . es_session::id() . "' and user_id = " . intval($GLOBALS['user_info']['id']) . " and deal_id <> " . $first_row['deal_id']);
            return;
        } else {
            $ids = array(0);
            foreach ($result as $row) {
                array_push($ids, $row['deal_id']);
            }
            //删除禁用商户的产品以及同款商品
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "deal_cart where session_id = '" . es_session::id() . "' and user_id = " . intval($GLOBALS['user_info']['id']) . " and deal_id in (" . implode(",", $ids) . ")");
            return;
        }
    }
}
Exemplo n.º 9
0
function get_gopreview()
{
    $gopreview = es_session::get("gopreview");
    if (!isset($gopreview) || $gopreview == "") {
        $has_cart = intval($GLOBALS['db']->getOne("select count(*) from " . DB_PREFIX . "deal_cart where session_id = '" . es_session::id() . "'"));
        if ($has_cart > 0) {
            $gopreview = url("index", "cart");
        } else {
            $gopreview = es_session::get('before_login') ? es_session::get('before_login') : url("index");
        }
    }
    es_session::delete("before_login");
    es_session::delete("gopreview");
    return $gopreview;
}
Exemplo n.º 10
0
 public function callback()
 {
     es_session::start();
     require_once APP_ROOT_PATH . "system/api_login/qqv2/qqConnectAPI.php";
     $qc = new QC();
     $access_token = $qc->qq_callback();
     $openid = $qc->get_openid();
     $use_info_keysArr = array("access_token" => $access_token, "openid" => $openid, "oauth_consumer_key" => $this->api['config']['app_key']);
     $use_info_url = "https://graph.qq.com/user/get_user_info";
     $graph_use_info_url = $qc->urlUtils->combineURL($use_info_url, $use_info_keysArr);
     $response = $qc->urlUtils->get_contents($graph_use_info_url);
     $arr = array();
     $arr = json_decode($response, true);
     $msg['field'] = 'qq_id';
     $msg['id'] = $openid;
     $msg['name'] = $arr["nickname"];
     es_session::set("api_user_info", $msg);
     $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where qq_id = '" . $openid . "' and qq_id <> '' and is_effect=1 and is_delete=0");
     if ($user_data) {
         $user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id']));
         $user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['score']) . " order by score desc");
         if ($user_current_group['score'] < $user_group['score']) {
             $user_data['group_id'] = intval($user_group['id']);
         }
         es_session::set("user_info", $user_data);
         $GLOBALS['db']->query("update " . DB_PREFIX . "user set login_ip = '" . get_client_ip() . "',login_time= " . get_gmtime() . ",group_id=" . intval($user_data['group_id']) . " where id =" . $user_data['id']);
         $GLOBALS['db']->query("update " . DB_PREFIX . "deal_cart set user_id = " . intval($user_data['id']) . " where session_id = '" . es_session::id() . "'");
         es_session::delete("api_user_info");
         app_recirect_preview();
     } else {
         $this->create_user();
         app_redirect(APP_ROOT . "/");
     }
 }
Exemplo n.º 11
0
 public function loginout()
 {
     require_once APP_ROOT_PATH . "system/libs/user.php";
     $result = loginout_user();
     if ($result['status']) {
         $s_user_info = es_session::get("user_info");
         //更新购物车
         $GLOBALS['db']->query("update " . DB_PREFIX . "deal_cart set user_id = " . intval($s_user_info['id']) . " where session_id = '" . es_session::id() . "'");
         es_cookie::delete("user_name");
         es_cookie::delete("user_pwd");
         $GLOBALS['tmpl']->assign('integrate_result', $result['msg']);
         $before_loginout = $_SERVER['HTTP_REFERER'] ? $_SERVER['HTTP_REFERER'] : url("index");
         if (trim(app_conf("INTEGRATE_CODE")) == '') {
             app_redirect($before_loginout);
         } else {
             showSuccess($GLOBALS['lang']['LOGINOUT_SUCCESS'], 0, $before_loginout);
         }
     } else {
         app_redirect(url("index"));
     }
 }
Exemplo n.º 12
0
 public function addcart()
 {
     if (empty($_REQUEST['id'])) {
         $res = array('ret' => '102', 'msg' => '参数不得为空');
         ajax_return($res);
     }
     $id = intval($_REQUEST['id']);
     save_debug_log("addcart", 'post:' . json_encode($_POST));
     save_debug_log("addcart", 'get:' . json_encode($_GET));
     $deal_info = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal where id=" . $id);
     $session_id = "app";
     if (!$deal_info) {
         $res = array('ret' => '-1', 'msg' => '该商品不存在');
         ajax_return($res);
     } else {
         $attr_str = '0';
         $verify_code = md5($id . "_" . $attr_str);
         $cart_item = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal_cart where session_id='" . $session_id . "' and user_id = " . intval($GLOBALS['user_info']['id']) . " and verify_code = '" . $verify_code . "'");
         $add_number = $number = intval($_REQUEST['number']) <= 0 ? 1 : intval($_REQUEST['number']);
         //开始运算购物车的验证
         if ($cart_item) {
             $check = check_deal_time($cart_item['deal_id']);
             if ($check['status'] == 0) {
                 $res = array('ret' => '-1', 'msg' => "商品:" . $check['info'] . "不在可购买时间内");
                 ajax_return($res);
             }
             $check = check_user_bought_day($cart_item['deal_id'], $add_number, $session_id);
             if ($check['status'] == 0) {
                 $res = array('ret' => '-1', 'msg' => $check['info']);
                 ajax_return($res);
             }
             $check = check_deal_number($cart_item['deal_id'], $add_number);
             if ($check['status'] == 0) {
                 $res = array('ret' => '-1', 'msg' => "商品:" . $check['info'] . "库存不足");
                 ajax_return($res);
             }
         } else {
             $check = check_deal_time($cart_item['deal_id']);
             if ($check['status'] == 0) {
                 $res = array('ret' => '-1', 'msg' => "商品:" . $check['info'] . "不在可购买时间内");
                 ajax_return($res);
             }
             $check = check_user_bought_day($deal_info['id'], $add_number);
             if ($check['status'] == 0) {
                 $res = array('ret' => '-1', 'msg' => $check['info']);
                 ajax_return($res);
             }
             $check = check_deal_number($deal_info['id'], $add_number);
             if ($check['status'] == 0) {
                 $res = array('ret' => '-1', 'msg' => "商品:" . $check['info'] . "库存不足");
                 ajax_return($res);
             }
         }
         if ($deal_info['return_score'] < 0) {
             //需要积分兑换
             $user_score = intval($GLOBALS['db']->getOne("select score from " . DB_PREFIX . "user where id = " . intval($GLOBALS['user_info']['id'])));
             if ($user_score < abs(intval($deal_info['return_score']) * $add_number)) {
                 $res['err'] = 1;
                 $res['open_win'] = 1;
                 $res['html'] = $check['info'] . " " . $GLOBALS['lang']['NOT_ENOUGH_SCORE'];
                 $res['number'] = $GLOBALS['db']->getOne("select sum(number) from " . DB_PREFIX . "deal_cart where session_id = '" . es_session::id() . "' and user_id = " . intval($GLOBALS['user_info']['id']));
                 ajax_return($res);
             }
         }
         //验证over
         if (!$cart_item) {
             $attr_price = $GLOBALS['db']->getOne("select sum(price) from " . DB_PREFIX . "deal_attr where id in({$attr_str})");
             $cart_item['session_id'] = $session_id;
             $cart_item['user_id'] = intval($GLOBALS['user_info']['id']);
             $cart_item['deal_id'] = $id;
             //属性
             if ($attr_name != '') {
                 $cart_item['name'] = $deal_info['name'] . " [" . $attr_name . "]";
                 $cart_item['sub_name'] = $deal_info['sub_name'] . " [" . $attr_name . "]";
             } else {
                 $cart_item['name'] = $deal_info['name'];
                 $cart_item['sub_name'] = $deal_info['sub_name'];
             }
             $cart_item['name'] = addslashes($cart_item['name']);
             $cart_item['sub_name'] = addslashes($cart_item['sub_name']);
             $cart_item['attr'] = $attr_str;
             $cart_item['unit_price'] = $deal_info['current_price'] + $attr_price;
             $cart_item['number'] = $number;
             $cart_item['total_price'] = $cart_item['unit_price'] * $cart_item['number'];
             $cart_item['verify_code'] = $verify_code;
             $cart_item['create_time'] = get_gmtime();
             $cart_item['update_time'] = get_gmtime();
             $cart_item['return_score'] = $deal_info['return_score'];
             $cart_item['return_total_score'] = $deal_info['return_score'] * $cart_item['number'];
             $cart_item['return_money'] = $deal_info['return_money'];
             $cart_item['return_total_money'] = $deal_info['return_money'] * $cart_item['number'];
             $cart_item['buy_type'] = $deal_info['buy_type'];
             $cart_item['supplier_id'] = $deal_info['supplier_id'];
             $cart_item['attr_str'] = $attr_name_str;
             $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_cart", $cart_item);
         } else {
             if ($number > 0) {
                 $cart_item['number'] += $number;
                 $cart_item['total_price'] = $cart_item['unit_price'] * $cart_item['number'];
                 $cart_item['return_total_score'] = $deal_info['return_score'] * $cart_item['number'];
                 $cart_item['return_total_money'] = $deal_info['return_money'] * $cart_item['number'];
                 $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_cart", $cart_item, "UPDATE", "id=" . $cart_item['id']);
             }
         }
         $res['number'] = $GLOBALS['db']->getOne("select sum(number) from " . DB_PREFIX . "deal_cart where session_id = '" . $session_id . "' and user_id = " . intval($GLOBALS['user_info']['id']));
         $res['ret'] = '0';
         save_debug_log('add cart', 'post :' . json_encode($_POST) . ' res:' . json_encode($res));
         ajax_return($res);
     }
 }
Exemplo n.º 13
0
$class = strtolower(strim($request['act']));
$act2 = strtolower(strim($request['act_2'])) ? strtolower(strim($request['act_2'])) : "";
define('ACT', $class);
//act常量
define('ACT_2', $act2);
if (true) {
    $url = get_domain() . APP_ROOT . "/" . APP_INDEX . "/index.php?requestData=" . $_REQUEST['requestData'] . "&r_type=2";
    $api_log = array();
    $api_log['api'] = $url;
    $api_log['act'] = $class;
    $api_log['parms'] = print_r($request, true);
    $GLOBALS['db']->autoExecute(DB_PREFIX . "api_log", $api_log, 'INSERT');
}
$sessid = $request['session_id'];
if (empty($sessid)) {
    $session_id = es_session::id();
    $request['session_id'] = $sessid;
}
es_session::set_sessid($sessid);
require_once APP_ROOT_PATH . "system/model/user.php";
$city_id = intval($request['city_id']);
if ($city_id > 0) {
    $_GET['city'] = $city_id;
}
require_once APP_ROOT_PATH . "system/model/city.php";
$GLOBALS['city'] = City::locate_city();
$GLOBALS['user_info'] = es_session::get("user_info");
if (empty($GLOBALS['user_info']) && $class != 'login') {
    $cookie_uname = strim($request['email']);
    //用户名或邮箱
    $cookie_upwd = strim($request['pwd']);
Exemplo n.º 14
0
function set_view_history($type, $id)
{
    load_auto_cache("cache_history", array("type" => $type, "rel_id" => $id, "session_id" => es_session::id(), "uid" => $GLOBALS['user_info']['id'], "city_id" => $GLOBALS['city']['id']));
}
Exemplo n.º 15
0
 public function index()
 {
     //		$email = strim($GLOBALS['request']['email']);//用户名或邮箱
     //		$pwd = strim($GLOBALS['request']['pwd']);//密码
     //
     //		//检查用户,用户密码
     //		$user = user_check($email,$pwd);
     //		$user_id  = intval($user['id']);
     //
     //		$cartdata = $GLOBALS['request']['cartdata'];
     //		$res = insertCartData($user_id,session_id(),$cartdata);
     //
     //		$root = array();
     //		if($res['info']=='')
     //		{
     //			$root['return'] = 1;
     //			$root['info'] = "提交成功";
     //		}
     //		else
     //		{
     //			$root['return'] = 0;
     //			$root['info'] = $res['info'];
     //		}
     $root = array();
     //检查用户,用户密码
     $user = $GLOBALS['user_info'];
     $user_id = intval($user['id']);
     $root['is_binding'] = 0;
     $root['user_id'] = $user_id;
     $root['mobile'] = $root['mobile'];
     if ($user_id > 0) {
         $isMobile = preg_match("/^(13\\d{9}|14\\d{9}|18\\d{9}|15\\d{9})|(0\\d{9}|9\\d{8})\$/", $user['mobile']);
         if ($isMobile) {
             $root['is_binding'] = 1;
             $root['mobile'] = $user['mobile'];
         }
     }
     //下单时需要绑定手机号码
     $root['order_has_bind_mobile'] = intval($GLOBALS['m_config']['order_has_bind_mobile']);
     if ($GLOBALS['request']['from'] == 'wap') {
         $cartdata = unserialize(base64_decode($GLOBALS['request']['cartdata']));
         //print_r($cartdata);die;
         //删除购物车中其他商品,开始
         $session_cart_data = es_session::get("cart_data");
         foreach ($session_cart_data as $k => $v) {
             if ($v['goods_id'] != $GLOBALS['request']['id']) {
                 unset($session_cart_data[$k]);
                 es_session::set("cart_data", $session_cart_data);
             }
         }
         foreach ($cartdata as $k => $v) {
             if ($GLOBALS['request']['id'] != $v['goods_id']) {
                 unset($cartdata[$k]);
             }
         }
         //删除购物车中其他商品,结束
         //file_put_contents(APP_ROOT_PATH."tmapi/log/postcart1".strftime("%Y%m%d%H%M%S",time()).".txt",print_r($cartdata,true));
         $res = insertCartData($user_id, es_session::id(), $cartdata);
         //file_put_contents(APP_ROOT_PATH."tmapi/log/postcart2".strftime("%Y%m%d%H%M%S",time()).".txt",print_r($res,true));
         $cart_info = $res['data'];
         foreach ($cart_info as $k => $v) {
             //查询数据库,获取商品信息
             $deal = $GLOBALS['db']->getRow("select img,max_bought,buy_count from " . DB_PREFIX . "deal where id=" . $v['deal_id']);
             $left_num = $GLOBALS['request']['left_number'];
             $cart_info[$k]['id'] = $v['id'];
             $cart_info[$k]['current_price_format'] = format_price($v['unit_price']);
             $cart_info[$k]['img'] = get_abs_img_root($deal['img']);
             $cart_info[$k]['current_price'] = round($v['unit_price'], 2);
             if (isset($left_num)) {
                 $cart_info[$k]['stock'] = intval($deal['max_bought']) - intval($deal['buy_count']);
             } else {
                 $cart_info[$k]['stock'] = $left_num;
             }
         }
         $root['postcart_info'] = $cart_info;
         //统计所有的价格
         $root['cartinfo'] = $GLOBALS['m_config']['yh'];
         //$root['f_link_data']=get_link_list();
         //$root['email']=$email;
         //$root['city_name']=$city_name;
         $root['page_title'] = '提交订单';
     } else {
         $root['cartinfo'] = $GLOBALS['m_config']['yh'];
     }
     $root['nowtime'] = date("Y-m-d H:i", time() + 36400);
     output($root);
 }
Exemplo n.º 16
0
function insert_load_cart_index()
{
    //增加输出购物车中产品是否参加抽奖
    $is_lottery = $GLOBALS['db']->getOne("select count(*) from " . DB_PREFIX . "deal_cart as dc left join " . DB_PREFIX . "deal as d on dc.deal_id = d.id where d.is_lottery = 1 and session_id = '" . es_session::id() . "' and user_id = " . intval($GLOBALS['user_info']['id']));
    $GLOBALS['tmpl']->assign("is_lottery", $is_lottery);
    if (!$GLOBALS['user_info'] && $is_lottery > 0) {
        showErr($GLOBALS['lang']['PLEASE_LOGIN_FIRST'], $ajax, url("shop", "user#login"));
    }
    $GLOBALS['db']->query("update " . DB_PREFIX . "deal_cart set update_time=" . TIME_UTC . ",user_id = " . intval($GLOBALS['user_info']['id']) . " where session_id = '" . es_session::id() . "'");
    $cart_list = $GLOBALS['db']->getAll("select c.*,d.icon from " . DB_PREFIX . "deal_cart as c left join " . DB_PREFIX . "deal as d on c.deal_id = d.id where c.session_id = '" . es_session::id() . "' and c.user_id = " . intval($GLOBALS['user_info']['id']));
    $GLOBALS['tmpl']->assign("cart_list", $cart_list);
    $GLOBALS['tmpl']->assign('total_price', $GLOBALS['db']->getOne("select sum(total_price) from " . DB_PREFIX . "deal_cart where session_id = '" . es_session::id() . "' and user_id = " . intval($GLOBALS['user_info']['id'])));
    //输出抽奖验证过的用户手机号
    $lottery_mobile = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . intval($GLOBALS['user_info']['id']));
    $GLOBALS['tmpl']->assign("lottery_mobile", $lottery_mobile['lottery_mobile']);
    $GLOBALS['tmpl']->assign("is_verify", $lottery_mobile['lottery_verify'] == '' ? true : false);
    return $GLOBALS['tmpl']->fetch("inc/insert/load_cart_index.html");
}
Exemplo n.º 17
0
function Qq()
{
    $openid = trim($GLOBALS['request']['openid']);
    $access_token = trim($GLOBALS['request']['access_token']);
    $r = $GLOBALS['request']['user_info'];
    //$r = json_decode($r,true);
    //print_r($GLOBALS['request']); exit;
    if ($GLOBALS['request']['type'] == "ios") {
        $name = $GLOBALS['request']['nickname'];
    } else {
        $name = $r['nickname'];
    }
    $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where qq_id = '" . $openid . "' and qq_id <> '' ");
    if ($user_data) {
        if ($user_data['is_effect'] == 0 || $user_data['is_delete'] == 1) {
            $result['resulttype'] = 0;
        } else {
            $user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id']));
            $user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['score']) . " order by score desc");
            if ($user_current_group['score'] < $user_group['score']) {
                $user_data['group_id'] = intval($user_group['id']);
            }
            $GLOBALS['db']->query("update " . DB_PREFIX . "user set login_ip = '" . get_client_ip() . "',login_time= " . get_gmtime() . ",group_id=" . intval($user_data['group_id']) . " where id =" . $user_data['id']);
            $GLOBALS['db']->query("update " . DB_PREFIX . "deal_cart set user_id = " . intval($user_data['id']) . " where session_id = '" . es_session::id() . "'");
            $result['user_pwd'] = $user_data['user_pwd'];
            $result['uid'] = $user_data['id'];
            $result['email'] = $user_data['email'];
            $result['user_money'] = $user_data['money'];
            $result['user_money_format'] = format_price($user_data['money']);
            //用户金额
            $result['user_avatar'] = get_abs_img_root(get_muser_avatar($user_data['id'], "big"));
            $name = $user_data['user_name'];
            $result['resulttype'] = 1;
        }
    } else {
        $user_count = $GLOBALS['db']->getOne("select count(*) from " . DB_PREFIX . "user where user_name='" . $name . "' ");
        if ($user_count > 0) {
            $name = "QQ" . rand(1000, 9999) . "_" . $name;
        }
        $result['email'] = "";
        $result['user_pwd'] = md5(get_gmtime());
        $result['user_name'] = $name;
        $result['qq_id'] = $openid;
        $result['uid'] = bind_add_user($result);
        if ($result['uid'] > 0) {
            $result['user_avatar'] = '';
            $result['user_money'] = 0;
            $result['user_money_format'] = "¥0";
            //用户金额
            $result['resulttype'] = 1;
        } else {
            $result['resulttype'] = -1;
        }
    }
    $result['access_token'] = $access_token;
    $result['qq_id'] = $openid;
    $result['user_name'] = $name;
    $result['act'] = "synclogin";
    $result['login_type'] = "Qq";
    output($result);
}
Exemplo n.º 18
0
 public function index()
 {
     $root = array();
     $mobile = trim($GLOBALS['request']['mobile']);
     $code = strim($GLOBALS['request']['code']);
     /*验证码*/
     $ref_uid = intval($GLOBALS['request']['ref_uid']);
     /*邀请id*/
     $city_name = strim($GLOBALS['request']['city_name']);
     //城市名称
     if (!empty($mobile)) {
         if (!check_mobile($mobile)) {
             $root['status'] = 2;
             $root['info'] = "请输入正确的手机号码";
             output($root);
         }
         //print_r($GLOBALS['request']);
         if ($code == '') {
             $root['info'] = "请输入验证码!";
             $root['status'] = 2;
             output($root);
         }
         $db_code = $GLOBALS['db']->getRow("select id,code,add_time from " . DB_PREFIX . "sms_mobile_verify where mobile_phone = '{$mobile}' order by id desc");
         //print_r($db_code['code']);
         //$root['code']="select id,code,add_time from ".DB_PREFIX."sms_mobile_verify where status=0 and mobile_phone = '$mobile' and type=0 order by id desc";
         if ($db_code['code'] != $code) {
             $root['info'] = "请输入正确的验证码!";
             $root['status'] = 2;
             output($root);
         }
         $new_time = get_gmtime();
         if ($new_time - $db_code['add_time'] > 60 * 30) {
             $root['info'] = "验证码已失效,请重新获取!";
             $root['status'] = 2;
             $GLOBALS['db']->query("delete from " . DB_PREFIX . "sms_mobile_verify  where mobile_phone = " . $mobile . "");
             output($root);
         }
         //$GLOBALS['db']->query("update ".DB_PREFIX."sms_mobile_verify set status = 1 where id=".$db_code['id']."");
         $GLOBALS['db']->query("delete from " . DB_PREFIX . "sms_mobile_verify where id=" . $db_code['id'] . "");
         $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where mobile = '{$mobile}'");
         require_once APP_ROOT_PATH . "/system/model/user.php";
         if (!$user_data) {
             //自动注册一个用户;
             $pwd = rand(1111, 9999);
             $pwd = md5($pwd);
             $user_data = mobile_reg($mobile, $pwd, $ref_uid);
         } else {
             $mobile = $user_data['mobile'];
             $pwd = $user_data['user_pwd'];
         }
         //检查用户,用户密码
         auto_do_login_user($mobile, $pwd, false);
         $user = $GLOBALS['user_info'];
         $user_id = intval($user['id']);
         if ($user_id > 0) {
             $root['mobile_user_id'] = $user_id;
             $root['mobile_user_name'] = $user['user_name'];
             $root['mobile_user_pwd'] = $user['user_pwd'];
         } else {
             $root['info'] = "用户登陆失败!";
             $root['status'] = 2;
         }
     } else {
         //检查用户,用户密码
         $user = $GLOBALS['user_info'];
         $user_id = intval($user['id']);
     }
     $root['return'] = 1;
     $root['first_calc'] = $GLOBALS['request']['first_calc'];
     if ($user_id > 0) {
         //用户登陆状态:1:成功登陆;0:未成功登陆
         $root['user_login_status'] = 1;
         //第一次计算,主要是处理一些初始化参数,比如:默认配送地址
         if ($GLOBALS['request']['first_calc'] == 1) {
             $delivery = getUserAddr($user_id, false, 1);
             $root['delivery'] = $delivery;
             $delivery_region = array('region_lv1' => intval($delivery['region_lv1']), 'region_lv2' => intval($delivery['region_lv2']), 'region_lv3' => intval($delivery['region_lv3']), 'region_lv4' => intval($delivery['region_lv4']));
             $root['send_mobile'] = $user['mobile'];
             //默认填上用户手机号码
             $payment_id = intval($GLOBALS['m_config']['select_payment_id']);
             //默认支付方式
             //$payment_id = intval($root['order_parm']['select_payment_id']);//默认支付方式
             $delivery_id = intval($GLOBALS['m_config']['delivery_id']);
             //配送方式;
         } else {
             $delivery_region = array('region_lv1' => intval($GLOBALS['request']['region_lv1']), 'region_lv2' => intval($GLOBALS['request']['region_lv2']), 'region_lv3' => intval($GLOBALS['request']['region_lv3']), 'region_lv4' => intval($GLOBALS['request']['region_lv4']));
             if ($GLOBALS['request']['payment_id']) {
                 $payment_id = intval($GLOBALS['request']['payment_id']);
             } else {
                 $payment_id = intval($GLOBALS['m_config']['select_payment_id']);
                 //默认支付方式
             }
             if ($GLOBALS['request']['delivery_id']) {
                 $delivery_id = intval($GLOBALS['request']['delivery_id']);
             } else {
                 $delivery_id = intval($GLOBALS['m_config']['delivery_id']);
                 //配送方式;
             }
         }
         if ($GLOBALS['request']['from'] == "wap") {
             //用户信息
             $cartdata = unserialize(base64_decode($GLOBALS['request']['cartdata']));
             $user_info = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $user_id);
             $root['user_info'] = $user_info;
             $root['delivery_list'] = $GLOBALS['m_config']['delivery_list'];
             //商品信息
             $res = insertCartData($user_id, es_session::id(), $cartdata);
             $cart_info = $res['data'];
             foreach ($cart_info as $k => $v) {
                 //查询数据库,获取商品信息
                 $deal = $GLOBALS['db']->getRow("select img,max_bought from " . DB_PREFIX . "deal where id=" . $v['deal_id']);
                 //单价*数量=总价
                 $cart_info[$k]['current_price_format'] = format_price($v['unit_price']);
                 $cart_info[$k]['img'] = get_abs_img_root($deal['img']);
                 $cart_info[$k]['max_bought'] = $deal['max_bought'];
                 $cart_info[$k]['current_price'] = round($v['unit_price'], 2);
                 $cart_info[$k]['tech_id'] = $v['tech_id'];
                 $tech_info = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where id = " . $v['tech_id']);
                 $cart_info[$k]['tech_name'] = $tech_info['user_name'];
             }
             $root['cartinfo'] = $cart_info;
         } else {
             $cartdata = $GLOBALS['request']['cartdata'];
             $res = insertCartData($user_id, es_session::id(), $cartdata);
         }
         if ($res['info'] != '') {
             //不可购买
             $root['info'] = $res['info'];
             $root['status'] = 0;
         } else {
             //可以购买
             $root['status'] = 1;
             //$delivery_id = intval($requestData['delivery_id']);//配送方式;
             if ($delivery_id == 0) {
                 $delivery_id = intval($GLOBALS['m_config']['delivery_id']);
             }
             //取系统配置
             $root['select_delivery_id'] = $delivery_id;
             $ecvSn = strim($GLOBALS['request']['ecv_sn']);
             //优惠券
             $ecvPassword = strim($GLOBALS['request']['ecv_pwd']);
             //优惠券密码
             require_once APP_ROOT_PATH . "system/model/cart.php";
             $region4_id = intval($delivery_region['region_lv4']);
             $region3_id = intval($delivery_region['region_lv3']);
             $region2_id = intval($delivery_region['region_lv2']);
             $region1_id = intval($delivery_region['region_lv1']);
             if ($region4_id == 0) {
                 if ($region3_id == 0) {
                     if ($region2_id == 0) {
                         $region_id = $region1_id;
                     } else {
                         $region_id = $region2_id;
                     }
                 } else {
                     $region_id = $region3_id;
                 }
             } else {
                 $region_id = $region4_id;
             }
             $goods_list = $res['data'];
             $GLOBALS['user_info']['id'] = $user_id;
             $ids = array();
             foreach ($goods_list as $cart_goods) {
                 array_push($ids, $cart_goods['deal_id']);
             }
             $ids_str = implode(",", $ids);
             $is_delivery = intval($GLOBALS['db']->getOne("select is_delivery from " . DB_PREFIX . "deal where is_delivery = 1 and id in (" . $ids_str . ")"));
             if ($is_delivery == 0) {
                 $delivery_id = 0;
             }
             $root['is_delivery'] = $is_delivery;
             $account_pay = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "payment where class_name = 'Account'");
             if ($account_pay) {
                 $data = count_buy_total($region_id, $delivery_id, $payment_id, 0, 1, $ecvSn, $ecvPassword, $goods_list);
             } else {
                 $data = count_buy_total($region_id, $delivery_id, $payment_id, 0, 0, $ecvSn, $ecvPassword, $goods_list);
             }
             $root['use_user_money'] = floatval($data['account_money']);
             //使用会员余额支付金额
             $root['pay_money'] = $data['pay_price'];
             //还需要支付金额
             $root['feeinfo'] = getFeeItem($data);
             $root['order_parm'] = init_order_parm($GLOBALS['m_config']);
             $root['order_parm']['delivery_id'] = $delivery_id;
             $root['order_parm']['payment_id'] = $payment_id;
             $ecv_payment_id = intval($GLOBALS['db']->getOne("select id from " . DB_PREFIX . "payment where class_name = 'Voucher'"));
             //重新为order_parm赋值
             if ($ecv_payment_id) {
                 $forbid_ecv = $GLOBALS['db']->getOne("select count(*) from " . DB_PREFIX . "deal_payment where payment_id =" . $ecv_payment_id . " and deal_id in (" . $ids_str . ")");
                 if ($forbid_ecv) {
                     $root['order_parm']['has_ecv'] = 0;
                 }
                 //无优惠券
             } else {
                 $root['order_parm']['has_ecv'] = 0;
             }
             //无优惠券
             $has_coupon = intval($GLOBALS['db']->getOne("select count(*) from " . DB_PREFIX . "deal where is_coupon = 1 and id in (" . $ids_str . ")"));
             if ($has_coupon == 0) {
                 $root['order_parm']['has_moblie'] = 0;
                 $root['order_parm']['has_mcod'] = 1;
             } else {
                 $root['order_parm']['has_moblie'] = 1;
                 $root['order_parm']['has_mcod'] = 0;
                 //有团购券商品,不能做:货到付款
             }
             //下单时需要绑定手机号码
             if (intval($GLOBALS['m_config']['order_has_bind_mobile']) == 1) {
                 //前面已经绑定手机号码了,这时不能再修改手机号码
                 $root['order_parm']['has_moblie'] = 0;
             }
             foreach ($root['order_parm']['payment_list'] as $k => $v) {
                 if ($v['code'] == 'Mcod' && $root['order_parm']['has_mcod'] == 0) {
                     unset($root['order_parm']['payment_list'][$k]);
                 }
             }
             $has_delivery = intval($GLOBALS['db']->getOne("select count(*) from " . DB_PREFIX . "deal where is_delivery = 1 and id in (" . $ids_str . ")"));
             if (!$has_delivery) {
                 $root['order_parm']['has_delivery'] = 0;
             } else {
                 $root['order_parm']['has_delivery'] = 1;
             }
             //$root['order_parm']['has_mcod'] = 1;
             $forbid_payment = $GLOBALS['db']->getAll("select payment_id from " . DB_PREFIX . "deal_payment where deal_id in (" . $ids_str . ")");
             foreach ($forbid_payment as $forbid_payment_item) {
                 foreach ($root['order_parm']['payment_list'] as $k => $v) {
                     if ($v['id'] == $forbid_payment_item['payment_id']) {
                         unset($root['order_parm']['payment_list'][$k]);
                     }
                 }
             }
             $forbid_delivery = $GLOBALS['db']->getAll("select delivery_id from " . DB_PREFIX . "deal_delivery where deal_id in (" . $ids_str . ")");
             foreach ($forbid_delivery as $forbid_delivery_item) {
                 foreach ($root['order_parm']['delivery_list'] as $k => $v) {
                     if ($v['id'] == $forbid_payment_item['delivery_id']) {
                         unset($root['order_parm']['delivery_list'][$k]);
                     }
                 }
             }
             //数组按顺序排序
             $payment_list = array();
             foreach ($root['order_parm']['payment_list'] as $k => $v) {
                 $payment_list[] = $v;
             }
             $root['order_parm']['payment_list'] = $payment_list;
             $delivery_list = array();
             foreach ($root['order_parm']['delivery_list'] as $k => $v) {
                 $delivery_list[] = $v;
             }
             $root['order_parm']['delivery_list'] = $delivery_list;
             //has_delivery_list
             //$root['order_parm']['delivery_list'] = $GLOBALS['db']->getAll("select id,name from ".DB_PREFIX."delivery");
         }
     } else {
         //未登录
         $root['user_login_status'] = 0;
     }
     $root['page_title'] = '确认订单';
     $root['city_name'] = $city_name;
     output($root);
 }
Exemplo n.º 19
0
 public function clear_cart()
 {
     $GLOBALS['db']->getAll("delete from " . DB_PREFIX . "deal_cart  where session_id = '" . es_session::id() . "' and user_id = " . intval($GLOBALS['user_info']['id']));
 }
Exemplo n.º 20
0
/**
 * 检测团购的属性数量状态
 * $id 团购ID
 * $attr_setting 属性组合的字符串
 * $number 数量
 */
function check_deal_number_attr($id, $attr_setting, $number = 0)
{
    $id = intval($id);
    $deal_info = load_auto_cache("cache_deal_cart", array("id" => $id));
    $attr_stock_cfg = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "attr_stock where deal_id = " . $id . " and locate(attr_str,'" . $attr_setting . "') > 0 ");
    $stock_setting = intval($attr_stock_cfg['stock_cfg']);
    $stock_attr_setting = $attr_stock_cfg['attr_str'];
    // 获取到当前规格的库存
    /*验证数量*/
    //定义几组需要的数据
    //1. 本团购记录下的购买量
    $deal_buy_count = intval($GLOBALS['db']->getOne("select sum(oi.number) from " . DB_PREFIX . "deal_order_item as oi left join " . DB_PREFIX . "deal_order as o on oi.order_id = o.id where o.pay_status = 2 and oi.deal_id = " . $id . " and o.is_delete = 0 and oi.attr_str like '%" . $stock_attr_setting . "%' and o.after_sale = 0"));
    //2. 本团购当前会员的购物车中数量
    $deal_user_cart_count = intval($GLOBALS['db']->getOne("select sum(number) from " . DB_PREFIX . "deal_cart where session_id='" . es_session::id() . "' and deal_id =" . $id . " and user_id = " . intval($GLOBALS['user_info']['id']) . " and attr_str like '%" . $stock_attr_setting . "%'"));
    //3. 本团购当前会员未付款的数量
    $deal_user_unpaid_count = intval($GLOBALS['db']->getOne("select sum(oi.number) from " . DB_PREFIX . "deal_order_item as oi left join " . DB_PREFIX . "deal_order as o on oi.order_id = o.id where o.user_id = " . intval($GLOBALS['user_info']['id']) . " and o.pay_status <> 2 and oi.deal_id = " . $id . " and o.is_delete = 0 and oi.attr_str like '%" . $stock_attr_setting . "%'"));
    if ($deal_user_cart_count + $deal_buy_count + $deal_user_unpaid_count + $number > $stock_setting && $stock_setting > 0) {
        $result['status'] = 0;
        $result['data'] = DEAL_OUT_OF_STOCK;
        //库存不足
        $result['info'] = $deal_info['sub_name'] . $stock_attr_setting . " " . sprintf($GLOBALS['lang']['DEAL_MAX_BOUGHT'], $stock_setting);
        $result['attr'] = $stock_attr_setting;
        return $result;
    }
    /*验证数量*/
    $result['status'] = 1;
    $result['info'] = $deal_info['sub_name'];
    return $result;
}
';
	var INPUT_KEY_PLEASE = "<?php 
echo L("INPUT_KEY_PLEASE");
?>
";
	var TMPL = '__TMPL__';
	var APP_ROOT = '<?php 
echo APP_ROOT;
?>
';
	var LOGINOUT_URL = '<?php 
echo u("Public/do_loginout");
?>
';
	var WEB_SESSION_ID = '<?php 
echo es_session::id();
?>
';
	var EMOT_URL = '<?php 
echo APP_ROOT;
?>
/public/emoticons/';
	var MAX_FILE_SIZE = "<?php 
echo app_conf("MAX_IMAGE_SIZE") / 1000000 . "MB";
?>
";
	var FILE_UPLOAD_URL ='<?php 
echo u("File/do_upload");
?>
' ;
	CHECK_DOG_HASH = '<?php 
Exemplo n.º 22
0
 public function index()
 {
     $device_type = strim($GLOBALS['request']['device_type']);
     //苹果端值是:ios  安卓端值是:android
     $cur_city_id = intval($GLOBALS['request']['cur_city_id']);
     if ($cur_city_id == 0) {
         //$deal_city = get_current_deal_city(false);//默认城市id
         require_once APP_ROOT_PATH . "system/model/city.php";
         $deal_city = City::locate_city();
         //print_r($deal_city); exit;
         $cur_city_id = $deal_city['id'];
         $city_name = $deal_city['name'];
     } else {
         $city_name = $GLOBALS['db']->getOne("select name from " . DB_PREFIX . "deal_city where id = " . $cur_city_id);
     }
     $root = array();
     $root['return'] = 1;
     $root['session_id'] = es_session::id();
     $root['city_id'] = $cur_city_id;
     $root['city_name'] = $city_name;
     $root['catalog_id'] = intval($GLOBALS['m_config']['catalog_id']);
     //团购,优惠券默认分类id
     $root['catalog_id_name'] = $GLOBALS['m_config']['catalog_id_name'];
     $root['shop_cate_id'] = intval($GLOBALS['m_config']['shop_cate_id']);
     //商城默认分类id
     $root['shop_cate_id_name'] = $GLOBALS['m_config']['shop_cate_id_name'];
     $root['event_cate_id'] = intval($GLOBALS['m_config']['event_cate_id']);
     //活动默认分类id
     $root['event_cate_id_name'] = $GLOBALS['m_config']['event_cate_id_name'];
     $root['citylist'] = getCityArray();
     //$root['cataloglist'] = getCatalogArray();
     //$root['cataloglistsearch'] = getCatalogArraySearch();
     $root['region_version'] = intval($GLOBALS['m_config']['region_version']);
     //当前配送地区的数据版本(如果大于客户端的版本号,则客户端在选择,配送地区时会提示升级),int 数字类型
     $root['only_one_delivery'] = intval($GLOBALS['m_config']['only_one_delivery']);
     //1:会员只有一个配送地址;0:会员可以有多个配送地址
     $root['kf_phone'] = $GLOBALS['m_config']['kf_phone'];
     //客服电话
     $root['kf_email'] = $GLOBALS['m_config']['kf_email'];
     //客服邮箱
     $root['about_info'] = $GLOBALS['m_config']['about_info'];
     $root['version'] = VERSION;
     //接口版本号int
     $root['page_size'] = PAGE_SIZE;
     //默认分页大小
     $root['has_region'] = intval($GLOBALS['m_config']['has_region']);
     $root['newslist'] = $GLOBALS['m_config']['newslist'];
     $root['program_title'] = $GLOBALS['m_config']['program_title'];
     $root['addr_tlist'] = $GLOBALS['m_config']['addr_tlist'];
     //保存地址标题
     //$root['adv_youhui'] = m_adv_youhui($cur_city_id);
     $root['quanlist'] = getQuanArray($cur_city_id);
     //商圈列表
     $root['deal_cate_list'] = getDealCateArray();
     //优惠券分类
     $root['index_logo'] = get_abs_img_root($GLOBALS['m_config']['index_logo']);
     //新浪  分享,登陆 功能
     if (strim($GLOBALS['m_config']['sina_app_key']) != "" && strim($GLOBALS['m_config']['sina_app_secret']) != "") {
         $root['api_sina'] = 1;
         $root['sina_app_key'] = $GLOBALS['m_config']['sina_app_key'];
         $root['sina_app_secret'] = $GLOBALS['m_config']['sina_app_secret'];
         $root['sina_bind_url'] = $GLOBALS['m_config']['sina_bind_url'];
     }
     /*
     		//无效,删除
     		if(strim($GLOBALS['m_config']['tencent_app_key'])!=""&&strim($GLOBALS['m_config']['tencent_app_secret'])!="")
     		{
     			$root['api_tencent'] = 1;
     			$root['tencent_app_key'] = $GLOBALS['m_config']['tencent_app_key'];
     			$root['tencent_app_secret'] = $GLOBALS['m_config']['tencent_app_secret'];
     			$root['tencent_bind_url'] = $GLOBALS['m_config']['tencent_bind_url'];
     		}*/
     //QQ登陆
     if (strim($GLOBALS['m_config']['qq_app_key']) != "" && strim($GLOBALS['m_config']['qq_app_secret']) != "") {
         $root['api_qq'] = 1;
         $root['qq_app_key'] = $GLOBALS['m_config']['qq_app_key'];
         $root['qq_app_secret'] = $GLOBALS['m_config']['qq_app_secret'];
     }
     //微信分享功能
     if (strim($GLOBALS['m_config']['wx_app_key']) != "" && strim($GLOBALS['m_config']['wx_app_secret']) != "") {
         $root['api_wx'] = 1;
         $root['wx_app_key'] = $GLOBALS['m_config']['wx_app_key'];
         $root['wx_app_secret'] = $GLOBALS['m_config']['wx_app_secret'];
     }
     $start_page = array();
     if ($GLOBALS['m_config']['start_page1']) {
         $start_page_item = array("img" => $GLOBALS['m_config']['start_page1'] ? get_abs_img_root($GLOBALS['m_config']['start_page1']) : "", "url" => $GLOBALS['m_config']['start_page1_url'] ? get_abs_img_root($GLOBALS['m_config']['start_page1_url']) : "");
         $start_page[] = $start_page_item;
     }
     if ($GLOBALS['m_config']['start_page2']) {
         $start_page_item = array("img" => $GLOBALS['m_config']['start_page2'] ? get_abs_img_root($GLOBALS['m_config']['start_page2']) : "", "url" => $GLOBALS['m_config']['start_page2_url'] ? get_abs_img_root($GLOBALS['m_config']['start_page2_url']) : "");
         $start_page[] = $start_page_item;
     }
     if ($GLOBALS['m_config']['start_page3']) {
         $start_page_item = array("img" => $GLOBALS['m_config']['start_page3'] ? get_abs_img_root($GLOBALS['m_config']['start_page3']) : "", "url" => $GLOBALS['m_config']['start_page3_url'] ? get_abs_img_root($GLOBALS['m_config']['start_page3_url']) : "");
         $start_page[] = $start_page_item;
     }
     $rk = rand(0, count($start_page) - 1);
     $start_page_item = $start_page[$rk];
     $root['start_page'] = $start_page_item;
     output($root);
 }
Exemplo n.º 23
0
 public function weixin_login()
 {
     $session_id = es_session::id();
     $verify = rand(100000, 999999);
     $url = get_domain() . APP_ROOT . "/wap/index.php?session_id=" . $session_id . "&sess_verify=" . $verify;
     es_session::set("sess_verify", $verify);
     $GLOBALS['tmpl']->assign("url", $url);
     $GLOBALS['tmpl']->display("inc/weixin_login.html");
 }
Exemplo n.º 24
0
/**
 * 处理会员登录
 * @param $user_name_or_email 用户名或邮箱地址
 * @param $user_pwd 密码
 * 
 */
function do_login_user($user_name_or_email, $user_pwd)
{
    $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where (user_name='" . $user_name_or_email . "' or email = '" . $user_name_or_email . "' or mobile = '" . $user_name_or_email . "') and is_delete = 0");
    //载入会员整合
    $integrate_code = strim(app_conf("INTEGRATE_CODE"));
    if ($integrate_code != '' && $GLOBALS['request']['from'] != 'wap') {
        $integrate_file = APP_ROOT_PATH . "system/integrate/" . $integrate_code . "_integrate.php";
        if (file_exists($integrate_file)) {
            require_once $integrate_file;
            $integrate_class = $integrate_code . "_integrate";
            $integrate_obj = new $integrate_class();
        }
    }
    if ($integrate_obj) {
        $result = $integrate_obj->login($user_name_or_email, $user_pwd);
    }
    $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where (user_name='" . $user_name_or_email . "' or email = '" . $user_name_or_email . "' or mobile = '" . $user_name_or_email . "') and is_delete = 0");
    if (!$user_data) {
        $result['status'] = 0;
        $result['data'] = ACCOUNT_NO_EXIST_ERROR;
        return $result;
    } else {
        $result['user'] = $user_data;
        if ($user_data['user_pwd'] != md5($user_pwd . $user_data['code']) && $user_data['user_pwd'] != $user_pwd) {
            $result['status'] = 0;
            $result['data'] = ACCOUNT_PASSWORD_ERROR;
            return $result;
        } elseif ($user_data['is_effect'] != 1) {
            $result['status'] = 0;
            $result['data'] = ACCOUNT_NO_VERIFY_ERROR;
            return $result;
        } else {
            if (intval($result['status']) == 0) {
                $result['status'] = 1;
            }
            //登录成功自动检测关于会员等级以及自动登录商家
            $account_name = $user_data['merchant_name'];
            $account = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "supplier_account where account_name = '" . $account_name . "' and is_effect = 1 and is_delete = 0");
            if ($account) {
                $account_locations = $GLOBALS['db']->getAll("select location_id from " . DB_PREFIX . "supplier_account_location_link where account_id = " . $account['id']);
                $account_location_ids = array(0);
                foreach ($account_locations as $row) {
                    $account_location_ids[] = $row['location_id'];
                }
                $account['location_ids'] = $account_location_ids;
                es_session::set("account_info", $account);
                $GLOBALS['db']->query("update " . DB_PREFIX . "supplier_account set login_ip = '" . CLIENT_IP . "' where id=" . $account['id']);
            }
            $user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id']));
            $user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['total_score']) . " order by score desc");
            if ($user_current_group['score'] < $user_group['score']) {
                $user_data['group_id'] = intval($user_group['id']);
                $GLOBALS['db']->query("update " . DB_PREFIX . "user set group_id = " . $user_data['group_id'] . " where id = " . $user_data['id']);
                $pm_content = "恭喜您,您已经成为" . $user_group['name'] . "。";
                if ($user_group['discount'] < 1) {
                    $pm_content .= "您将享有" . $user_group['discount'] * 10 . "折的购物优惠";
                }
                send_msg($user_data['id'], $pm_content, "notify", 0);
            }
            $user_current_level = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_level where id = " . intval($user_data['level_id']));
            $user_level = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_level where point <=" . intval($user_data['point']) . " order by point desc");
            if ($user_current_level['point'] < $user_level['point']) {
                $user_data['level_id'] = intval($user_level['id']);
                $GLOBALS['db']->query("update " . DB_PREFIX . "user set level_id = " . $user_data['level_id'] . " where id = " . $user_data['id']);
                $pm_content = "恭喜您,您已经成为" . $user_level['name'] . "。";
                send_msg($user_data['id'], $pm_content, "notify", 0);
            }
            if ($user_current_level['point'] > $user_level['point']) {
                $user_data['level_id'] = intval($user_level['id']);
                $GLOBALS['db']->query("update " . DB_PREFIX . "user set level_id = " . $user_data['level_id'] . " where id = " . $user_data['id']);
                $pm_content = "很报歉,您已经降为" . $user_level['name'] . "。";
                send_msg($user_data['id'], $pm_content, "notify", 0);
            }
            send_system_msg($user_data['id']);
            $user_data = load_user($user_data['id'], true);
            es_session::set("user_info", $user_data);
            $GLOBALS['user_info'] = $user_data;
            es_session::set("user_logined", true);
            $GLOBALS['user_logined'] = true;
            es_session::set("user_logined_time", NOW_TIME);
            $GLOBALS['db']->query("update " . DB_PREFIX . "deal_cart set user_id = " . $GLOBALS['user_info']['id'] . " where session_id = '" . es_session::id() . "'");
            require_once APP_ROOT_PATH . "system/model/cart.php";
            load_cart_list(true);
            //检测勋章
            $medal_list = $GLOBALS['db']->getAll("select * from " . DB_PREFIX . "medal where is_effect = 1 and allow_check = 1");
            foreach ($medal_list as $medal) {
                $file = APP_ROOT_PATH . "system/medal/" . $medal['class_name'] . "_medal.php";
                $cls = $medal['class_name'] . "_medal";
                if (file_exists($file)) {
                    require_once $file;
                    if (class_exists($cls)) {
                        $o = new $cls();
                        $check_result = $o->check_medal();
                        if ($check_result['status'] == 0) {
                            send_msg($user_data['id'], $check_result['info'], "notify", 0);
                        }
                    }
                }
            }
            //签到
            $signin_result = signin($GLOBALS['user_info']['id']);
            if ($signin_result['status']) {
                es_session::set("signin_result", $signin_result);
            }
            $GLOBALS['db']->query("update " . DB_PREFIX . "user set login_ip = '" . CLIENT_IP . "',login_time= " . NOW_TIME . ",group_id=" . intval($user_data['group_id']) . " where id =" . $user_data['id']);
            $s_api_user_info = es_session::get("api_user_info");
            if ($s_api_user_info) {
                $GLOBALS['db']->query("update " . DB_PREFIX . "user set " . $s_api_user_info['field'] . " = '" . $s_api_user_info['id'] . "' where id = " . $user_data['id'] . " and (" . $s_api_user_info['field'] . " = 0 or " . $s_api_user_info['field'] . "='')");
                es_session::delete("api_user_info");
            }
            $result['step'] = intval($user_data["step"]);
            return $result;
        }
    }
}
Exemplo n.º 25
0
function USSina()
{
    es_session::start();
    $sina_id = trim($GLOBALS['request']['sina_id']);
    $access_token = trim($GLOBALS['request']['access_token']);
    $r = $GLOBALS['request']['user_info'];
    $r = json_decode($r, true);
    $name = $r['screen_name'];
    $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where sina_id = '" . $sina_id . "' and sina_id <> '' and sina_id <> 0");
    if ($user_data) {
        if ($user_data['is_effect'] == 0 || $user_data['is_delete'] == 1) {
            $result['resulttype'] = 0;
        } else {
            $user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id']));
            $user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['score']) . " order by score desc");
            if ($user_current_group['score'] < $user_group['score']) {
                $user_data['group_id'] = intval($user_group['id']);
            }
            $GLOBALS['db']->query("update " . DB_PREFIX . "user set sina_token ='" . $access_token . "', login_ip = '" . get_client_ip() . "',login_time= " . get_gmtime() . ",group_id=" . intval($user_data['group_id']) . " where id =" . $user_data['id']);
            $GLOBALS['db']->query("update " . DB_PREFIX . "deal_cart set user_id = " . intval($user_data['id']) . " where session_id = '" . es_session::id() . "'");
            $result['user_pwd'] = $user_data['user_pwd'];
            $result['uid'] = $user_data['id'];
            $result['email'] = $user_data['email'];
            $result['user_avatar'] = get_abs_img_root(get_muser_avatar($user_data['id'], "big"));
            $name = $user_data['user_name'];
            $result['resulttype'] = 1;
        }
    } else {
        $result['email'] = "";
        $result['user_pwd'] = md5(get_gmtime());
        $result['user_name'] = $name;
        $result['sina_token'] = $access_token;
        $result['sina_id'] = $sina_id;
        $result['uid'] = bind_add_user($result);
        if ($result['uid'] > 0) {
            $result['user_avatar'] = '';
            $result['resulttype'] = 1;
        } else {
            $result['resulttype'] = -1;
        }
    }
    $result['access_token'] = $access_token;
    $result['sina_id'] = $sina_id;
    $result['user_name'] = $name;
    $result['act'] = "synclogin";
    $result['login_type'] = "Sina";
    output($result);
}
Exemplo n.º 26
0
 public function callback()
 {
     require_once APP_ROOT_PATH . 'system/api_login/sina/saetv2.ex.class.php';
     es_session::start();
     //$sina_keys = es_session::get("sina_keys");
     $o = new SaeTOAuthV2($this->api['config']['app_key'], $this->api['config']['app_secret']);
     if (isset($_REQUEST['code'])) {
         $keys = array();
         $keys['code'] = $_REQUEST['code'];
         if ($this->api['config']['app_url'] == "") {
             $app_url = get_domain() . APP_ROOT . "/api_callback.php?c=Sina";
         } else {
             $app_url = $this->api['config']['app_url'];
         }
         $keys['redirect_uri'] = $app_url;
         try {
             $token = $o->getAccessToken('code', $keys);
         } catch (OAuthException $e) {
             print_r($e);
             exit;
         }
     }
     $c = new SaeTClientV2($this->api['config']['app_key'], $this->api['config']['app_secret'], $token['access_token']);
     $ms = $c->home_timeline();
     // done
     $uid_get = $c->get_uid();
     $uid = $uid_get['uid'];
     $msg = $c->show_user_by_id($uid);
     //根据ID获取用户等基本信息
     $msg['field'] = 'sina_id';
     $msg['sina_token'] = $token['access_token'];
     es_session::set("api_user_info", $msg);
     if (!$msg['name']) {
         app_redirect(url("index"));
         exit;
     }
     //print_r($msg);die();
     $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where sina_id = " . $msg['id'] . " and sina_id <> 0");
     if ($user_data) {
         $user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id']));
         $user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['score']) . " order by score desc");
         if ($user_current_group['score'] < $user_group['score']) {
             $user_data['group_id'] = intval($user_group['id']);
         }
         $GLOBALS['db']->query("update " . DB_PREFIX . "user set sina_token = '" . $token['access_token'] . "',login_ip = '" . get_client_ip() . "',login_time= " . get_gmtime() . ",group_id=" . intval($user_data['group_id']) . " where id =" . $user_data['id']);
         $GLOBALS['db']->query("update " . DB_PREFIX . "deal_cart set user_id = " . intval($user_data['id']) . " where session_id = '" . es_session::id() . "'");
         es_session::delete("api_user_info");
         $is_bind = intval(es_session::get("is_bind"));
         if ($is_bind) {
             if (intval($user_data['id']) != intval($GLOBALS['user_info']['id'])) {
                 showErr("该帐号已经被别的会员绑定过,请直接用帐号登录", 0, url("shop", "uc_center#setweibo"));
             } else {
                 es_session::set("user_info", $user_data);
                 app_redirect(url("shop", "uc_center#setweibo"));
             }
         } else {
             require_once APP_ROOT_PATH . "system/libs/user.php";
             auto_do_login_user($user_data['user_name'], $user_data['user_pwd'], $from_cookie = false);
             app_recirect_preview();
         }
     } elseif ($is_bind == 1 && $GLOBALS['user_info']) {
         //当有用户身份且要求绑定时
         $GLOBALS['db']->query("update " . DB_PREFIX . "user set sina_id= '" . intval($msg['id']) . "', sina_token ='" . $token['access_token'] . "' where id =" . $GLOBALS['user_info']['id']);
         app_redirect(url("shop", "uc_center#setweibo"));
     } else {
         $this->create_user();
         app_redirect(url("shop", "user#stepone"));
     }
 }