/** * 获得购物车中的商品 * * @access public * @return array */ function get_cart_goods($type = '') { switch ($type) { case 'buy_now': $cart_table = 'cart_buy_now'; break; default: $cart_table = 'cart'; break; } /* 初始化 */ $goods_list = array(); $total = array('goods_price' => 0, 'market_price' => 0, 'saving' => 0, 'save_rate' => 0, 'goods_amount' => 0, 'goods_count' => 0); /* 循环、统计 */ $sql = "SELECT *, IF(parent_id, parent_id, goods_id) AS pid " . " FROM " . $GLOBALS['ecs']->table($cart_table) . " " . " WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'" . " ORDER BY packageBuy_id asc, pid, parent_id"; $res = $GLOBALS['db']->query($sql); /* 用于统计购物车中实体商品和虚拟商品的个数 */ $virtual_goods_count = 0; $real_goods_count = 0; $packageId = ''; $goodsListKey = 0; while ($row = $GLOBALS['db']->fetchRow($res)) { if ($row['packageBuy_id'] == $packageId && $row['packageBuy_id'] != 0) { $row['packageBuy'] = 3; if ($goodsListKey <= 0) { die('error: array index is less than 0. location:lib_order.php '); } if ($goods_list[$goodsListKey - 1]['packageBuy'] == 3) { $goods_list[$goodsListKey - 1]['packageBuy'] = 2; } } else { if ($row['packageBuy_id'] != 0) { $row['packageBuy'] = 1; } else { $row['packageBuy'] = 0; } } $packageId = $row['packageBuy_id']; $activityPrice = price_format(getGoodActivityPrice($row['goods_id'])); $row['goods_price'] = $activityPrice > 0 ? $activityPrice : $row['goods_price']; $total['goods_price'] += $row['goods_price'] * $row['goods_number']; $total['market_price'] += $row['market_price'] * $row['goods_number']; $total['goods_count'] += $row['goods_number']; $row['subtotal'] = price_format($row['goods_price'] * $row['goods_number'], false); $row['goods_price'] = price_format($row['goods_price'], false); $row['market_price'] = price_format($row['market_price'], false); /* 统计实体商品和虚拟商品的个数 */ if ($row['is_real']) { $real_goods_count++; } else { $virtual_goods_count++; } /* 查询规格 */ if (trim($row['goods_attr']) != '') { $sql = "SELECT attr_value FROM " . $GLOBALS['ecs']->table('goods_attr') . " WHERE goods_attr_id " . db_create_in($row['goods_attr']); $attr_list = $GLOBALS['db']->getCol($sql); foreach ($attr_list as $attr) { $row['goods_name'] .= ' [' . $attr . '] '; } } /* 增加是否在购物车里显示商品图 */ if (($GLOBALS['_CFG']['show_goods_in_cart'] == "2" || $GLOBALS['_CFG']['show_goods_in_cart'] == "3") && $row['extension_code'] != 'package_buy') { $goods_thumb = $GLOBALS['db']->getOne("SELECT `goods_thumb` FROM " . $GLOBALS['ecs']->table('goods') . " WHERE `goods_id`='{$row['goods_id']}'"); $row['goods_thumb'] = get_image_path($row['goods_id'], $goods_thumb, true); } if ($row['extension_code'] == 'package_buy') { $row['package_goods_list'] = get_package_goods($row['goods_id']); } $row['url'] = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']); $goods_list[$goodsListKey++] = $row; } $total['goods_amount'] = $total['goods_price']; $total['saving'] = price_format($total['market_price'] - $total['goods_price'], false); if ($total['market_price'] > 0) { $total['save_rate'] = $total['market_price'] ? round(($total['market_price'] - $total['goods_price']) * 100 / $total['market_price']) . '%' : 0; } $total['goods_price'] = price_format($total['goods_price'], false); $total['market_price'] = price_format($total['market_price'], false); $total['real_goods_count'] = $real_goods_count; $total['virtual_goods_count'] = $virtual_goods_count; return array('goods_list' => $goods_list, 'total' => $total); }
/** * 获得商品的详细信息 * * @access public * @param integer $goods_id * @return void */ function get_goods_info($goods_id) { $time = gmtime(); $sql = 'SELECT g.*, c.measure_unit,g.goods_brief, b.brand_id, b.brand_name AS goods_brand, b.brand_logo,m.type_money AS bonus_money, ' . 'IFNULL(AVG(r.comment_rank), 0) AS comment_rank, ' . "IFNULL(mp.user_price, g.shop_price * '{$_SESSION['discount']}') AS rank_price " . 'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('category') . ' AS c ON g.cat_id = c.cat_id ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('brand') . ' AS b ON g.brand_id = b.brand_id ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('comment') . ' AS r ' . 'ON r.id_value = g.goods_id AND comment_type = 0 AND r.parent_id = 0 AND r.status = 1 ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('bonus_type') . ' AS m ' . "ON g.bonus_type_id = m.type_id AND m.send_start_date <= '{$time}' AND m.send_end_date >= '{$time}'" . " LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp " . "ON mp.goods_id = g.goods_id AND mp.user_rank = '{$_SESSION['user_rank']}' " . "WHERE g.goods_id = '{$goods_id}' AND g.is_delete = 0 " . "GROUP BY g.goods_id"; $row = $GLOBALS['db']->getRow($sql); if ($row !== false) { $row['goods_brief'] = $row['goods_brief']; /* 用户评论级别取整 */ $row['comment_rank'] = ceil($row['comment_rank']) == 0 ? 5 : ceil($row['comment_rank']); /* 获得商品的销售价格 */ $row['market_price'] = price_format($row['market_price']); $row['shop_price_formated'] = price_format($row['shop_price']); /* 修正促销价格 */ if ($row['promote_price'] > 0) { $promote_price = bargain_price($row['promote_price'], $row['promote_start_date'], $row['promote_end_date']); } else { $promote_price = 0; } $row['activity_price'] = getGoodActivityPrice($goods_id); $row['activity_price_formated'] = price_format($row['activity_price']); if ($row['activity_price'] < 0) { unset($row['activity_price']); unset($row['activity_price_formated']); } /* 处理商品水印图片 */ $watermark_img = ''; if ($promote_price != 0) { $watermark_img = "watermark_promote"; } elseif ($row['is_new'] != 0) { $watermark_img = "watermark_new"; } elseif ($row['is_best'] != 0) { $watermark_img = "watermark_best"; } elseif ($row['is_hot'] != 0) { $watermark_img = 'watermark_hot'; } if ($watermark_img != '') { $row['watermark_img'] = $watermark_img; } $row['promote_price_org'] = $promote_price; $row['promote_price'] = price_format($promote_price); /* 修正重量显示 */ $row['goods_weight'] = intval($row['goods_weight']) > 0 ? $row['goods_weight'] . $GLOBALS['_LANG']['kilogram'] : $row['goods_weight'] * 1000 . $GLOBALS['_LANG']['gram']; /* 修正上架时间显示 */ $row['add_time'] = local_date($GLOBALS['_CFG']['date_format'], $row['add_time']); /* 促销时间倒计时 */ $time = gmtime(); if ($time >= $row['promote_start_date'] && $time <= $row['promote_end_date']) { $row['gmt_end_time'] = $row['promote_end_date']; } else { $row['gmt_end_time'] = 0; } /* 是否显示商品库存数量 */ $row['goods_number'] = $GLOBALS['_CFG']['use_storage'] == 1 ? $row['goods_number'] : ''; /* 修正积分:转换为可使用多少积分(原来是可以使用多少钱的积分) */ $row['integral'] = $GLOBALS['_CFG']['integral_scale'] ? round($row['integral'] * 100 / $GLOBALS['_CFG']['integral_scale']) : 0; /* 修正优惠券 */ $row['bonus_money'] = $row['bonus_money'] == 0 ? 0 : price_format($row['bonus_money'], false); /* 修正商品图片 */ $row['goods_img'] = get_image_path($goods_id, $row['goods_img']); $row['goods_thumb'] = get_image_path($goods_id, $row['goods_thumb'], true); return $row; } else { return false; } }