Server : Apache
System : Linux iZ2vcgyutqttsd1p850kl8Z 3.10.0-1160.92.1.el7.x86_64 #1 SMP Tue Jun 20 11:48:01 UTC 2023 x86_64
User : www ( 1000)
PHP Version : 5.6.40
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/saimikebio.com/mobile/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/saimikebio.com/mobile/exchange.php
<?php



/**

 * ECSHOP 积分商城

 * ============================================================================

 * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。

 * 网站地址: http://www.ecshop.com;

 * ----------------------------------------------------------------------------

 * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和

 * 使用;不允许对程序代码以任何形式任何目的的再发布。

 * ============================================================================

 * $Author: liubo $

 * $Id: exchange.php 17217 2011-01-19 06:29:08Z liubo $

*/



define('IN_ECTOUCH', true);



require(dirname(__FILE__) . '/include/init.php');



if ((DEBUG_MODE & 2) != 2)

{

    $smarty->caching = true;

}



/*------------------------------------------------------ */

//-- act 操作项的初始化

/*------------------------------------------------------ */

if (empty($_REQUEST['act']))

{

    $_REQUEST['act'] = 'list';

}



/*------------------------------------------------------ */

//-- PROCESSOR

/*------------------------------------------------------ */



/*------------------------------------------------------ */

//-- 积分兑换商品列表

/*------------------------------------------------------ */

if ($_REQUEST['act'] == 'list')

{

    /* 初始化分页信息 */

    $page         = isset($_REQUEST['page'])   && intval($_REQUEST['page'])  > 0 ? intval($_REQUEST['page'])  : 1;

    $size         = isset($_CFG['page_size'])  && intval($_CFG['page_size']) > 0 ? intval($_CFG['page_size']) : 10;

    $cat_id       = isset($_REQUEST['cat_id']) && intval($_REQUEST['cat_id']) > 0 ? intval($_REQUEST['cat_id']) : 0;

    $integral_max = isset($_REQUEST['integral_max']) && intval($_REQUEST['integral_max']) > 0 ? intval($_REQUEST['integral_max']) : 0;

    $integral_min = isset($_REQUEST['integral_min']) && intval($_REQUEST['integral_min']) > 0 ? intval($_REQUEST['integral_min']) : 0;



    /* 排序、显示方式以及类型 */

    $default_display_type      = $_CFG['show_order_type'] == '0' ? 'list' : ($_CFG['show_order_type'] == '1' ? 'grid' : 'text');

    $default_sort_order_method = $_CFG['sort_order_method'] == '0' ? 'DESC' : 'ASC';

    $default_sort_order_type   = $_CFG['sort_order_type'] == '0' ? 'goods_id' : ($_CFG['sort_order_type'] == '1' ? 'exchange_integral' : 'last_update');



    $sort    = (isset($_REQUEST['sort'])  && in_array(trim(strtolower($_REQUEST['sort'])), array('goods_id', 'exchange_integral', 'last_update'))) ? trim($_REQUEST['sort'])  : $default_sort_order_type;

    $order   = (isset($_REQUEST['order']) && in_array(trim(strtoupper($_REQUEST['order'])), array('ASC', 'DESC')))                              ? trim($_REQUEST['order']) : $default_sort_order_method;

    $display = (isset($_REQUEST['display']) && in_array(trim(strtolower($_REQUEST['display'])), array('list', 'grid', 'text'))) ? trim($_REQUEST['display'])  : (isset($_COOKIE['ECS']['display']) ? $_COOKIE['ECS']['display'] : $default_display_type);

    $display  = in_array($display, array('list', 'grid', 'text')) ? $display : 'text';

    setcookie('ECS[display]', $display, gmtime() + 86400 * 7);



    /* 页面的缓存ID */

    $cache_id = sprintf('%X', crc32($cat_id . '-' . $display . '-' . $sort  .'-' . $order  .'-' . $page . '-' . $size . '-' . $_SESSION['user_rank'] . '-' .

        $_CFG['lang'] . '-' . $integral_max . '-' .$integral_min));



    if (!$smarty->is_cached('exchange.dwt', $cache_id))

    {

        /* 如果页面没有被缓存则重新获取页面的内容 */



        $children = get_children($cat_id);



        $cat = get_cat_info($cat_id);   // 获得分类的相关信息



        if (!empty($cat))

        {

            $smarty->assign('keywords',    htmlspecialchars($cat['keywords']));

            $smarty->assign('description', htmlspecialchars($cat['cat_desc']));

        }



        assign_template();



        $position = assign_ur_here('exchange');

        $smarty->assign('page_title',       $position['title']);    // 页面标题

        $smarty->assign('ur_here',          $position['ur_here']);  // 当前位置



        $smarty->assign('categories',       get_categories_tree());        // 分类树

        $smarty->assign('helps',            get_shop_help());              // 网店帮助

        $smarty->assign('top_goods',        get_top10());                  // 销售排行

        $smarty->assign('promotion_info',   get_promotion_info());         // 促销活动信息



        /* 调查 */

        $vote = get_vote();

        if (!empty($vote))

        {

            $smarty->assign('vote_id',     $vote['id']);

            $smarty->assign('vote',        $vote['content']);

        }



        $ext = ''; //商品查询条件扩展



        //$smarty->assign('best_goods',      get_exchange_recommend_goods('best', $children, $integral_min, $integral_max));

        //$smarty->assign('new_goods',       get_exchange_recommend_goods('new',  $children, $integral_min, $integral_max));

        $smarty->assign('hot_goods',       get_exchange_recommend_goods('hot',  $children, $integral_min, $integral_max));



        $count = get_exchange_goods_count($children, $integral_min, $integral_max);

        $max_page = ($count> 0) ? ceil($count / $size) : 1;

        if ($page > $max_page)

        {

            $page = $max_page;

        }

         

        $goodslist = exchange_get_goods($children, $integral_min, $integral_max, $ext, $size, $page, $sort, $order);

        if($display == 'grid')

        {

            if(count($goodslist) % 2 != 0)

            {

                $goodslist[] = array();

            }

        }

        $smarty->assign('goods_list',       $goodslist);

        $smarty->assign('category',         $cat_id);

        $smarty->assign('integral_max',     $integral_max);

        $smarty->assign('integral_min',     $integral_min);





        assign_pager('exchange',            $cat_id, $count, $size, $sort, $order, $page, '', '', $integral_min, $integral_max, $display); // 分页

        assign_dynamic('exchange_list'); // 动态内容

    }



    $smarty->assign('feed_url',         ($_CFG['rewrite'] == 1) ? "feed-typeexchange.xml" : 'feed.php?type=exchange'); // RSS URL

    $smarty->display('exchange_list.dwt', $cache_id);

}

if ($_REQUEST['act'] == 'asynclist')

{

    /* 初始化分页信息 */

    $page         = isset($_REQUEST['page'])   && intval($_REQUEST['page'])  > 0 ? intval($_REQUEST['page'])  : 1;

    $size         = isset($_CFG['page_size'])  && intval($_CFG['page_size']) > 0 ? intval($_CFG['page_size']) : 10;

    $cat_id       = isset($_REQUEST['cat_id']) && intval($_REQUEST['cat_id']) > 0 ? intval($_REQUEST['cat_id']) : 0;

    $integral_max = isset($_REQUEST['integral_max']) && intval($_REQUEST['integral_max']) > 0 ? intval($_REQUEST['integral_max']) : 0;

    $integral_min = isset($_REQUEST['integral_min']) && intval($_REQUEST['integral_min']) > 0 ? intval($_REQUEST['integral_min']) : 0;



    /* 排序、显示方式以及类型 */

    $default_display_type      = $_CFG['show_order_type'] == '0' ? 'list' : ($_CFG['show_order_type'] == '1' ? 'grid' : 'text');

    $default_sort_order_method = $_CFG['sort_order_method'] == '0' ? 'DESC' : 'ASC';

    $default_sort_order_type   = $_CFG['sort_order_type'] == '0' ? 'goods_id' : ($_CFG['sort_order_type'] == '1' ? 'exchange_integral' : 'last_update');



    $sort    = (isset($_REQUEST['sort'])  && in_array(trim(strtolower($_REQUEST['sort'])), array('goods_id', 'exchange_integral', 'last_update'))) ? trim($_REQUEST['sort'])  : $default_sort_order_type;

    $order   = (isset($_REQUEST['order']) && in_array(trim(strtoupper($_REQUEST['order'])), array('ASC', 'DESC')))                              ? trim($_REQUEST['order']) : $default_sort_order_method;

    $display = (isset($_REQUEST['display']) && in_array(trim(strtolower($_REQUEST['display'])), array('list', 'grid', 'text'))) ? trim($_REQUEST['display'])  : (isset($_COOKIE['ECS']['display']) ? $_COOKIE['ECS']['display'] : $default_display_type);

    $display  = in_array($display, array('list', 'grid', 'text')) ? $display : 'text';

    setcookie('ECS[display]', $display, gmtime() + 86400 * 7);



    /* 页面的缓存ID */

    $cache_id = sprintf('%X', crc32($cat_id . '-' . $display . '-' . $sort  .'-' . $order  .'-' . $page . '-' . $size . '-' . $_SESSION['user_rank'] . '-' .

        $_CFG['lang'] . '-' . $integral_max . '-' .$integral_min));



    if (!$smarty->is_cached('exchange.dwt', $cache_id))

    {

        /* 如果页面没有被缓存则重新获取页面的内容 */



        $children = get_children($cat_id);



        $cat = get_cat_info($cat_id);   // 获得分类的相关信息



        if (!empty($cat))

        {

            $smarty->assign('keywords',    htmlspecialchars($cat['keywords']));

            $smarty->assign('description', htmlspecialchars($cat['cat_desc']));

        }



        assign_template();



        $position = assign_ur_here('exchange');

        $smarty->assign('page_title',       $position['title']);    // 页面标题

        $smarty->assign('ur_here',          $position['ur_here']);  // 当前位置



        $smarty->assign('categories',       get_categories_tree());        // 分类树

        $smarty->assign('helps',            get_shop_help());              // 网店帮助

        $smarty->assign('top_goods',        get_top10());                  // 销售排行

        $smarty->assign('promotion_info',   get_promotion_info());         // 促销活动信息



        /* 调查 */

        $vote = get_vote();

        if (!empty($vote))

        {

            $smarty->assign('vote_id',     $vote['id']);

            $smarty->assign('vote',        $vote['content']);

        }



        $ext = ''; //商品查询条件扩展



        //$smarty->assign('best_goods',      get_exchange_recommend_goods('best', $children, $integral_min, $integral_max));

        //$smarty->assign('new_goods',       get_exchange_recommend_goods('new',  $children, $integral_min, $integral_max));

        $smarty->assign('hot_goods',       get_exchange_recommend_goods('hot',  $children, $integral_min, $integral_max));



        $count = get_exchange_goods_count($children, $integral_min, $integral_max);

        $max_page = ($count> 0) ? ceil($count / $size) : 1;

        if ($page > $max_page)

        {

            $page = $max_page;

        }

          /*

         * 异步显示商品列表 by wang

         */

        if ($_GET['act'] == 'asynclist') {

            $asyn_last = intval($_POST['last']) + 1;

            $size = $_POST['amount'];

            $page = ($asyn_last > 0) ? ceil($asyn_last / $size) : 1;

        }

        $goodslist = exchange_get_goods($children, $integral_min, $integral_max, $ext, $size, $page, $sort, $order);

        

        $sayList = array();

        if (is_array($goodslist)) {

            foreach ($goodslist as $vo) {

                //$shop_price = empty($vo['promote_price']) ? $vo['shop_price'] : $vo['promote_price'];

               // $watermark_img = empty($vo['watermark_img']) ? '' : '<img width="55" height="16" src="' . 'themes/' . $_CFG['template'] . '/images/' . $vo['watermark_img'] . '.png" alt="' . $vo['goods_name'] . '" />';

                $name = $vo['goods_style_name']? $vo['goods_style_name'] : $vo['goods_name'];

                $sayList[] = array(

                    'pro-inner' => '

        <div class="proImg-wrap"> <a href="' . $vo['url'] . '" > <img src="' . $config['site_url'] . $vo['goods_thumb'] . '" alt="' . $vo['goods_name'] . '"> </a> </div>

        <div class="proInfo-wrap">

          <div class="proTitle"> <a href="' . $vo['url'] . '" >' . $name . '</a> </div>

          <div class="proSKU"></div>

          <div class="proPrice"> ' .$_LANG['exchange_integral'].'

            <em>' . $vo['exchange_integral'] . '</em> 

          </div>

        </div>'

                );

            }

        }

        // print_r( $sayList  );

        echo json_encode($sayList);

        exit;

        /*

         * 异步显示商品列表 by wang end

         */

        $goodslist = exchange_get_goods($children, $integral_min, $integral_max, $ext, $size, $page, $sort, $order);

        if($display == 'grid')

        {

            if(count($goodslist) % 2 != 0)

            {

                $goodslist[] = array();

            }

        }

        $smarty->assign('goods_list',       $goodslist);

        $smarty->assign('category',         $cat_id);

        $smarty->assign('integral_max',     $integral_max);

        $smarty->assign('integral_min',     $integral_min);





        assign_pager('exchange',            $cat_id, $count, $size, $sort, $order, $page, '', '', $integral_min, $integral_max, $display); // 分页

        assign_dynamic('exchange_list'); // 动态内容

    }



    $smarty->assign('feed_url',         ($_CFG['rewrite'] == 1) ? "feed-typeexchange.xml" : 'feed.php?type=exchange'); // RSS URL

    $smarty->display('exchange_list.dwt', $cache_id);

}

/*------------------------------------------------------ */

//-- 积分兑换商品详情

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'view')

{

    $goods_id = isset($_REQUEST['id'])  ? intval($_REQUEST['id']) : 0;



    $cache_id = $goods_id . '-' . $_SESSION['user_rank'] . '-' . $_CFG['lang'] . '-exchange';

    $cache_id = sprintf('%X', crc32($cache_id));



    if (!$smarty->is_cached('exchange_goods.dwt', $cache_id))

    {

        $smarty->assign('image_width',  $_CFG['image_width']);

        $smarty->assign('image_height', $_CFG['image_height']);

        $smarty->assign('helps',        get_shop_help()); // 网店帮助

        $smarty->assign('id',           $goods_id);

        $smarty->assign('type',         0);

        $smarty->assign('cfg',          $_CFG);



        /* 获得商品的信息 */

        $goods = get_exchange_goods_info($goods_id);



        if ($goods === false)

        {

            /* 如果没有找到任何记录则跳回到首页 */

            ecs_header("Location: ./\n");

            exit;

        }

        else

        {

            if ($goods['brand_id'] > 0)

            {

                $goods['goods_brand_url'] = build_uri('brand', array('bid'=>$goods['brand_id']), $goods['goods_brand']);

            }



            $goods['goods_style_name'] = add_style($goods['goods_name'], $goods['goods_name_style']);



            $smarty->assign('goods',              $goods);

            $smarty->assign('goods_id',           $goods['goods_id']);

            $smarty->assign('categories',         get_categories_tree());  // 分类树



            /* meta */

            $smarty->assign('keywords',           htmlspecialchars($goods['keywords']));

            $smarty->assign('description',        htmlspecialchars($goods['goods_brief']));



            assign_template();



            /* 上一个商品下一个商品 */

            $sql = "SELECT eg.goods_id FROM " .$ecs->table('exchange_goods'). " AS eg," . $GLOBALS['ecs']->table('goods') . " AS g WHERE eg.goods_id = g.goods_id AND eg.goods_id > " . $goods['goods_id'] . " AND eg.is_exchange = 1 AND g.is_delete = 0 LIMIT 1";

            $prev_gid = $db->getOne($sql);

            if (!empty($prev_gid))

            {

                $prev_good['url'] = build_uri('exchange_goods', array('gid' => $prev_gid), $goods['goods_name']);

                $smarty->assign('prev_good', $prev_good);//上一个商品

            }



            $sql = "SELECT max(eg.goods_id) FROM " . $ecs->table('exchange_goods') . " AS eg," . $GLOBALS['ecs']->table('goods') . " AS g WHERE eg.goods_id = g.goods_id AND eg.goods_id < ".$goods['goods_id'] . " AND eg.is_exchange = 1 AND g.is_delete = 0";

            $next_gid = $db->getOne($sql);

            if (!empty($next_gid))

            {

                $next_good['url'] = build_uri('exchange_goods', array('gid' => $next_gid), $goods['goods_name']);

                $smarty->assign('next_good', $next_good);//下一个商品

            }



            /* current position */

            $position = assign_ur_here('exchange', $goods['goods_name']);

            $smarty->assign('page_title',          $position['title']);                    // 页面标题

            $smarty->assign('ur_here',             $position['ur_here']);                  // 当前位置



            $properties = get_goods_properties($goods_id);  // 获得商品的规格和属性

            $smarty->assign('properties',          $properties['pro']);                              // 商品属性

            $smarty->assign('specification',       $properties['spe']);                              // 商品规格



            $smarty->assign('pictures',            get_goods_gallery($goods_id));                    // 商品相册



            assign_dynamic('exchange_goods');

        }

    }



	$smarty->assign('now_time',  gmtime());           // 当前系统时间
	$smarty->assign('comment_count',  get_comment_count($goods_id));           // 当前系统时间
    $smarty->display('exchange_goods.dwt',      $cache_id);

}



/*------------------------------------------------------ */

//--  兑换

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'buy')

{

    /* 查询:判断是否登录 */

    if (!isset($back_act) && isset($GLOBALS['_SERVER']['HTTP_REFERER']))

    {

        $back_act = strpos($GLOBALS['_SERVER']['HTTP_REFERER'], 'exchange') ? $GLOBALS['_SERVER']['HTTP_REFERER'] : './index.php';

    }



    /* 查询:判断是否登录 */

    if ($_SESSION['user_id'] <= 0)

    {

        show_message($_LANG['eg_error_login'], array($_LANG['back_up_page']), array($back_act), 'error');

    }



    /* 查询:取得参数:商品id */

    $goods_id = isset($_POST['goods_id']) ? intval($_POST['goods_id']) : 0;

    if ($goods_id <= 0)

    {

        ecs_header("Location: ./\n");

        exit;

    }



    /* 查询:取得兑换商品信息 */

    $goods = get_exchange_goods_info($goods_id);

    if (empty($goods))

    {

        ecs_header("Location: ./\n");

        exit;

    }

    /* 查询:检查兑换商品是否有库存 */

    if($goods['goods_number'] == 0 && $_CFG['use_storage'] == 1)

    {

        show_message($_LANG['eg_error_number'], array($_LANG['back_up_page']), array($back_act), 'error');

    }

    /* 查询:检查兑换商品是否是取消 */

    if ($goods['is_exchange'] == 0)

    {

        show_message($_LANG['eg_error_status'], array($_LANG['back_up_page']), array($back_act), 'error');

    }



    $user_info   = get_user_info($_SESSION['user_id']);

    $user_points = $user_info['pay_points']; // 用户的积分总数

    if ($goods['exchange_integral'] > $user_points)

    {

        show_message($_LANG['eg_error_integral'], array($_LANG['back_up_page']), array($back_act), 'error');

    }



    /* 查询:取得规格 */

    $specs = '';

    foreach ($_POST as $key => $value)

    {

        if (strpos($key, 'spec_') !== false)

        {

            $specs .= ',' . intval($value);

        }

    }

    $specs = trim($specs, ',');



    /* 查询:如果商品有规格则取规格商品信息 配件除外 */

    if (!empty($specs))

    {

        $_specs = explode(',', $specs);



        $product_info = get_products_info($goods_id, $_specs);

    }

    if (empty($product_info))

    {

        $product_info = array('product_number' => '', 'product_id' => 0);

    }



    //查询:商品存在规格 是货品 检查该货品库存

    if((!empty($specs)) && ($product_info['product_number'] == 0) && ($_CFG['use_storage'] == 1))

    {

        show_message($_LANG['eg_error_number'], array($_LANG['back_up_page']), array($back_act), 'error');

    }



    /* 查询:查询规格名称和值,不考虑价格 */

    $attr_list = array();

    $sql = "SELECT a.attr_name, g.attr_value " .

            "FROM " . $ecs->table('goods_attr') . " AS g, " .

                $ecs->table('attribute') . " AS a " .

            "WHERE g.attr_id = a.attr_id " .

            "AND g.goods_attr_id " . db_create_in($specs);

    $res = $db->query($sql);

    while ($row = $db->fetchRow($res))

    {

        $attr_list[] = $row['attr_name'] . ': ' . $row['attr_value'];

    }

    $goods_attr = join(chr(13) . chr(10), $attr_list);



    /* 更新:清空购物车中所有团购商品 */

    include_once(ROOT_PATH . 'include/lib_order.php');

    clear_cart(CART_EXCHANGE_GOODS);



    /* 更新:加入购物车 */

    $number = 1;

    $cart = array(

        'user_id'        => $_SESSION['user_id'],

        'session_id'     => SESS_ID,

        'goods_id'       => $goods['goods_id'],

        'product_id'     => $product_info['product_id'],

        'goods_sn'       => addslashes($goods['goods_sn']),

        'goods_name'     => addslashes($goods['goods_name']),

        'market_price'   => $goods['market_price'],

        'goods_price'    => 0,//$goods['exchange_integral']

        'goods_number'   => $number,

        'goods_attr'     => addslashes($goods_attr),

        'goods_attr_id'  => $specs,

        'is_real'        => $goods['is_real'],

        'extension_code' => addslashes($goods['extension_code']),

        'parent_id'      => 0,

        'rec_type'       => CART_EXCHANGE_GOODS,

        'is_gift'        => 0

    );

    $db->autoExecute($ecs->table('cart'), $cart, 'INSERT');



    /* 记录购物流程类型:团购 */

 	$_SESSION['sel_cartgoods'] = $db->insert_id();//增加购物车选择性结算

   $_SESSION['flow_type'] = CART_EXCHANGE_GOODS;

    $_SESSION['extension_code'] = 'exchange_goods';

    $_SESSION['extension_id'] = $goods_id;



    /* 进入收货人页面 */

    ecs_header("Location: ./flow.php?step=consignee\n");

    exit;

}



/*------------------------------------------------------ */

//-- PRIVATE FUNCTION

/*------------------------------------------------------ */



/**

 * 获得分类的信息

 *

 * @param   integer $cat_id

 *

 * @return  void

 */

function get_cat_info($cat_id)

{

    return $GLOBALS['db']->getRow('SELECT keywords, cat_desc, style, grade, filter_attr, parent_id FROM ' . $GLOBALS['ecs']->table('category') .

        " WHERE cat_id = '$cat_id'");

}



/**

 * 获得分类下的商品

 *

 * @access  public

 * @param   string  $children

 * @return  array

 */

function exchange_get_goods($children, $min, $max, $ext, $size, $page, $sort, $order)

{

    $display = $GLOBALS['display'];

    $where = "eg.is_exchange = 1 AND g.is_delete = 0 AND ".

             "($children OR " . get_extension_goods($children) . ')';



    if ($min > 0)

    {

        $where .= " AND eg.exchange_integral >= $min ";

    }



    if ($max > 0)

    {

        $where .= " AND eg.exchange_integral <= $max ";

    }



    /* 获得商品列表 */

    $sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, eg.exchange_integral, ' .

                'g.goods_type, g.goods_brief, g.goods_thumb , g.goods_img, eg.is_hot ' .

            'FROM ' . $GLOBALS['ecs']->table('exchange_goods') . ' AS eg, ' .$GLOBALS['ecs']->table('goods') . ' AS g ' .

            "WHERE eg.goods_id = g.goods_id AND $where $ext ORDER BY $sort $order";

    $res = $GLOBALS['db']->selectLimit($sql, $size, ($page - 1) * $size);



    $arr = array();

    while ($row = $GLOBALS['db']->fetchRow($res))

    {

        /* 处理商品水印图片 */

        $watermark_img = '';



//        if ($row['is_new'] != 0)

//        {

//            $watermark_img = "watermark_new_small";

//        }

//        elseif ($row['is_best'] != 0)

//        {

//            $watermark_img = "watermark_best_small";

//        }

//        else

        if ($row['is_hot'] != 0)

        {

            $watermark_img = 'watermark_hot_small';

        }



        if ($watermark_img != '')

        {

            $arr[$row['goods_id']]['watermark_img'] =  $watermark_img;

        }



        $arr[$row['goods_id']]['goods_id']          = $row['goods_id'];

        if($display == 'grid')

        {

            $arr[$row['goods_id']]['goods_name']    = $GLOBALS['_CFG']['goods_name_length'] > 0 ? sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];

        }

        else

        {

            $arr[$row['goods_id']]['goods_name']    = $row['goods_name'];

        }

        $arr[$row['goods_id']]['name']              = $row['goods_name'];

        $arr[$row['goods_id']]['goods_brief']       = $row['goods_brief'];

        $arr[$row['goods_id']]['goods_style_name']  = add_style($row['goods_name'],$row['goods_name_style']);

        $arr[$row['goods_id']]['exchange_integral'] = $row['exchange_integral'];

        $arr[$row['goods_id']]['type']              = $row['goods_type'];

        $arr[$row['goods_id']]['goods_thumb']       = get_image_path($row['goods_id'], $row['goods_thumb'], true);

        $arr[$row['goods_id']]['goods_img']         = get_image_path($row['goods_id'], $row['goods_img']);

        $arr[$row['goods_id']]['url']               = build_uri('exchange_goods', array('gid'=>$row['goods_id']), $row['goods_name']);

    }



    return $arr;

}



/**

 * 获得分类下的商品总数

 *

 * @access  public

 * @param   string     $cat_id

 * @return  integer

 */

function get_exchange_goods_count($children, $min = 0, $max = 0, $ext='')

{

    $where  = "eg.is_exchange = 1 AND g.is_delete = 0 AND ($children OR " . get_extension_goods($children) . ')';





    if ($min > 0)

    {

        $where .= " AND eg.exchange_integral >= $min ";

    }



    if ($max > 0)

    {

        $where .= " AND eg.exchange_integral <= $max ";

    }



    $sql = 'SELECT COUNT(*) FROM ' . $GLOBALS['ecs']->table('exchange_goods') . ' AS eg, ' .

           $GLOBALS['ecs']->table('goods') . " AS g WHERE eg.goods_id = g.goods_id AND $where $ext";



    /* 返回商品总数 */

    return $GLOBALS['db']->getOne($sql);

}



/**

 * 获得指定分类下的推荐商品

 *

 * @access  public

 * @param   string      $type       推荐类型,可以是 best, new, hot, promote

 * @param   string      $cats       分类的ID

 * @param   integer     $min        商品积分下限

 * @param   integer     $max        商品积分上限

 * @param   string      $ext        商品扩展查询

 * @return  array

 */

function get_exchange_recommend_goods($type = '', $cats = '', $min =0,  $max = 0, $ext='')

{

    $price_where = ($min > 0) ? " AND g.shop_price >= $min " : '';

    $price_where .= ($max > 0) ? " AND g.shop_price <= $max " : '';



    $sql =  'SELECT g.goods_id, g.goods_name, g.goods_name_style, eg.exchange_integral, ' .

                'g.goods_brief, g.goods_thumb, goods_img, b.brand_name ' .

            'FROM ' . $GLOBALS['ecs']->table('exchange_goods') . ' AS eg ' .

            'LEFT JOIN ' . $GLOBALS['ecs']->table('goods') . ' AS g ON g.goods_id = eg.goods_id ' .

            'LEFT JOIN ' . $GLOBALS['ecs']->table('brand') . ' AS b ON b.brand_id = g.brand_id ' .

            'WHERE eg.is_exchange = 1 AND g.is_delete = 0 ' . $price_where . $ext;

    $num = 0;

    $type2lib = array('best'=>'exchange_best', 'new'=>'exchange_new', 'hot'=>'exchange_hot');

    $num = get_library_number($type2lib[$type], 'exchange_list');



    switch ($type)

    {

        case 'best':

            $sql .= ' AND eg.is_best = 1';

            break;

        case 'new':

            $sql .= ' AND eg.is_new = 1';

            break;

        case 'hot':

            $sql .= ' AND eg.is_hot = 1';

            break;

    }



    if (!empty($cats))

    {

        $sql .= " AND (" . $cats . " OR " . get_extension_goods($cats) .")";

    }

    $order_type = $GLOBALS['_CFG']['recommend_order'];

    $sql .= ($order_type == 0) ? ' ORDER BY g.sort_order, g.last_update DESC' : ' ORDER BY RAND()';

    $res = $GLOBALS['db']->selectLimit($sql, $num);



    $idx = 0;

    $goods = array();

    while ($row = $GLOBALS['db']->fetchRow($res))

    {

        $goods[$idx]['id']                = $row['goods_id'];

        $goods[$idx]['name']              = $row['goods_name'];

        $goods[$idx]['brief']             = $row['goods_brief'];

        $goods[$idx]['brand_name']        = $row['brand_name'];

        $goods[$idx]['short_name']        = $GLOBALS['_CFG']['goods_name_length'] > 0 ?

                                                sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];

        $goods[$idx]['exchange_integral'] = $row['exchange_integral'];

        $goods[$idx]['thumb']             = get_image_path($row['goods_id'], $row['goods_thumb'], true);

        $goods[$idx]['goods_img']         = get_image_path($row['goods_id'], $row['goods_img']);

        $goods[$idx]['url']               = build_uri('exchange_goods', array('gid' => $row['goods_id']), $row['goods_name']);



        $goods[$idx]['short_style_name']  = add_style($goods[$idx]['short_name'], $row['goods_name_style']);

        $idx++;

    }



    return $goods;

}



/**

 * 获得积分兑换商品的详细信息

 *

 * @access  public

 * @param   integer     $goods_id

 * @return  void

 */

function get_exchange_goods_info($goods_id)

{

    $time = gmtime();

    $sql = 'SELECT g.*, c.measure_unit, b.brand_id, b.brand_name AS goods_brand, eg.exchange_integral, eg.is_exchange ' .

            'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .

            'LEFT JOIN ' . $GLOBALS['ecs']->table('exchange_goods') . ' AS eg ON g.goods_id = eg.goods_id ' .

            '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 ' .

            "WHERE g.goods_id = '$goods_id' AND g.is_delete = 0 " .

            'GROUP BY g.goods_id';



    $row = $GLOBALS['db']->getRow($sql);



    if ($row !== false)

    {

        /* 处理商品水印图片 */

        $watermark_img = '';



        if ($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['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']);



        /* 修正商品图片 */

        $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;

    }

}




// 统计商品的评论数
function get_comment_count($goods_id){
    $sql = 'SELECT count(*) FROM '.$GLOBALS['ecs']->table('comment').' where status=1 and id_value='.$goods_id;
    $res = $GLOBALS['db']->getOne($sql);
    return intval($res);
}

?>