favorite.js
4.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
/**
* Created by TaoHuang on 2016/6/13.
*/
'use strict';
const helpers = global.yoho.helpers;
const brandService = require('../models/favorite-brand-service');
const productService = require('../models/favorite-product-service');
const fav = require('../models/favorite');
const _ = require('lodash');
/**
* 收藏品牌ajax请求
*/
const changeFavoriteBrand = (req, res, next) => {
let uid = req.user.uid || '';
let brandId = req.body.brandId;
let type = req.body.type || '';
if (uid && brandId) {
req.ctx(brandService).changeAsync(type, uid, brandId).then(result => {
return res.json(result);
}).catch(next);
} else if (!uid) {
return res.json({
code: 403,
message: '用户ID不存在',
data: {
url: helpers.urlFormat('/signin.html')
}
});
} else {
return res.json({
code: 400,
message: '操作失败'
});
}
};
const isFavoriteBrand = (req, res, next) => {
let uid = req.user.uid || '';
let brandId = req.query.brandId;
if (uid && brandId) {
req.ctx(brandService).isFavoriteAsync(uid, brandId).then(result => {
return res.json(result);
}).catch(next);
} else {
return res.json({
code: 400,
message: '状态失败'
});
}
};
const collectProduct = (req, res, next) => {
let uid = req.user.uid || '';
let pid = req.body.productId;
let type = req.body.type || 'add';
if (uid && pid) {
switch (type) {
case 'add':
req.ctx(productService).createAsync(uid, pid)
.then(result => {
if (result.code === 413) {
result.message = '该商品已经收藏';
}
res.json(result);
})
.catch(next);
break;
case 'cancel':
req.ctx(productService).deleteAsync(uid, pid)
.then(result => res.json(result))
.catch(next);
break;
default:
res.json({
code: 400,
message: '错误类型'
});
}
} else if (!uid) {
res.json({
code: 403,
message: '用户没有登录',
data: {
url: helpers.urlFormat('/signin.html')
}
});
} else {
res.json({
code: 400,
message: '收藏失败'
});
}
};
const collectShop = (req, res, next) => {
let uid = req.user.uid || '';
let shopId = req.body.shopId;
let isadd = req.body.isFavorite * 1 ? true : false;
// needColloect 说明刚登录状态 是cookie传的值
if (req.body.needColloect * 1 === 1) {
isadd = true;
}
if (!uid) {
res.json({
code: 401,
message: '用户没有登录',
data: {url: helpers.urlFormat('/signin.html')}
});
} else if (!shopId) {
res.json({
code: 400,
message: '收藏失败'
});
} else {
req.ctx(fav).toggleFavShop(shopId, uid, isadd).then(result => {
res.json(result);
}).catch(next);
}
};
const isFavShop = (req, res, next) => {
let uid = req.user.uid;
let shopId = req.body.shopId;
if (!uid || !shopId) {
return res.json({
code: 400,
message: '未收藏'
});
}
req.ctx(fav).getFavStatus(uid, shopId, 'shop').then(result => {
return res.json(result);
}).catch(next);
};
const num = (req, res, next) => {
let bid = _.parseInt(`0${req.query.bid}`) || 0;
let sid = _.parseInt(`0${req.query.sid}`) || 0;
if (sid) {
return req.ctx(brandService).getShopFavNumAsync(sid).then((result) => {
res.json(result);
}).catch(next);
}
if (bid) {
return req.ctx(brandService).getBrandFavNumAsync(bid).then((result) => {
res.json(result);
}).catch(next);
}
res.json({});
};
module.exports = {
changeFavoriteBrand,
collectProduct,
collectShop,
isFavShop,
isFavoriteBrand,
num
};