Пример #1
0
function getProducts($products)
{
    foreach ($products as $k => $product) {
        $skus = ProductsSku::getItemSkus($product['item']);
        $min = 100000.0;
        $max = 0.0;
        $price = '';
        foreach ($skus as $sku) {
            if ($min > $sku['current_price']) {
                $min = $sku['current_price'];
            }
            if ($max < $sku['current_price']) {
                $max = $sku['current_price'];
            }
        }
        if ($min == $max) {
            $price = $min;
        } else {
            $price = "{$min} ~ {$max}";
        }
        $products[$k]['price'] = $price;
        if (!isset($products[$k]['pics']) || !$products[$k]['pics']) {
            $path = '';
            foreach ($skus as $sku) {
                $pic = ProductsPic::getOne(array('sku' => $sku['sku']), 'path', 'sort DESC');
                $path = isset($pic['path']) ? $pic['path'] : '';
                if ($path) {
                    break;
                }
            }
            $products[$k]['pics'] = $path;
        }
    }
    return $products;
}
Пример #2
0
 public static function getOrderSku($order_code)
 {
     if (!$order_code) {
         return array();
     }
     $table = self::table();
     $sku_table = ProductsSku::table();
     $item_table = ProductsItem::table();
     $pic_table = ProductsPic::table();
     $sql = "SELECT c.title, b.sku, b.sku_name, b.item, b.current_price, SUM(a.product_num) AS product_num\n\t\tFROM {$table} AS a, {$sku_table} AS b, {$item_table} AS c\n\t\tWHERE c.item=b.item AND a.product_sku=b.sku AND a.order_code='{$order_code}' GROUP BY a.product_sku";
     $rs = DB::GetQueryResult($sql, false);
     return $rs;
 }
Пример #3
0
 public static function getLists($user_id, $page, $page_size)
 {
     $user_id = (int) $user_id;
     if (!$user_id) {
         return array();
     }
     $table = self::table();
     $sku_table = ProductsSku::table();
     $item_table = ProductsItem::table();
     $sql = " SELECT a.id, b.id AS skuid, c.title, b.sku, b.sku_name, b.current_price FROM {$table} AS a, {$sku_table} AS b, {$item_table} AS c WHERE b.item=c.item AND a.sku_id=b.id AND a.user_id='{$user_id}' ORDER BY a.id DESC";
     $lists = Paging::bySQL($sql, $page, $page_size, 'a');
     ProductsSku::getProductsPic($lists['data']);
     return $lists;
 }
Пример #4
0
 public static function getProducts($user_id)
 {
     $user_id = (int) $user_id;
     if (!$user_id) {
         return array();
     }
     $rs = self::getList("user_id='{$user_id}' AND status=0", 'sku_id, qt', 'update_time DESC');
     foreach ($rs as $k => $v) {
         $rs[$k]['sku'] = $skus = ProductsSku::getData($v['sku_id']);
         $pic = ProductsPic::getOne(array('sku' => $skus['sku']), 'path', 'sort DESC');
         $rs[$k]['sku']['pic'] = $pic['path'];
         $item = ProductsSku::getSkuItem($skus['item'], 'title');
         $rs[$k]['sku']['title'] = $item['title'];
     }
     return $rs;
 }
Пример #5
0
 public static function getSkuItem($sku)
 {
     if (!$sku) {
         return array();
     }
     $sku = ProductsSku::getOne(array('sku' => $sku), 'item, sku_name');
     $item = $sku['item'];
     $sku_name = $sku['sku_name'];
     if (!$item) {
         return array();
     }
     $items = self::getOne(array('item' => $item));
     if (!$items) {
         return array();
     }
     $items['sku_name'] = $sku_name;
     return $items;
 }
Пример #6
0
 public static function getProductsItemTitle(&$products)
 {
     foreach ($products as $k => $p) {
         $it = isset($p['item']) ? $p['item'] : '';
         if (!$it) {
             $sku = isset($p['sku']) ? $p['sku'] : '';
             if (!$sku) {
                 continue;
             }
             $its = self::getOne(array('sku' => $sku), 'id, item, sku_name');
             $it = $its['item'];
             $products[$k]['sku_name'] = $its['sku_name'];
             $products[$k]['skuid'] = $its['id'];
         }
         $item = ProductsSku::getSkuItem($it, 'title');
         $products[$k]['title'] = $item['title'];
     }
     return $products;
 }
Пример #7
0
 public static function getProductViewLog($userid, $exclude_id = 0)
 {
     if (!$userid) {
         return array();
     }
     $module_id = ProductsSku::$module_id;
     $rs = self::getList("module_id='{$module_id}'", 'log', 'create_time DESC LIMIT 100');
     $result = array();
     foreach ($rs as $r) {
         $res = json_decode($r['log'], true);
         if ('view' !== $res['op']) {
             continue;
         }
         $result[] = $res['id'];
     }
     $result = array_flip($result);
     $result = array_flip($result);
     $skuids = implode(',', $result);
     return ProductsSku::getSkusByIds($skuids, $exclude_id);
 }
Пример #8
0
        */
        for ($j = $i + 1; $j < $len; $j++) {
            if ($products[$i]['sku'] == $products[$j]['sku']) {
                $products[$i]['outstock'][] = array('product_num' => $products[$j]['product_num'], 'exp_date' => $products[$j]['exp_date']);
                $tmp[$j] = $j;
            }
        }
        $products[$i]['outstock'][] = array('product_num' => $products[$i]['product_num'], 'exp_date' => $products[$i]['exp_date']);
        unset($products[$i]['product_num'], $products[$i]['exp_date']);
    }
    foreach ($tmp as $pk => $v) {
        if (isset($products[$pk])) {
            unset($products[$pk]);
        }
    }
    ProductsSku::getProductsPic($products);
    $orders[$k]['products'] = $products;
    $status_name = OrdersStatus::getName($order['order_status']);
    $orders[$k]['status_name'] = $status_name;
}
if ((int) $stardate > 0 && (int) $enddate > 0) {
    $stardate = date('Y-m-d', $stardate);
    $enddate = date('Y-m-d', $enddate);
}
Templates::Assign('stardate', $stardate);
Templates::Assign('enddate', $enddate);
Templates::Assign('keyword', $keyword);
Templates::Assign('paged', $paged);
Templates::Assign('orders', $orders);
Templates::Assign('ordercount', Orders::getUserOrderNum($user_code));
Templates::Assign('status', $status);
Пример #9
0
    if (!$item) {
        header("Location: /html/404.html?005");
        exit;
    }
    $sku['iteminfo'] = $item;
    $sku_code = $sku['sku'];
    $pics = ProductsPic::getSkuPics($sku_code, 'path', 'sort DESC LIMIT 0,3');
    $sku['pics'] = $pics;
    $sku['order_num'] = OrdersProducts::getSkuAllNum($sku_code);
    $sku['stock'] = ProductsStock::getSkuStock($sku_code);
    $skus = ProductsSku::getItemSkus($item_code, "id,sku,sku_name");
    $skus = ProductsSku::getProductsPic($skus);
    $sku['skus'] = $skus;
    $userid = isset($_SESSION['userid']) ? (int) $_SESSION['userid'] : 0;
    $history = array();
    if ($userid) {
        $history = UsersHistory::getProductViewLog($userid, $id);
    }
    if (!$history) {
        $history = ProductsSku::getRand($item_code);
    }
    $history = ProductsSku::getProductsPic($history);
    $history = ProductsSku::getProductsItemTitle($history);
    ProductsSku::increase("id={$id}", 'view_num');
    $log = array('op' => 'view', 'id' => $id, 'url' => Func::getCurrentURL());
    $log = json_encode($log);
    UsersHistory::addLog($userid, ProductsSku::$module_id, $log);
    Templates::Assign('history', $history);
    Templates::Assign('sku', $sku);
    Templates::Display('product.html');
}
Пример #10
0
$userid = isset($_SESSION['userid']) ? (int) $_SESSION['userid'] : 0;
$product_ids = isset($_POST['product_ids']) ? $_POST['product_ids'] : array();
$qts = isset($_POST['qts']) ? $_POST['qts'] : array();
$skus = array();
$total = 0.0;
foreach ($product_ids as $sku_id => $product_id) {
    $qt = isset($qts[$sku_id]) ? (int) $qts[$sku_id] : 0;
    if ($qt < 1) {
        continue;
    }
    $skus[$sku_id]['qt'] = $qt;
    $skus[$sku_id]['info'] = $info = ProductsSku::getData($sku_id);
    $current_price = isset($info['current_price']) ? $info['current_price'] : 0.0;
    $pic = ProductsPic::getOne(array('sku' => $info['sku']), 'path', 'sort DESC');
    $skus[$sku_id]['info']['pic'] = $pic['path'];
    $item = ProductsSku::getSkuItem($info['item'], 'title');
    $skus[$sku_id]['info']['title'] = $item['title'];
    $total = $total + $qt * $current_price;
}
//var_dump($product_ids,$skus);exit;
$userlevel = Users::getLevel($userid);
$discount = $userlevel['discount'];
$newtotal = $total * $discount;
$address = ReceiverAddress::getInfoByUser($userid);
//var_dump($address);
$yunfei = 0.0;
$token = ABase::token();
Templates::Assign('yunfei', $yunfei);
Templates::Assign('token', $token);
Templates::Assign('address', $address);
Templates::Assign('userlevel', $userlevel);
Пример #11
0
$order_bh = Orders::getOne(array('order_code' => $bh_order_code));
if ($order_bh) {
    $time = $order_bh['create_time'];
    $time = date('Y-m-d H:i:s', $time);
    Templates::Assign('errormsg', "订单已在 {$time} 补过一次货,不能再补货了。");
    Templates::Display('error.html');
    exit;
}
switch ($action) {
    case 'save':
        save();
        break;
    default:
        $products = OrdersBH::getList("user='******' AND order_code='{$order_code}' AND status=0");
        ProductsSku::getProductsPic($products);
        ProductsSku::getProductsItemTitle($products);
        //var_dump($products);exit;
        Templates::Assign('products', $products);
        Templates::Assign('productlen', count($products));
        Templates::Assign('order_code', $order_code);
        Templates::Display('replen.html');
}
function save()
{
    $ids = isset($_REQUEST['ids']) ? $_REQUEST['ids'] : array();
    $order_code = isset($_REQUEST['order_code']) ? $_REQUEST['order_code'] : '';
    $user_code = isset($_SESSION['user_code']) ? $_SESSION['user_code'] : '';
    $bh_order_code = str_replace('SK', 'BH', $order_code);
    $order_bh = Orders::getOne(array('order_code' => $bh_order_code));
    if ($order_bh) {
        $time = $order_bh['create_time'];
Пример #12
0
 public static function getOrderPrducts($order_code)
 {
     if (!$order_code) {
         return array();
     }
     //-- 处理重复ORDER SKU, 同一个SKU有不同批号时会出现重复
     $tmp = array();
     $products = OrdersProducts::getUserProducts($order_code);
     for ($i = 0; $i < count($products); $i++) {
         $products[$i]['outstock'][] = array('product_num' => $products[$i]['product_num'], 'exp_date' => $products[$i]['exp_date']);
         for ($j = $i + 1; $j < count($products); $j++) {
             if ($products[$i]['sku'] == $products[$j]['sku']) {
                 $products[$i]['outstock'][] = array('product_num' => $products[$j]['product_num'], 'exp_date' => $products[$j]['exp_date']);
                 $tmp[$j] = $j;
             }
         }
     }
     foreach ($tmp as $k => $v) {
         if (isset($products[$k])) {
             unset($products[$k]);
         }
     }
     //-- END 处理重复ORDER SKU
     ProductsSku::getProductsPic($products);
     //var_dump($products);
     return $products;
 }
Пример #13
0
 $len = count($sku_ids);
 if ($len > 1) {
     $title = "合并| {$len} 笔订单";
 }
 $newtotal = $total * $discount;
 $address = ReceiverAddress::getData($addressid);
 unset($address['id']);
 $address['module_id'] = 3;
 //---DB::Debug();
 DB::tranBegin('pay');
 //事务开始
 $address_id = ReceiverAddress::insert($address);
 $data = array('order_code' => $order_code, 'user_code' => $user_code, 'discount' => $discount, 'amount' => $newtotal, 'receiver_address_id' => $address_id, 'create_time' => time());
 $order_id = Orders::insert($data);
 foreach ($sku_ids as $sku_id => $qt) {
     $product_sku = ProductsSku::getData($sku_id, 'sku');
     $product_sku = isset($product_sku['sku']) ? $product_sku['sku'] : '';
     $stocknum = ProductsStock::getSkuStock($product_sku);
     if (!$product_sku || $stocknum < $qt) {
         DB::rollBack();
         Templates::Assign('errormsg', "订单保存失败,[{$product_sku}] 库存不足,错误代码 PY001");
         Templates::Display('error.html');
         exit;
     }
     $data = array('order_code' => $order_code, 'product_sku' => $product_sku, 'product_num' => $qt);
     OrdersProducts::insert($data);
     Cart::clearCart($userid, $sku_id);
     $locked = ProductsStockLock::add($order_code, $product_sku, $qt);
     if (!$locked) {
         break;
     }