Authored by Rock Zhang

Merge branch 'develop/wap' into beta/wap

@@ -473,19 +473,34 @@ $yohoPage.on('touchstart', '.btn-minus', function() { @@ -473,19 +473,34 @@ $yohoPage.on('touchstart', '.btn-minus', function() {
473 473
474 } else if (limitProductCode) { 474 } else if (limitProductCode) {
475 475
  476 + $(this).css('background-color', '#ccc').removeAttr('id');
  477 +
476 // 当前面板选择的是限购商品 478 // 当前面板选择的是限购商品
477 url = $('#limitProductPay').val() + '?limitproductcode=' + limitProductCode + '&sku=' + 479 url = $('#limitProductPay').val() + '?limitproductcode=' + limitProductCode + '&sku=' +
478 productSku + '&skn=' + skn + '&buy_number=' + buyNumber; 480 productSku + '&skn=' + skn + '&buy_number=' + buyNumber;
479 481
  482 + removePannel();
  483 + loading.showLoadingMask();
  484 +
480 // 调用接口判断商品是否可以购买 485 // 调用接口判断商品是否可以购买
481 $.ajax({ 486 $.ajax({
482 url: url 487 url: url
483 }).then(function(res) { 488 }).then(function(res) {
484 489
485 // 如果有错,则商品不可购买,执行页面刷新,否则跳到结算页面 490 // 如果有错,则商品不可购买,执行页面刷新,否则跳到结算页面
486 - res.error ? window.location.reload() : window.location.href = url; 491 + if (res.error) {
  492 + tip.show(res.message);
  493 + setTimeout(function() {
  494 + location.reload();
  495 + }, 2000);
  496 + } else {
  497 + location.href = url;
  498 + }
487 }).fail(function() { 499 }).fail(function() {
488 - window.location.reload(); 500 + tip.show('网络异常!');
  501 + setTimeout(function() {
  502 + location.reload();
  503 + }, 2000);
489 }); 504 });
490 505
491 return false; 506 return false;
@@ -318,9 +318,10 @@ class CartModel @@ -318,9 +318,10 @@ class CartModel
318 * @param string $sku 商品sku,用于限购商品购买 318 * @param string $sku 商品sku,用于限购商品购买
319 * @param stirng $skn 商品skn,用于限购商品购买 319 * @param stirng $skn 商品skn,用于限购商品购买
320 * @param int $buyNumber 购买商品数目,用户限购商品支付 320 * @param int $buyNumber 购买商品数目,用户限购商品支付
  321 + * @param bool $isAjax 是否是异步请求
321 * @return array 接口返回的数据 322 * @return array 接口返回的数据
322 */ 323 */
323 - public static function cartPay($uid, $cartType, $orderInfo, $limitProductCode, $sku, $skn, $buyNumber) 324 + public static function cartPay($uid, $cartType, $orderInfo, $limitProductCode, $sku, $skn, $buyNumber, $isAjax = false)
324 { 325 {
325 $result = array(); 326 $result = array();
326 327
@@ -345,6 +346,7 @@ class CartModel @@ -345,6 +346,7 @@ class CartModel
345 if (!$pay || $pay['code'] != 200 || empty($pay['data']['goods_list'])) { 346 if (!$pay || $pay['code'] != 200 || empty($pay['data']['goods_list'])) {
346 if ($isLimitGoods) { 347 if ($isLimitGoods) {
347 $result['error'] = true; 348 $result['error'] = true;
  349 + $result['message'] = $pay['message'];
348 } else { 350 } else {
349 $result['cartUrl'] = Helpers::url('/cart/index/index'); 351 $result['cartUrl'] = Helpers::url('/cart/index/index');
350 } 352 }
@@ -352,6 +354,10 @@ class CartModel @@ -352,6 +354,10 @@ class CartModel
352 break; 354 break;
353 } 355 }
354 356
  357 + if ($isAjax) { // 如果是异步请求,求直接返回,不进行下面的处理,从而优化性能
  358 + break;
  359 + }
  360 +
355 $payReturn = $pay['data']; 361 $payReturn = $pay['data'];
356 $address = array(); 362 $address = array();
357 $orderCompute = array(); 363 $orderCompute = array();
@@ -302,17 +302,16 @@ class IndexController extends AbstractAction @@ -302,17 +302,16 @@ class IndexController extends AbstractAction
302 302
303 // 购物车商品为空跳转到购物车页面 303 // 购物车商品为空跳转到购物车页面
304 $uid = $this->getUid(true); 304 $uid = $this->getUid(true);
305 - $order = CartModel::cartPay($uid, $cartType, $orderInfo, $limitProductCode, $sku, $skn, $buyNumber); 305 + $isAjax = $this->isAjax();
  306 + $order = CartModel::cartPay($uid, $cartType, $orderInfo, $limitProductCode, $sku, $skn, $buyNumber, $isAjax);
306 if (isset($order['cartUrl'])) { // 普通或者预售商品为空时 307 if (isset($order['cartUrl'])) { // 普通或者预售商品为空时
307 $this->go($order['cartUrl']); 308 $this->go($order['cartUrl']);
308 } 309 }
309 - if (isset($order['error'])) { // 限购商品支付接口返回为空或错误时  
310 - if ($this->isAjax()) {  
311 - $this->echoJson($order);  
312 - return;  
313 - } else {  
314 - $this->error();  
315 - } 310 +
  311 + // 限购商品支付接口返回为空或错误时(异步请求)
  312 + if ($isAjax) {
  313 + $this->echoJson($order);
  314 + return;
316 } 315 }
317 316
318 $data = array( 317 $data = array(