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); }
/** * 删除订单至回收站(历史订单) * @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; } }
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; }