...
|
...
|
@@ -23,6 +23,7 @@ class DetailModel |
|
|
* @param int $productId 商品ID SKN 和 ID 只需要传一个
|
|
|
* @param int $goodsId 某个颜色的商品
|
|
|
* @param int $uid 当前登录用户ID, 未登录为0
|
|
|
* @param int $vipLevel 用户VIP等级
|
|
|
* @param int $productSkn SKN 和 ID 只需要传一个
|
|
|
* @return array
|
|
|
*/
|
...
|
...
|
@@ -288,8 +289,14 @@ class DetailModel |
|
|
);
|
|
|
$soldOut = ($baseInfo['storage'] == 0) || ($baseInfo['status'] == 0 || $totalStorageNum === 0);
|
|
|
$notForSale = $baseInfo['attribute'] == 2;
|
|
|
|
|
|
// 是否为限购商品
|
|
|
$isLimited = ($baseInfo['isLimitBuy'] === 'Y');
|
|
|
|
|
|
|
|
|
|
|
|
// 显示加入购物车链接
|
|
|
if (!$soldOut && !$notForSale) {
|
|
|
if (!$soldOut && !$notForSale && !$isLimited) {
|
|
|
ksort($colorGroup, SORT_NUMERIC);
|
|
|
|
|
|
$result['cartInfo']['addToCartUrl'] = Helpers::url('/product/buy_' . $productId . '_' . $goodsId . '.html');
|
...
|
...
|
@@ -310,6 +317,21 @@ class DetailModel |
|
|
elseif ($soldOut) {
|
|
|
$result['cartInfo']['soldOut'] = true;
|
|
|
}
|
|
|
// 限购商品
|
|
|
elseif ($isLimited) {
|
|
|
// 是否开售
|
|
|
$isBeginSale = (isset($baseInfo['saleStatus']) && $baseInfo['saleStatus'] == 1);
|
|
|
// 限购商品有关的展示状态
|
|
|
$showStatus = 1;
|
|
|
if (isset($baseInfo['showStatus'])) {
|
|
|
$showStatus = intval($baseInfo['showStatus']);
|
|
|
}
|
|
|
|
|
|
// 处理限购商品有关的按钮状态
|
|
|
self::procShowStatus($result, $showStatus, $isBeginSale);
|
|
|
|
|
|
$result['cartInfo']['limitCodeUrl'] = 'yohobuy://' . Helpers::url('/product', array('skn' => $baseInfo['erpProductId']));
|
|
|
}
|
|
|
|
|
|
// 是否收藏
|
|
|
$result['isCollect'] = false;
|
...
|
...
|
@@ -715,4 +737,49 @@ class DetailModel |
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 处理限购商品的有关按钮状态(或取现购买以及底部商品购买按钮)
|
|
|
*
|
|
|
* @param array $data 需要处理的数据
|
|
|
* @param int $showStatus 限购商品的关联状态
|
|
|
* @param boolean $isBeginSale 限购商品是否已开售
|
|
|
*/
|
|
|
private static function procShowStatus(&$data, $showStatus, $isBeginSale)
|
|
|
{
|
|
|
switch($showStatus) {
|
|
|
case 1: // 开售前/后,立即分享获得限购码(用户未领取限购码)
|
|
|
// 显示获取限购码按钮
|
|
|
$data['canGetLimitCode'] = true;
|
|
|
|
|
|
if ($isBeginSale) { // 开售后
|
|
|
$data['cartInfo']['noLimitCode'] = true;
|
|
|
} else {
|
|
|
$data['cartInfo']['limitNotForSale'] = true;
|
|
|
}
|
|
|
break;
|
|
|
case 2: // 开售后,限购码已抢光(用户未领取限购码)
|
|
|
$data['codeEmpty'] = true;
|
|
|
$data['cartInfo']['noLimitCode'] = true;
|
|
|
break;
|
|
|
case 3: // 开售后,商品已经售罄
|
|
|
$data['noLimitGoodsBtn'] = true;
|
|
|
$data['cartInfo']['soldOut'] = true;
|
|
|
break;
|
|
|
case 4: // 开售后,立即购买(用户已领取限购码)
|
|
|
$data['gotCode'] = true;
|
|
|
$data['cartInfo']['canBuyLimit'] = true;
|
|
|
break;
|
|
|
case 5: // 开售前,限购码已被抢光(用户未领取限购码)
|
|
|
$data['codeEmpty'] = true;
|
|
|
$data['cartInfo']['limitNotForSale'] = true;
|
|
|
break;
|
|
|
case 6: // 开售前,即将开售(用户已领取限购码)
|
|
|
$data['gotCode'] = true;
|
|
|
$data['cartInfo']['limitNotForSale'] = true;
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} |
...
|
...
|
|