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; }
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; }
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; }
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; }
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; }
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; }
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); }
*/ 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);
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'); }
$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);
$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'];
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; }
$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; }