Example #1
0
 public function index()
 {
     global_run();
     init_app_page();
     $GLOBALS['tmpl']->assign("no_nav", true);
     //无分类下拉
     if (check_save_login() != LOGIN_STATUS_LOGINED) {
         app_redirect(url("index", "user#login"));
     }
     $did = intval($_REQUEST['did']);
     require_once APP_ROOT_PATH . "app/Lib/page.php";
     $page_size = 10;
     $page = intval($_REQUEST['p']);
     if ($page == 0) {
         $page = 1;
     }
     $limit = ($page - 1) * $page_size . "," . $page_size;
     $user_id = $GLOBALS['user_info']['id'];
     require_once APP_ROOT_PATH . "system/model/deal_order.php";
     $order_item_table = get_user_order_item_table_name($user_id);
     $order_table = get_user_order_table_name($user_id);
     if ($did > 0) {
         $order_deal_item = $GLOBALS['db']->getRow("select doi.* from " . $order_item_table . " as doi left join " . $order_table . " as do on doi.order_id = do.id where doi.id = " . $did . " and doi.is_coupon = 1 and do.user_id = " . $user_id);
         $deal = load_auto_cache("deal", array("id" => $order_deal_item['deal_id']));
         $order_deal_item['url'] = $deal['url'];
     }
     if ($order_deal_item) {
         $sql = "select doi.sub_name,doi.name,doi.number,c.* from " . DB_PREFIX . "deal_coupon as c left join " . $order_item_table . " as doi on doi.id = c.order_deal_id where c.is_valid > 0 and " . " c.user_id = " . $user_id . " and doi.id = " . $order_deal_item['id'] . " order by c.id desc limit " . $limit;
         $sql_count = "select count(*) from " . DB_PREFIX . "deal_coupon as c where c.is_valid > 0 and " . " c.user_id = " . $user_id . " and c.order_deal_id = " . $order_deal_item['id'];
         $GLOBALS['tmpl']->assign("deal", $order_deal_item);
     } else {
         $sql = "select doi.sub_name,doi.name,doi.number,c.* from " . DB_PREFIX . "deal_coupon as c left join " . DB_PREFIX . "deal_order_item as doi on doi.id = c.order_deal_id where c.is_valid > 0 and " . " c.user_id = " . $user_id . " order by c.id desc limit " . $limit;
         $sql_count = "select count(*) from " . DB_PREFIX . "deal_coupon as c where c.is_valid > 0 and " . " c.user_id = " . $user_id;
     }
     $list = $GLOBALS['db']->getAll($sql);
     foreach ($list as $k => $v) {
         $list[$k]['deal'] = load_auto_cache("deal", array("id" => $v['deal_id']));
     }
     $count = $GLOBALS['db']->getOne($sql_count);
     $page = new Page($count, $page_size);
     //初始化分页对象
     $p = $page->show();
     $GLOBALS['tmpl']->assign('pages', $p);
     $GLOBALS['tmpl']->assign("list", $list);
     $GLOBALS['tmpl']->assign("NOW_TIME", NOW_TIME);
     $GLOBALS['tmpl']->assign("page_title", "我的团购券");
     assign_uc_nav_list();
     $GLOBALS['tmpl']->display("uc/uc_coupon_index.html");
 }
 public function index()
 {
     $city_name = strim($GLOBALS['request']['city_name']);
     //城市名称
     //检查用户,用户密码
     $user = $GLOBALS['user_info'];
     $user_id = intval($user['id']);
     $root = array();
     $root['return'] = 1;
     if ($user_id > 0) {
         $root['user_login_status'] = 1;
         $order_id = intval($GLOBALS['request']['id']);
         require_once APP_ROOT_PATH . "system/model/deal_order.php";
         $order_table_name = get_user_order_table_name($user_id);
         //echo $order_id; exit;
         $sql = "select o.*,r1.name as r1_name, r2.name as r2_name, r3.name as r3_name, r4.name as r4_name from " . $order_table_name . " as o " . "left outer join " . DB_PREFIX . "delivery_region as r1 on r1.id = o.region_lv1 " . "left outer join " . DB_PREFIX . "delivery_region as r2 on r2.id = o.region_lv2 " . "left outer join " . DB_PREFIX . "delivery_region as r3 on r3.id = o.region_lv3 " . "left outer join " . DB_PREFIX . "delivery_region as r4 on r4.id = o.region_lv4 " . " where o.is_delete = 0 and o.user_id = {$user_id} and o.id = {$order_id} limit 1";
         $order_info = $GLOBALS['db']->getRow($sql);
         if ($order_info) {
             $root = get_order_goods($order_info);
             $root['return'] = 1;
             $root['user_login_status'] = 1;
             $deliveryAddr = array();
             $deliveryAddr['consignee'] = $order_info['consignee'];
             //联系人姓名
             $deliveryAddr['delivery'] = $order_info['r1_name'] . $order_info['r2_name'] . $order_info['r3_name'] . $order_info['r4_name'];
             $deliveryAddr['region_lv1'] = $order_info['region_lv1'];
             //国家
             $deliveryAddr['region_lv2'] = $order_info['region_lv2'];
             //省
             $deliveryAddr['region_lv3'] = $order_info['region_lv3'];
             //城市
             $deliveryAddr['region_lv4'] = $order_info['region_lv4'];
             //地区/县
             $deliveryAddr['delivery_detail'] = $order_info['address'];
             //详细地址
             $deliveryAddr['phone'] = $order_info['mobile'];
             //手机号码
             $deliveryAddr['postcode'] = $order_info['zip'];
             //邮编
             $root['deliveryAddr'] = $deliveryAddr;
             $root['delivery_status_2'] = $order_info['delivery_status'];
             $root['content'] = $order_info['memo'];
             //订单备注
             $root['send_mobile'] = $user['mobile'];
             //团购券手机
             $root['tax_title'] = $order_info['tax_title'];
             //发票抬头
             $root['tax_id'] = 0;
             //发票内容
             $root['deliver_time_id'] = 0;
             //配送日期ID 默认没有这个参数,所以填0
             $root['delivery_list'] = $GLOBALS['m_config']['delivery_list'];
             //$default_payment_id = $GLOBALS['m_config']['select_payment_id'];
             if ($GLOBALS['request']['payment_id']) {
                 $default_payment_id = intval($GLOBALS['request']['payment_id']);
             } else {
                 $default_payment_id = $order_info['payment_id'];
             }
             //$default_payment_id = $order_info['payment_id'];
             $root['payment_id'] = $default_payment_id;
             //支付方式
             $root['order_parm'] = init_order_parm($GLOBALS['m_config']);
             $root['order_parm']['has_ecv'] = 0;
             //订单付款不支持代金券
             $root['evc_sn'] = '';
             //优惠券序号
             $root['evc_pwd'] = '';
             //优惠券序号
             $order_item_table_name = get_user_order_item_table_name($user_id);
             $goods_list = $GLOBALS['db']->getAll("select * from " . $order_item_table_name . " where order_id = " . $order_id);
             $ids = array();
             $cart_ids = array();
             $root['dp_able'] = 0;
             $root['goods_list'] = $goods_list;
             foreach ($goods_list as $cart_goods) {
                 array_push($ids, $cart_goods['deal_id']);
                 array_push($cart_ids, $cart_goods['id']);
                 if (empty($cart_goods['dp_id'])) {
                     if ($root['pay_status'] == 2 && $root['order_status'] == 1 && ($root['delivery_status_code'] == 2 || $root['delivery_status_code'] == 5)) {
                         $root['dp_able'] = 1;
                         $root['dp_deal_id'] = $cart_goods['id'];
                     }
                 }
             }
             $ids_str = implode(",", $ids);
             $cart_ids_str = implode(",", $cart_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['order_parm']['has_delivery'] = 0;
             } else {
                 if ($GLOBALS['request']['delivery_id']) {
                     $delivery_id = intval($GLOBALS['request']['delivery_id']);
                 } else {
                     $delivery_id = $order_info['delivery_id'];
                     //配送方式;
                 }
                 //$delivery_id = $order_info['delivery_id'];
                 $root['order_parm']['has_delivery'] = 1;
             }
             $root['delivery_id'] = $delivery_id;
             //配送方式
             $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;
                 //有团购券商品,不能做:货到付款
             }
             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]);
                 }
             }
             $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;
             $region4_id = intval($order_info['region_lv4']);
             $region3_id = intval($order_info['region_lv3']);
             $region2_id = intval($order_info['region_lv2']);
             $region1_id = intval($order_info['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;
             }
             require_once APP_ROOT_PATH . "system/model/cart.php";
             //订单的显示参数
             if ($order_info['pay_status'] == 0) {
                 $root['has_cancel'] = 1;
             } else {
                 $root['has_cancel'] = 0;
             }
             $delivery_notice = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "delivery_notice where order_item_id in (" . $cart_ids_str . ") order by delivery_time desc limit 1");
             if ($delivery_notice) {
                 $express = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "express where id = " . intval($delivery_notice['express_id']));
                 $express['config'] = unserialize($express['config']);
                 $root['kd_com'] = $express['config']['app_code'];
                 if ($root['kd_com']) {
                     $root['kd_sn'] = $delivery_notice['notice_sn'];
                 }
             }
             if ($order_info['pay_status'] != 2) {
                 if ($root['order_parm']['has_delivery'] == 1) {
                     $root['has_edit_delivery'] = 1;
                 } else {
                     $root['has_edit_delivery'] = 0;
                 }
                 $root['has_edit_delivery_time'] = 0;
                 $root['has_edit_invoice'] = 0;
                 $root['has_edit_ecv'] = 0;
                 $root['has_edit_message'] = 1;
                 if ($root['order_parm']['has_moblie'] == 1) {
                     $root['has_edit_moblie'] = 1;
                 } else {
                     $root['has_edit_moblie'] = 0;
                 }
                 $GLOBALS['user_info']['id'] = $user_id;
                 $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, $default_payment_id, $account_money = 0, $all_account_money = 1, '', '', $goods_list, $order_info['account_money'], $order_info['ecv_money']);
                 } else {
                     $data = count_buy_total($region_id, $delivery_id, $default_payment_id, $account_money = 0, $all_account_money = 0, '', '', $goods_list, $order_info['account_money'], $order_info['ecv_money']);
                 }
                 //print_r($data);exit;
                 if ($data['pay_price'] == 0) {
                     if ($data['account_money'] > 0 || $data['ecv_money'] > 0) {
                         $root['has_pay'] = 1;
                         $root['use_user_money'] = $data['account_price'];
                     } else {
                         $root['has_pay'] = 0;
                         $root['use_user_money'] = 0;
                     }
                     $root['pay_money'] = 0;
                     //还需要支付金额
                 } else {
                     $root['has_pay'] = 1;
                     $root['pay_money'] = $data['pay_price'];
                     //还需要支付金额
                     $root['use_user_money'] = 0;
                 }
                 if ($root['has_pay'] == 0) {
                     $root['has_edit_delivery'] = 0;
                     $root['has_edit_delivery_time'] = 0;
                     $root['has_edit_invoice'] = 0;
                     $root['has_edit_ecv'] = 0;
                     $root['has_edit_message'] = 0;
                     $root['has_edit_moblie'] = 0;
                 }
                 $root['feeinfo'] = getFeeItem($data);
             } else {
                 $root['has_pay'] = 0;
                 $root['has_edit_delivery'] = 0;
                 $root['has_edit_delivery_time'] = 0;
                 $root['has_edit_invoice'] = 0;
                 $root['has_edit_ecv'] = 0;
                 $root['has_edit_message'] = 0;
                 $root['has_edit_moblie'] = 0;
                 $data['pay_total_price'] = $order_info['total_price'];
                 $data['return_total_score'] = $order_info['return_total_score'];
                 $data['total_price'] = $order_info['deal_total_price'];
                 $data['delivery_fee'] = $order_info['delivery_fee'];
                 $data['account_money'] = $order_info['account_money'];
                 $data['ecv_money'] = $order_info['ecv_money'];
                 $root['pay_money'] = 0;
                 //还需要支付金额
                 $root['use_user_money'] = 0;
                 $root['feeinfo'] = getFeeItem($data);
                 //有团购券,再显示团购券列表
                 $couponlist = $GLOBALS['db']->getAll("select * from " . DB_PREFIX . "deal_coupon where user_id = {$user_id} and order_id = " . $order_id);
                 foreach ($couponlist as $k => $v) {
                     $list[$k]['couponSn'] = $v['sn'];
                     $list[$k]['couponPw'] = $v['password'];
                     $list[$k]['qrcode'] = str_replace('sjmapi', '', get_domain() . gen_qrcode($v['password']));
                 }
                 $root['couponlist'] = $couponlist;
             }
             $root['complain_status'] = 0;
             $complain = $GLOBALS['db']->getRow("SELECT * FROM " . DB_PREFIX . "deal_order_complain WHERE order_id=" . $order_id . " AND user_id=" . $user_id);
             if (!empty($complain)) {
                 $root['complain_status'] = 1;
                 $root['complain_id'] = $complain['id'];
             }
             $order_item_info = $GLOBALS['db']->getRow("SELECT * FROM " . DB_PREFIX . "deal_order_item WHERE order_id=" . $order_id . " ");
             $root['order_item_info'] = $order_item_info;
         } else {
             $root['return'] = 0;
             $root['info'] = "订单不存在.";
         }
     } else {
         $root['user_login_status'] = 0;
     }
     $root['pay_status'] = $order_info['pay_status'];
     $root['refund_status'] = $order_info['refund_status'];
     $root['page_title'] = '订单明细';
     $root['city_name'] = $city_name;
     output($root);
 }
Example #3
0
/**
 * 删除订单至回收站(历史订单)
 * @param unknown_type $order_id
 * 返回:true/false
 */
function del_order($order_id)
{
    $order_info = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal_order where id = " . $order_id . " and order_status = 1");
    if ($order_info) {
        unset($order_info['id']);
        unset($order_info['deal_order_item']);
        $order_items = $GLOBALS['db']->getAll("select * from " . DB_PREFIX . "deal_order_item where order_id = " . $order_id);
        $order_info['history_deal_order_item'] = serialize($order_items);
        $order_info['history_deal_coupon'] = serialize($GLOBALS['db']->getAll("select * from " . DB_PREFIX . "deal_coupon where order_id = " . $order_id));
        $order_info['history_deal_order_log'] = serialize($GLOBALS['db']->getAll("select * from " . DB_PREFIX . "deal_order_log where order_id = " . $order_id));
        $order_info['history_delivery_notice'] = serialize($GLOBALS['db']->getAll("select * from " . DB_PREFIX . "delivery_notice where order_id = " . $order_id));
        $order_info['history_payment_notice'] = serialize($GLOBALS['db']->getAll("select * from " . DB_PREFIX . "payment_notice where order_id = " . $order_id));
        $order_info['history_message'] = serialize($GLOBALS['db']->getAll("select * from " . DB_PREFIX . "message where rel_table = 'deal_order' and rel_id = " . $order_id));
        $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_order_history", $order_info, 'INSERT', '', 'SILENT');
        if ($GLOBALS['db']->insert_id()) {
            //删除会员相关分表
            $user_order_table = get_user_order_table_name($order_info['user_id']);
            $user_order_item_table = get_user_order_item_table_name($order_info['user_id']);
            $GLOBALS['db']->query("delete from " . $user_order_table . " where id = " . $order_id);
            $GLOBALS['db']->query("delete from " . $user_order_item_table . " where order_id = " . $order_id);
            //删除商户相关表
            foreach ($order_items as $item) {
                $supplier_order_table = get_supplier_order_table_name($item['supplier_id']);
                $supplier_order_item_table = get_supplier_order_item_table_name($item['supplier_id']);
                $GLOBALS['db']->query("delete from " . $supplier_order_table . " where id = " . $order_id);
                $GLOBALS['db']->query("delete from " . $supplier_order_item_table . " where order_id = " . $order_id);
            }
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "deal_order where id = " . $order_id);
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "deal_order_item where order_id = " . $order_id);
            //$GLOBALS['db']->query("delete from ".DB_PREFIX."deal_coupon where order_id = ".$order_id);
            $GLOBALS['db']->query("update " . DB_PREFIX . "deal_coupon set order_id = -1 where order_id = " . $order_id);
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "deal_order_log where order_id = " . $order_id);
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "delivery_notice where order_id = " . $order_id);
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "payment_notice where order_id = " . $order_id);
            $GLOBALS['db']->query("delete from " . DB_PREFIX . "message where rel_table='deal_order' and rel_id = " . $order_id);
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}
Example #4
0
function get_order_goods($order_info)
{
    /**
    id(int)		//订单ID
    sn(string)	//订单序列号
    create_time(int)		//下单时间
    create_time_format(string)	//下单时间格式化
    total_money(float)		//订单总金额
    money(float)		//剩余应付金额
    total_money_format(string)  //订单总金额格式化
    money_format(string)		//剩余应付金额格式化
    status(string)		//订单状态(包含 付款状态与配送状态的文字描述)
    num(int)		//订单商品总量
    orderGoods(Array<HashMap>)		//订单商品
    HashMap结构,订单商品结构
    
    	id(int)		//订单商品数据表ID
    	goods_id(int)		//商品原ID
    	name(string)		//商品名称
    	num(int)			//商品数量
    	price(float)		//单价
    	price_format(string)		//格式化单价
    	total_money(float)	//商品总价
    	total_money_format(string)	//商品总价格式化
    	image(string)		//商品缩略图片
    	attr_content(string)	//商品属性描述
    */
    $data['id'] = $order_info['id'];
    $data['sn'] = $order_info['order_sn'];
    $data['create_time'] = $order_info['create_time'];
    $data['create_time_format'] = to_date($order_info['create_time']);
    $data['total_money'] = $order_info['total_price'];
    $data['money'] = $order_info['total_price'] - $order_info['pay_amount'];
    $data['total_money_format'] = format_price($order_info['total_price']);
    $data['money_format'] = format_price($data['money']);
    $data['status'] = "";
    if ($order_info['pay_status'] == 0) {
        $data['status'] .= "未付款";
    } elseif ($order_info['pay_status'] == 1) {
        $data['status'] .= "部份付款";
    } else {
        $data['status'] .= "全部付款";
    }
    if ($order_info['delivery_status'] == 0) {
        $data['delivery_status'] .= "未发货";
    } elseif ($order_info['delivery_status'] == 2) {
        $data['status'] .= "已发货";
    } else {
        $data['status'] .= "";
    }
    require_once APP_ROOT_PATH . "system/model/deal_order.php";
    $order_item_table = get_user_order_item_table_name($order_info['user_id']);
    $data['num'] = $GLOBALS['db']->getOne("select sum(number) from " . $order_item_table . " where order_id = " . $order_info['id']);
    $goods_list = $GLOBALS['db']->getAll("select * from " . $order_item_table . " where order_id = " . $order_info['id']);
    foreach ($goods_list as $order_goods) {
        $goods_item = array();
        $goods_item['id'] = $order_goods['id'];
        $goods_item['goods_id'] = $order_goods['deal_id'];
        $goods_item['name'] = $order_goods['name'];
        $goods_item['num'] = $order_goods['number'];
        $goods_item['price'] = $order_goods['unit_price'];
        $goods_item['price_format'] = format_price($order_goods['unit_price']);
        $goods_item['total_money'] = $order_goods['total_price'];
        $goods_item['total_money_format'] = format_price($order_goods['total_price']);
        if (preg_match("/\\[([^\\]]+)\\]/i", $order_goods['name'], $matches)) {
            $goods_item['attr_content'] = $matches[1];
        } else {
            $goods_item['attr_content'] = "";
        }
        $image = $GLOBALS['db']->getOne("select img from " . DB_PREFIX . "deal where id = " . $goods_item['goods_id']);
        //$goods_item['image'] = get_abs_img_root(make_img($image,0));
        $goods_item['image'] = get_abs_img_root(get_spec_image($image, 160, 160, 0));
        $data['orderGoods'][] = $goods_item;
    }
    $coupon_list = $GLOBALS['db']->getAll("select * from " . DB_PREFIX . "deal_coupon where order_id = " . $order_info['id']);
    foreach ($coupon_list as $coupon) {
        $coupon_item = array();
        $coupon_item['id'] = $coupon['id'];
        $coupon_item['sn'] = $coupon['sn'];
        $coupon_item['password'] = $coupon['password'];
        if ($coupon['confirm_time'] == 0) {
            $coupon_item['status_format'] = '未消费';
            if ($coupon['end_time'] == 0) {
                $coupon_item['status_format'] .= '(不限期)';
            } else {
                $coupon_item['status_format'] .= '(' . to_date($coupon['end_time'], 'Y-m-d') . ')';
            }
        } else {
            $coupon_item['status_format'] = '已消费(' . to_date($coupon['confirm_time'], 'Y-m-d') . ')';
        }
        $data['coupon_list'][] = $coupon_item;
    }
    return $data;
}