Authored by 周少峰

add method

@@ -468,4 +468,25 @@ class CartData @@ -468,4 +468,25 @@ class CartData
468 return Yohobuy::get(API_URL, $param); 468 return Yohobuy::get(API_URL, $param);
469 } 469 }
470 470
  471 + /**
  472 + * 添加电子票
  473 + * @param int $uid
  474 + * @param int $productSku
  475 + * @param int $buyNumber
  476 + * @param int $useYohoCoin
  477 + * @author sefon 2016-7-2 18:12:30
  478 + * @return array
  479 + */
  480 + public static function addTickets ($uid, $productSku, $buyNumber, $useYohoCoin = 0)
  481 + {
  482 + $param = Yohobuy::param();
  483 + $param['method'] = 'app.shopping.ticket';
  484 + $param['uid'] = $uid;
  485 + $param['product_sku'] = $productSku;
  486 + $param['buy_number'] = $buyNumber;
  487 + $param['use_yoho_coin'] = $useYohoCoin;
  488 + $param['client_secret'] = Sign::getSign($param);
  489 +// return Yohobuy::get(API_URL, $param);
  490 + return Yohobuy::get('dev', $param);
  491 + }
471 } 492 }
@@ -37,7 +37,9 @@ var $chosePanel = $('#chose-panel'), @@ -37,7 +37,9 @@ var $chosePanel = $('#chose-panel'),
37 $choseArea, 37 $choseArea,
38 $cartBar, 38 $cartBar,
39 $soonSoldOut = $('.soonSoldOut-tag'), 39 $soonSoldOut = $('.soonSoldOut-tag'),
40 - $yohoPage = $('.yoho-page'); 40 + $yohoPage = $('.yoho-page'),
  41 + //门票 限购数量
  42 + ticketsLimit = $('#limitNum').val();
41 43
42 // 购物车编辑标相关变量 44 // 购物车编辑标相关变量
43 var isEdit, 45 var isEdit,
@@ -173,7 +175,7 @@ function updateConformButtonClassAndText() { @@ -173,7 +175,7 @@ function updateConformButtonClassAndText() {
173 $chosed = $allChoseItems.find('.chosed'); 175 $chosed = $allChoseItems.find('.chosed');
174 if (2 === $chosed.closest('.zero-stock').length) { 176 if (2 === $chosed.closest('.zero-stock').length) {
175 $('#chose-btn-sure').css('background-color', '#c0c0c0').html('已售罄'); 177 $('#chose-btn-sure').css('background-color', '#c0c0c0').html('已售罄');
176 - } else if (limitProductCode) { 178 + } else if (limitProductCode || ticketsLimit) {
177 $('#chose-btn-sure').css('background-color', '#eb0313').html('立即购买'); 179 $('#chose-btn-sure').css('background-color', '#eb0313').html('立即购买');
178 } else { 180 } else {
179 $('#chose-btn-sure').css('background-color', '#eb0313').html(isEdit ? '确认' : '加入购物车'); 181 $('#chose-btn-sure').css('background-color', '#eb0313').html(isEdit ? '确认' : '加入购物车');
@@ -183,7 +185,14 @@ function updateConformButtonClassAndText() { @@ -183,7 +185,14 @@ function updateConformButtonClassAndText() {
183 //显示剩余件数 185 //显示剩余件数
184 function displayGoodNum(curGoodNum) { 186 function displayGoodNum(curGoodNum) {
185 187
186 - //数量大于0 188 + //门票限购
  189 + if (ticketsLimit && curGoodNum > ticketsLimit) {
  190 + $allChoseItems.find('.num .left-num').html('限购' + ticketsLimit + '件');
  191 + $leftNum.val(curGoodNum);
  192 + return;
  193 + }
  194 +
  195 + //数量大于
187 if (curGoodNum > 0) { 196 if (curGoodNum > 0) {
188 if ($soonSoldOut.length > 0) { 197 if ($soonSoldOut.length > 0) {
189 $allChoseItems.find('.num .left-num').html('即将售罄'); 198 $allChoseItems.find('.num .left-num').html('即将售罄');
@@ -247,6 +256,30 @@ function changeColorChosed(newColorIndex) { @@ -247,6 +256,30 @@ function changeColorChosed(newColorIndex) {
247 return 0; 256 return 0;
248 } 257 }
249 258
  259 +//添加门票
  260 +function addTickets(productSku, buyNumber) {
  261 + var data = {
  262 + productSku: productSku,
  263 + buyNumber: buyNumber
  264 + }
  265 +
  266 + //添加电子票
  267 + $.ajax({
  268 + url: '/cart/index/cart',
  269 + dataType: 'json',
  270 + data: data,
  271 + type: 'post',
  272 + success: function (addRestult) {
  273 + //调整订单确认页
  274 + window.location.href = '/cart/index/orderEnsure?cartType=tickets';
  275 + },
  276 + error: function () {
  277 + tip.show('网络异常~');
  278 + }
  279 +
  280 + });
  281 +}
  282 +
250 init(); 283 init();
251 284
252 285
@@ -296,7 +329,6 @@ $yohoPage.on('touchstart', '.color-list .block', function() { @@ -296,7 +329,6 @@ $yohoPage.on('touchstart', '.color-list .block', function() {
296 329
297 //老的选中尺码去掉勾选,新的选中尺码加上勾选 330 //老的选中尺码去掉勾选,新的选中尺码加上勾选
298 curGoodNum = changeSizeChosed(index + 1); 331 curGoodNum = changeSizeChosed(index + 1);
299 -  
300 // 显示剩余数量 332 // 显示剩余数量
301 displayGoodNum(curGoodNum); 333 displayGoodNum(curGoodNum);
302 334
@@ -402,9 +434,10 @@ $yohoPage.on('touchstart', '.btn-minus', function() { @@ -402,9 +434,10 @@ $yohoPage.on('touchstart', '.btn-minus', function() {
402 434
403 $num.val(num - 1); 435 $num.val(num - 1);
404 }).on('touchstart', '.btn-plus', function() { 436 }).on('touchstart', '.btn-plus', function() {
405 - var num = parseInt($num.val(), 10); 437 + var num = parseInt($num.val(), 10),
  438 + maxTips = ticketsLimit ? '每人只可购买' + ticketsLimit + '张当日门票' : '您选择的数量超过了最大库存量~';
406 439
407 - leftNum = $('#left-num').val(); 440 + leftNum = ticketsLimit || $('#left-num').val();
408 441
409 if (!checkColorSizeNum()) { 442 if (!checkColorSizeNum()) {
410 return; 443 return;
@@ -416,7 +449,7 @@ $yohoPage.on('touchstart', '.btn-minus', function() { @@ -416,7 +449,7 @@ $yohoPage.on('touchstart', '.btn-minus', function() {
416 449
417 //TODO:库存数验证 450 //TODO:库存数验证
418 if (num > leftNum - 1) { 451 if (num > leftNum - 1) {
419 - tip.show('您选择的数量超过了最大库存量~'); 452 + tip.show(maxTips);
420 return; 453 return;
421 } 454 }
422 $num.val(num + 1); 455 $num.val(num + 1);
@@ -461,6 +494,12 @@ $yohoPage.on('touchstart', '.btn-minus', function() { @@ -461,6 +494,12 @@ $yohoPage.on('touchstart', '.btn-minus', function() {
461 confirming = true; 494 confirming = true;
462 loading.showLoadingMask(); 495 loading.showLoadingMask();
463 496
  497 + //立即购买门票
  498 + if (ticketsLimit) {
  499 + addTickets(productSku, buyNumber);
  500 + return;
  501 + }
  502 +
464 //针对是否处于编辑模式设置不同的url和需要post的数据 503 //针对是否处于编辑模式设置不同的url和需要post的数据
465 if (isEdit) { 504 if (isEdit) {
466 cartGoodData = { 505 cartGoodData = {
@@ -24,10 +24,6 @@ @@ -24,10 +24,6 @@
24 padding: 0 22px; 24 padding: 0 22px;
25 } 25 }
26 26
27 - .tickets {  
28 -  
29 - }  
30 -  
31 .chose-items { 27 .chose-items {
32 height: 325px; 28 height: 325px;
33 overflow: auto; 29 overflow: auto;
@@ -189,4 +185,12 @@ @@ -189,4 +185,12 @@
189 border: none; 185 border: none;
190 } 186 }
191 } 187 }
  188 +
  189 + .tickets-info {
  190 +
  191 + span.left-num {
  192 + color: #e10;
  193 + }
  194 + }
  195 +
192 } 196 }
@@ -183,5 +183,12 @@ @@ -183,5 +183,12 @@
183 <input type="hidden" name="loginUrl" id="loginUrl" value="{{.}}"> 183 <input type="hidden" name="loginUrl" id="loginUrl" value="{{.}}">
184 {{/loginUrl}} 184 {{/loginUrl}}
185 185
  186 + {{#if tickets}}
  187 + <form name="buyNow" method="post" action="{{buyNowUrl}}">
  188 + <input type="hidden" name="productId">
  189 + <input type="hidden" name="buyNumber">
  190 + </form>
  191 + {{/if}}
  192 +
186 </div> 193 </div>
187 {{> layout/footer}} 194 {{> layout/footer}}
@@ -7,6 +7,7 @@ use Index\UserModel; @@ -7,6 +7,7 @@ use Index\UserModel;
7 use Plugin\Helpers; 7 use Plugin\Helpers;
8 use Plugin\UnionTrans; 8 use Plugin\UnionTrans;
9 use Home\OrderModel; 9 use Home\OrderModel;
  10 +use LibModels\Wap\Home\CartData;
10 use Plugin\UdpLog; 11 use Plugin\UdpLog;
11 12
12 /** 13 /**
@@ -573,4 +574,23 @@ class IndexController extends AbstractAction @@ -573,4 +574,23 @@ class IndexController extends AbstractAction
573 $this->_view->display('jit-detail', $data); 574 $this->_view->display('jit-detail', $data);
574 } 575 }
575 576
  577 + /**
  578 + * 电子票添加
  579 + *
  580 + */
  581 + public function addTickets()
  582 + {
  583 + if (!$this->isAjax()) {
  584 + exit;
  585 + }
  586 + $uid = $this->getUid();
  587 + if (!$uid) {
  588 + exit;
  589 + }
  590 + $productSku = $this->post('$productSku');
  591 + $buyNumber = $this->post('$buyNumber');
  592 + $this->echoJson(CartData::addTickets($uid, $productSku, $buyNumber));
  593 + }
  594 +
  595 +
576 } 596 }
@@ -51,9 +51,10 @@ class DetailController extends AbstractAction @@ -51,9 +51,10 @@ class DetailController extends AbstractAction
51 if (!$this->isApp()){ 51 if (!$this->isApp()){
52 $this->setNavHeader('商品详情'); 52 $this->setNavHeader('商品详情');
53 } 53 }
54 - // 渲染模板 TODO 54 +
55 //门票 55 //门票
56 $data['tickets'] = true; 56 $data['tickets'] = true;
  57 + $data['buyNowurl'] = Helpers::url('/cart/index/buyNow');
57 $data['cartInfo']['colorName'] = $data['tickets'] ? '日期' : '颜色'; 58 $data['cartInfo']['colorName'] = $data['tickets'] ? '日期' : '颜色';
58 $data['cartInfo']['sizeName'] = $data['tickets'] ? '区域' : '尺码'; 59 $data['cartInfo']['sizeName'] = $data['tickets'] ? '区域' : '尺码';
59 //单日票 60 //单日票
@@ -61,8 +62,10 @@ class DetailController extends AbstractAction @@ -61,8 +62,10 @@ class DetailController extends AbstractAction
61 //套票 62 //套票
62 // $data['package'] = true; 63 // $data['package'] = true;
63 //购票限制 64 //购票限制
64 - $data['cartInfo']['limit'] = '10'; 65 + $data['cartInfo']['limit'] = '4';
65 // print_r($data); exit; 66 // print_r($data); exit;
  67 +
  68 + // 渲染模板 TODO
66 $this->_view->display('index', $data); 69 $this->_view->display('index', $data);
67 } 70 }
68 71