全球主机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1045|回复: 0

group_buy_stat调用ecshop团购商品数量

[复制链接]
发表于 2014-11-26 12:24:41 | 显示全部楼层 |阅读模式

在ecshop中,团购是ecshop的一个比较有特色的功能,在前台group_buy.php就是来处理ecshop团购信息的。包括购买行为和团购信息的列表。分析includes/lib_goods.php中的。group_buy_stat()函数,他的格式为下group_buy_stat($group_buy_id, $deposit)。第一个参数表示团购的ID,第二个参数就是保证金。
     /* 取得总订单数和总商品数 */
    $group_buy_id = intval($group_buy_id);
    $sql = "SELECT COUNT(*) AS total_order, SUM(g.goods_number) AS total_goods " .
            "FROM " . $GLOBALS['ecs']->table('order_info') . " AS o, " .
                $GLOBALS['ecs']->table('order_goods') . " AS g " .
            " WHERE o.order_id = g.order_id " .
            "AND o.extension_code = 'group_buy' " .
            "AND o.extension_id = '$group_buy_id' " .
            "AND (order_status = '" . OS_CONFIRMED . "' OR order_status = '" . OS_UNCONFIRMED . "')";
    $stat = $GLOBALS['db']->getRow($sql);
    if ($stat['total_order'] == 0)
    {
        $stat['total_goods'] = 0;
    }
    /* 取得有效订单数和有效商品数 */
    $deposit = floatval($deposit);
    if ($deposit > 0 && $stat['total_order'] > 0)
    {
        $sql .= " AND (o.money_paid + o.surplus) >= '$deposit'";
        $row = $GLOBALS['db']->getRow($sql);
        $stat['valid_order'] = $row['total_order'];
        if ($stat['valid_order'] == 0)
        {
            $stat['valid_goods'] = 0;
        }
        else
        {
            $stat['valid_goods'] = $row['total_goods'];
        }
    }
    else
    {
        $stat['valid_order'] = $stat['total_order'];
        $stat['valid_goods'] = $stat['total_goods'];
    }
    return $stat;
    他返回一个数组,其中就有团购商品的一些统计信息,包括购买数量,定单。等。
    所以,在首页,我们只需要取的ecshop团购信息的ext_info基本信息,通过unserialize()发放解析,然后通过group_buy_stat函数,就可以把相关的数据得到。而得到的total_goods字段,就是我们要取得的信息,团购商品买出去的总量。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|全球服务器论坛

GMT+8, 2024-4-26 22:05 , Processed in 2.418005 second(s), 19 queries , File On.

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表