Authored by htoooth

add controller brand

@@ -5,8 +5,8 @@ @@ -5,8 +5,8 @@
5 5
6 const helpers = require(`${library}/helpers`); 6 const helpers = require(`${library}/helpers`);
7 7
8 -const mRoot = '../models';  
9 -const service = require(`${mRoot}/favorite-service`); 8 +const brandService = require('../models/favorite-brand-service');
  9 +const productService = require('../models/favorite-product-service');
10 10
11 /** 11 /**
12 * 收藏品牌ajax请求 12 * 收藏品牌ajax请求
@@ -14,10 +14,11 @@ const service = require(`${mRoot}/favorite-service`); @@ -14,10 +14,11 @@ const service = require(`${mRoot}/favorite-service`);
14 module.exports.changeFavoriteBrand = (req, res, next) => { 14 module.exports.changeFavoriteBrand = (req, res, next) => {
15 // TODO: uid get 15 // TODO: uid get
16 let uid = ''; 16 let uid = '';
  17 +
17 let brandId = req.body.brandId; 18 let brandId = req.body.brandId;
18 19
19 if (uid && brandId) { 20 if (uid && brandId) {
20 - service.changeAsync(uid, brandId).then(result => { 21 + brandService.changeAsync(uid, brandId).then(result => {
21 res.json(result) 22 res.json(result)
22 }).catch(next); 23 }).catch(next);
23 } else if (!uid) { 24 } else if (!uid) {
@@ -35,3 +36,55 @@ module.exports.changeFavoriteBrand = (req, res, next) => { @@ -35,3 +36,55 @@ module.exports.changeFavoriteBrand = (req, res, next) => {
35 }); 36 });
36 } 37 }
37 }; 38 };
  39 +
  40 +module.exports.collectProduct = (req, res, next) => {
  41 + // TODO: uid get
  42 + let uid = '';
  43 +
  44 + let pid = req.body.productId;
  45 +
  46 + let type = req.body.type || 'add';
  47 +
  48 + if (uid && pid) {
  49 + switch (type) {
  50 + case 'add':
  51 + {
  52 + productService.createAsync(uid, pid).then(result => {
  53 + if (result.code === 413) {
  54 + result.message = '该商品已经收藏';
  55 + }
  56 +
  57 + res.json(result);
  58 + }).catch(next);
  59 + break;
  60 + }
  61 + case 'cancel':
  62 + {
  63 + productService.deleteAsync(uid, pid)
  64 + .then(result => res.json(result))
  65 + .catch(next);
  66 + break;
  67 + }
  68 + default:
  69 + {
  70 + res.json({
  71 + code: 400,
  72 + message: '错误类型'
  73 + });
  74 + }
  75 + }
  76 + } else if (!uid) {
  77 + res.json({
  78 + code: 403,
  79 + message: '用户没有登录',
  80 + data: {
  81 + url: helpers.urlFormat('/signin.html')
  82 + }
  83 + })
  84 + } else {
  85 + res.json({
  86 + code: 400,
  87 + message: '收藏失败'
  88 + })
  89 + }
  90 +};
@@ -12,8 +12,8 @@ const cRoot = './controllers'; @@ -12,8 +12,8 @@ const cRoot = './controllers';
12 // 商品详情controller 12 // 商品详情controller
13 const detail = require(`${cRoot}/detail`); 13 const detail = require(`${cRoot}/detail`);
14 14
15 -// 收藏品牌  
16 -const favorite = require(`${cRoot}/favorite-brand`); 15 +// 收藏品牌,商品,店铺
  16 +const favorite = require(`${cRoot}/favorite`);
17 17
18 // 商品促销controller 18 // 商品促销controller
19 const sale = require(`${cRoot}/sale`); 19 const sale = require(`${cRoot}/sale`);
@@ -50,5 +50,6 @@ router.get('/detail/hotarea', detail.indexHotArea); @@ -50,5 +50,6 @@ router.get('/detail/hotarea', detail.indexHotArea);
50 50
51 // 收藏品牌 51 // 收藏品牌
52 router.post('/index/favoriteBrand', favorite.changeFavoriteBrand); 52 router.post('/index/favoriteBrand', favorite.changeFavoriteBrand);
  53 +router.post('/item/togglecollect', favorite.collectProduct);
53 54
54 module.exports = router; 55 module.exports = router;
@@ -103,7 +103,7 @@ function showSizeWarn() { @@ -103,7 +103,7 @@ function showSizeWarn() {
103 } 103 }
104 104
105 // size title 105 // size title
106 -(function() { 106 +(function () {
107 var $sizeTitleJson = $('#size-title-json'), 107 var $sizeTitleJson = $('#size-title-json'),
108 jsonHtml = $sizeTitleJson.html(), 108 jsonHtml = $sizeTitleJson.html(),
109 sizeTitle; 109 sizeTitle;
@@ -117,7 +117,7 @@ function showSizeWarn() { @@ -117,7 +117,7 @@ function showSizeWarn() {
117 // 数据获取后删除 117 // 数据获取后删除
118 $sizeTitleJson.remove(); 118 $sizeTitleJson.remove();
119 119
120 - $sizes.children('li').each(function() { 120 + $sizes.children('li').each(function () {
121 var $this = $(this), 121 var $this = $(this),
122 key = $this.data('name'); 122 key = $this.data('name');
123 123
@@ -129,7 +129,7 @@ function showSizeWarn() { @@ -129,7 +129,7 @@ function showSizeWarn() {
129 thumbsLoaded[$('.colors .focus').index()] = true; 129 thumbsLoaded[$('.colors .focus').index()] = true;
130 130
131 // 品牌收藏 131 // 品牌收藏
132 -$('#brand-favour').click(function() { 132 +$('#brand-favour').click(function () {
133 var $this = $(this); 133 var $this = $(this);
134 134
135 $.ajax({ 135 $.ajax({
@@ -138,7 +138,7 @@ $('#brand-favour').click(function() { @@ -138,7 +138,7 @@ $('#brand-favour').click(function() {
138 data: { 138 data: {
139 brandId: $this.data('id') 139 brandId: $this.data('id')
140 } 140 }
141 - }).then(function(data) { 141 + }).then(function (data) {
142 if (data.code === 200) { 142 if (data.code === 200) {
143 $this.toggleClass('coled'); 143 $this.toggleClass('coled');
144 } else if (data.code === 403) { 144 } else if (data.code === 403) {
@@ -148,7 +148,7 @@ $('#brand-favour').click(function() { @@ -148,7 +148,7 @@ $('#brand-favour').click(function() {
148 }); 148 });
149 149
150 // 颜色 150 // 颜色
151 -$('.colors').on('click', 'li', function() { 151 +$('.colors').on('click', 'li', function () {
152 var $this = $(this), 152 var $this = $(this),
153 index = $this.index(); 153 index = $this.index();
154 154
@@ -203,12 +203,12 @@ $('.colors').on('click', 'li', function() { @@ -203,12 +203,12 @@ $('.colors').on('click', 'li', function() {
203 }); 203 });
204 204
205 // 缩略图鼠标移入显示 205 // 缩略图鼠标移入显示
206 -$('#thumbs').on('mouseenter', '.thumb', function() { 206 +$('#thumbs').on('mouseenter', '.thumb', function () {
207 imgShow($(this).data('shower')); 207 imgShow($(this).data('shower'));
208 }); 208 });
209 209
210 // 尺码 210 // 尺码
211 -$size.on('click', 'li', function() { 211 +$size.on('click', 'li', function () {
212 var $this = $(this); 212 var $this = $(this);
213 213
214 if ($this.hasClass('focus')) { 214 if ($this.hasClass('focus')) {
@@ -227,7 +227,7 @@ $size.on('click', 'li', function() { @@ -227,7 +227,7 @@ $size.on('click', 'li', function() {
227 switchBtnStatus(); 227 switchBtnStatus();
228 228
229 resetNum(); 229 resetNum();
230 -}).on('click', '.size-ruler', function() { 230 +}).on('click', '.size-ruler', function () {
231 231
232 // 尺码帮助 232 // 尺码帮助
233 233
@@ -237,7 +237,7 @@ $size.on('click', 'li', function() { @@ -237,7 +237,7 @@ $size.on('click', 'li', function() {
237 }); 237 });
238 238
239 // 数量 239 // 数量
240 -$plusNum.click(function() { 240 +$plusNum.click(function () {
241 var num = getNum(); 241 var num = getNum();
242 242
243 if ($(this).hasClass('dis')) { 243 if ($(this).hasClass('dis')) {
@@ -266,11 +266,11 @@ $plusNum.click(function() { @@ -266,11 +266,11 @@ $plusNum.click(function() {
266 } 266 }
267 267
268 $num.text(num + 1 > maxStock ? maxStock : num + 1); 268 $num.text(num + 1 > maxStock ? maxStock : num + 1);
269 -}).on('selectstart', function() { 269 +}).on('selectstart', function () {
270 return false; 270 return false;
271 }); 271 });
272 272
273 -$minusNum.click(function() { 273 +$minusNum.click(function () {
274 var num = getNum(); 274 var num = getNum();
275 275
276 if ($(this).hasClass('dis')) { 276 if ($(this).hasClass('dis')) {
@@ -288,19 +288,19 @@ $minusNum.click(function() { @@ -288,19 +288,19 @@ $minusNum.click(function() {
288 } 288 }
289 289
290 $num.text(num - 1 < 0 ? 0 : num - 1); 290 $num.text(num - 1 < 0 ? 0 : num - 1);
291 -}).on('selectstart', function() { 291 +}).on('selectstart', function () {
292 return false; 292 return false;
293 }); 293 });
294 294
295 // 限购码 295 // 限购码
296 -$('.get-lc:not(.dis)').hover(function() { 296 +$('.get-lc:not(.dis)').hover(function () {
297 $lcContainer.removeClass('hide'); 297 $lcContainer.removeClass('hide');
298 -}, function() { 298 +}, function () {
299 $lcContainer.addClass('hide'); 299 $lcContainer.addClass('hide');
300 }); 300 });
301 301
302 // 加入购物车 302 // 加入购物车
303 -$addToCart.click(function() { 303 +$addToCart.click(function () {
304 if (maxStock === -1) { 304 if (maxStock === -1) {
305 showSizeWarn(); 305 showSizeWarn();
306 return; 306 return;
@@ -313,7 +313,7 @@ $addToCart.click(function() { @@ -313,7 +313,7 @@ $addToCart.click(function() {
313 productSku: $('.size:not(.hide) li.focus').data('sku'), 313 productSku: $('.size:not(.hide) li.focus').data('sku'),
314 buyNumber: getNum() 314 buyNumber: getNum()
315 } 315 }
316 - }).then(function(data) { 316 + }).then(function (data) {
317 var code = data.code; 317 var code = data.code;
318 318
319 if (code === 200) { 319 if (code === 200) {
@@ -326,7 +326,7 @@ $addToCart.click(function() { @@ -326,7 +326,7 @@ $addToCart.click(function() {
326 }); 326 });
327 327
328 // 收藏 328 // 收藏
329 -$('#collect-product').click(function() { 329 +$('#collect-product').click(function () {
330 var $this = $(this), 330 var $this = $(this),
331 cancel; 331 cancel;
332 332
@@ -341,7 +341,7 @@ $('#collect-product').click(function() { @@ -341,7 +341,7 @@ $('#collect-product').click(function() {
341 productId: id, 341 productId: id,
342 type: cancel ? 'cancel' : 'add' 342 type: cancel ? 'cancel' : 'add'
343 } 343 }
344 - }).then(function(data) { 344 + }).then(function (data) {
345 var code = data.code; 345 var code = data.code;
346 346
347 if (code === 200) { 347 if (code === 200) {
@@ -357,13 +357,13 @@ $('#collect-product').click(function() { @@ -357,13 +357,13 @@ $('#collect-product').click(function() {
357 location.href = data.data.url; 357 location.href = data.data.url;
358 } 358 }
359 }); 359 });
360 -}).hover(function() { 360 +}).hover(function () {
361 var $this = $(this); 361 var $this = $(this);
362 362
363 if ($this.hasClass('coled')) { 363 if ($this.hasClass('coled')) {
364 $this.find('em').text(colTxt.hover); 364 $this.find('em').text(colTxt.hover);
365 } 365 }
366 -}, function() { 366 +}, function () {
367 var $this = $(this); 367 var $this = $(this);
368 368
369 if ($this.hasClass('coled')) { 369 if ($this.hasClass('coled')) {
@@ -372,13 +372,13 @@ $('#collect-product').click(function() { @@ -372,13 +372,13 @@ $('#collect-product').click(function() {
372 }); 372 });
373 373
374 // 继续购物 374 // 继续购物
375 -$('#keep-shopping').click(function() { 375 +$('#keep-shopping').click(function () {
376 $('#type-chose').slideDown(SLIDETIME); 376 $('#type-chose').slideDown(SLIDETIME);
377 $('#balance').slideUp(SLIDETIME); 377 $('#balance').slideUp(SLIDETIME);
378 }); 378 });
379 379
380 // 立即购买 380 // 立即购买
381 -$('#buy-now').click(function() { 381 +$('#buy-now').click(function () {
382 var sku, 382 var sku,
383 base, 383 base,
384 myAlert; 384 myAlert;
@@ -409,18 +409,18 @@ $('#buy-now').click(function() { @@ -409,18 +409,18 @@ $('#buy-now').click(function() {
409 }); 409 });
410 410
411 // 按钮鼠标移入效果【dis状态的按钮状态不变】 411 // 按钮鼠标移入效果【dis状态的按钮状态不变】
412 -$('.buy-btn').mouseover(function() { 412 +$('.buy-btn').mouseover(function () {
413 if ($(this).hasClass('dis')) { 413 if ($(this).hasClass('dis')) {
414 return; 414 return;
415 } 415 }
416 416
417 $(this).addClass('hover'); 417 $(this).addClass('hover');
418 -}).mouseleave(function() { 418 +}).mouseleave(function () {
419 $(this).removeClass('hover'); 419 $(this).removeClass('hover');
420 }); 420 });
421 421
422 // 商品详情/材质洗涤切换 422 // 商品详情/材质洗涤切换
423 -$('.description-material').on('click', '.title', function() { 423 +$('.description-material').on('click', '.title', function () {
424 var $this = $(this), 424 var $this = $(this),
425 index = $this.index(); 425 index = $this.index();
426 426
@@ -446,7 +446,7 @@ $('.description-material').on('click', '.title', function() { @@ -446,7 +446,7 @@ $('.description-material').on('click', '.title', function() {
446 }); 446 });
447 447
448 // 售后服务 448 // 售后服务
449 -$('.after-service-switch').click(function() { 449 +$('.after-service-switch').click(function () {
450 var $this = $(this), 450 var $this = $(this),
451 $content = $this.next('.after-service-content'); 451 $content = $this.next('.after-service-content');
452 452
@@ -474,18 +474,18 @@ $.ajax({ @@ -474,18 +474,18 @@ $.ajax({
474 data: { 474 data: {
475 productId: id 475 productId: id
476 } 476 }
477 -}).then(function(html) { 477 +}).then(function (html) {
478 $('#details-html').prepend(html); 478 $('#details-html').prepend(html);
479 479
480 // 修正热区尺寸使居中 480 // 修正热区尺寸使居中
481 - $('.hot-point-wrap > img').load(function() { 481 + $('.hot-point-wrap > img').load(function () {
482 $(this).parent('.hot-point-wrap').width($(this).width()); 482 $(this).parent('.hot-point-wrap').width($(this).width());
483 }); 483 });
484 484
485 // Bind Hover event 485 // Bind Hover event
486 - $('.hot-point').hover(function() { 486 + $('.hot-point').hover(function () {
487 $(this).addClass('hover'); 487 $(this).addClass('hover');
488 - }, function() { 488 + }, function () {
489 $(this).removeClass('hover'); 489 $(this).removeClass('hover');
490 }); 490 });
491 }); 491 });
@@ -494,7 +494,7 @@ $.ajax({ @@ -494,7 +494,7 @@ $.ajax({
494 lazyLoad($('#details-html img')); 494 lazyLoad($('#details-html img'));
495 495
496 // 只有一个尺码(多个或一个颜色)时默认选中第一个未售罄的颜色的第一个尺码 496 // 只有一个尺码(多个或一个颜色)时默认选中第一个未售罄的颜色的第一个尺码
497 -(function() { 497 +(function () {
498 var hasOnlyOneSize = true, 498 var hasOnlyOneSize = true,
499 i; 499 i;
500 500
@@ -511,7 +511,7 @@ lazyLoad($('#details-html img')); @@ -511,7 +511,7 @@ lazyLoad($('#details-html img'));
511 }()); 511 }());
512 512
513 // 咨询和评价 513 // 咨询和评价
514 -(function() { 514 +(function () {
515 var commentPage = 1, 515 var commentPage = 1,
516 consultPage = 1; 516 consultPage = 1;
517 517
@@ -541,7 +541,7 @@ lazyLoad($('#details-html img')); @@ -541,7 +541,7 @@ lazyLoad($('#details-html img'));
541 productId: id, 541 productId: id,
542 page: commentPage 542 page: commentPage
543 } 543 }
544 - }).then(function(data) { 544 + }).then(function (data) {
545 var res; 545 var res;
546 546
547 if (data.code === 200) { 547 if (data.code === 200) {
@@ -560,7 +560,7 @@ lazyLoad($('#details-html img')); @@ -560,7 +560,7 @@ lazyLoad($('#details-html img'));
560 })); 560 }));
561 commentPage++; 561 commentPage++;
562 } 562 }
563 - }).always(function() { 563 + }).always(function () {
564 loadingComments = false; 564 loadingComments = false;
565 }); 565 });
566 } 566 }
@@ -580,7 +580,7 @@ lazyLoad($('#details-html img')); @@ -580,7 +580,7 @@ lazyLoad($('#details-html img'));
580 productId: id, 580 productId: id,
581 page: consultPage 581 page: consultPage
582 } 582 }
583 - }).then(function(data) { 583 + }).then(function (data) {
584 var res; 584 var res;
585 585
586 if (data.code === 200) { 586 if (data.code === 200) {
@@ -599,13 +599,13 @@ lazyLoad($('#details-html img')); @@ -599,13 +599,13 @@ lazyLoad($('#details-html img'));
599 })); 599 }));
600 consultPage++; 600 consultPage++;
601 } 601 }
602 - }).always(function() { 602 + }).always(function () {
603 loadingConsults = false; 603 loadingConsults = false;
604 }); 604 });
605 } 605 }
606 606
607 // 评价和咨询切换 607 // 评价和咨询切换
608 - $('.consult-comment').on('click', '.title', function() { 608 + $('.consult-comment').on('click', '.title', function () {
609 var $this = $(this), 609 var $this = $(this),
610 index = $this.index(); 610 index = $this.index();
611 611
@@ -628,7 +628,7 @@ lazyLoad($('#details-html img')); @@ -628,7 +628,7 @@ lazyLoad($('#details-html img'));
628 $consults.slideUp(SLIDETIME); 628 $consults.slideUp(SLIDETIME);
629 $comments.slideDown(SLIDETIME); 629 $comments.slideDown(SLIDETIME);
630 } 630 }
631 - }).on('click', '.load-more', function() { 631 + }).on('click', '.load-more', function () {
632 var $this = $(this); 632 var $this = $(this);
633 633
634 if ($this.hasClass('load-more-comments')) { 634 if ($this.hasClass('load-more-comments')) {
@@ -639,7 +639,7 @@ lazyLoad($('#details-html img')); @@ -639,7 +639,7 @@ lazyLoad($('#details-html img'));
639 }); 639 });
640 640
641 // 我要咨询 641 // 我要咨询
642 - $('#consults-btn').click(function() { 642 + $('#consults-btn').click(function () {
643 643
644 // TODO:点击我要资讯的时候更新验证码显示 644 // TODO:点击我要资讯的时候更新验证码显示
645 $('.new-consult').removeClass('hide'); 645 $('.new-consult').removeClass('hide');
@@ -647,7 +647,7 @@ lazyLoad($('#details-html img')); @@ -647,7 +647,7 @@ lazyLoad($('#details-html img'));
647 }); 647 });
648 648
649 // 提交咨询 649 // 提交咨询
650 - $('#submit-consult').click(function() { 650 + $('#submit-consult').click(function () {
651 var $this = $(this), 651 var $this = $(this),
652 $parent = $this.closest('.new-consult'), 652 $parent = $this.closest('.new-consult'),
653 $textarea = $parent.find('.my-consult'), 653 $textarea = $parent.find('.my-consult'),
@@ -678,7 +678,7 @@ lazyLoad($('#details-html img')); @@ -678,7 +678,7 @@ lazyLoad($('#details-html img'));
678 productId: id, 678 productId: id,
679 content: content 679 content: content
680 } 680 }
681 - }).then(function(data) { 681 + }).then(function (data) {
682 var code = data.code; 682 var code = data.code;
683 683
684 if (code === 200) { 684 if (code === 200) {