|
@@ -51,7 +51,11 @@ const _processBrandShops = (list) => { |
|
@@ -51,7 +51,11 @@ const _processBrandShops = (list) => { |
51
|
*/
|
51
|
*/
|
52
|
const _modifyWapUrl = (origin, shopId) => {
|
52
|
const _modifyWapUrl = (origin, shopId) => {
|
53
|
if (parseInt(_.get(origin, 'linkType', 0), 10) === 1) {
|
53
|
if (parseInt(_.get(origin, 'linkType', 0), 10) === 1) {
|
54
|
- return helpers.urlFormat('', {filter_poolId: origin.categoryId, shop_id: shopId, title: origin.categoryName}, 'search'); //eslint-disable-line
|
54
|
+ return helpers.urlFormat('', {
|
|
|
55
|
+ filter_poolId: origin.categoryId,
|
|
|
56
|
+ shop_id: shopId,
|
|
|
57
|
+ title: origin.categoryName
|
|
|
58
|
+ }, 'search'); //eslint-disable-line
|
55
|
} else {
|
59
|
} else {
|
56
|
if (_.has(origin, 'url')) {
|
60
|
if (_.has(origin, 'url')) {
|
57
|
return origin.url;
|
61
|
return origin.url;
|
|
@@ -135,7 +139,71 @@ const _getShopCategory = (shopId, channel, gender) => { |
|
@@ -135,7 +139,71 @@ const _getShopCategory = (shopId, channel, gender) => { |
135
|
};
|
139
|
};
|
136
|
|
140
|
|
137
|
/**
|
141
|
/**
|
138
|
- * TODO TAR 店铺和品牌收藏状态调用新的接口
|
142
|
+ * 处理店铺或者品牌 seo 数据
|
|
|
143
|
+ * @param channel
|
|
|
144
|
+ * @param info
|
|
|
145
|
+ * @param qs
|
|
|
146
|
+ * @returns {{}}
|
|
|
147
|
+ * @private
|
|
|
148
|
+ */
|
|
|
149
|
+const _getBrandShopSeo = (channel, info, qs) => {
|
|
|
150
|
+
|
|
|
151
|
+ let resData = {},
|
|
|
152
|
+ ctype = {
|
|
|
153
|
+ boys: {fashionType: '男装', brandType: '男生品牌'},
|
|
|
154
|
+ girls: {fashionType: '女装', brandType: '女生品牌'},
|
|
|
155
|
+ kids: {fashionType: '童装', brandType: '潮童品牌'},
|
|
|
156
|
+ lifestyle: {fashionType: '创意生活', brandType: '创意生活品牌'}
|
|
|
157
|
+ };
|
|
|
158
|
+ let params = {
|
|
|
159
|
+ nameEn: '',
|
|
|
160
|
+ name: ''
|
|
|
161
|
+ };
|
|
|
162
|
+
|
|
|
163
|
+
|
|
|
164
|
+ if (info) {
|
|
|
165
|
+ Object.assign(params, {
|
|
|
166
|
+ nameEn: _.get(info, 'brand_name_en', ''),
|
|
|
167
|
+ nameCn: _.get(info, 'brand_name_cn', ''),
|
|
|
168
|
+ name: _.get(info, 'brand_name', '')
|
|
|
169
|
+ });
|
|
|
170
|
+ params.name = `${params.nameEn} ${params.nameCn} ${params.name}`;
|
|
|
171
|
+ if (info.shop_name) {
|
|
|
172
|
+ Object.assign(params, {
|
|
|
173
|
+ nameEn: info.shop_name,
|
|
|
174
|
+ name: info.shop_name
|
|
|
175
|
+ });
|
|
|
176
|
+ }
|
|
|
177
|
+ }
|
|
|
178
|
+
|
|
|
179
|
+ if (qs && qs.gender) {
|
|
|
180
|
+ if (qs.gender === '1,3') {
|
|
|
181
|
+ channel = 'boys';
|
|
|
182
|
+ } else if (qs.gender === '2,3') {
|
|
|
183
|
+ channel = 'girls';
|
|
|
184
|
+ }
|
|
|
185
|
+
|
|
|
186
|
+ Object.assign(params, ctype[channel] || ctype.boys);
|
|
|
187
|
+ Object.assign(resData, {
|
|
|
188
|
+ title: `${params.nameEn} | ${params.name} ${params.brandType}`,
|
|
|
189
|
+ keywords: `${params.nameEn}, ${params.name} ${params.fashionType},${params.nameEn} ${params.brandType}`,
|
|
|
190
|
+ description: `${params.nameEn}正品网购。${params.name}官方授权!`
|
|
|
191
|
+ });
|
|
|
192
|
+ } else {
|
|
|
193
|
+ Object.assign(resData, {
|
|
|
194
|
+ title: `${params.nameEn} | ${params.name}官网`,
|
|
|
195
|
+ keywords: `${params.nameEn}, ${params.name}官网`,
|
|
|
196
|
+ description: `${params.nameEn}正品网购。${params.name}官方授权!`
|
|
|
197
|
+ });
|
|
|
198
|
+ }
|
|
|
199
|
+
|
|
|
200
|
+ resData.title += resData.title ? ' | YOHO!有货 100%正品保证' : '';
|
|
|
201
|
+ resData.description += resData.description ? ' YOHO! 有货中国最大的潮流商品购物网站。100%品牌正品保证,支持货到付款。' : ''; // eslint-disable-line
|
|
|
202
|
+ return resData;
|
|
|
203
|
+};
|
|
|
204
|
+
|
|
|
205
|
+/**
|
|
|
206
|
+ *
|
139
|
* 调用接口获取品牌或者店铺的收藏状态
|
207
|
* 调用接口获取品牌或者店铺的收藏状态
|
140
|
* @private
|
208
|
* @private
|
141
|
*/
|
209
|
*/
|
|
@@ -436,8 +504,11 @@ const _formShopData = (data, shopId, isApp) => { |
|
@@ -436,8 +504,11 @@ const _formShopData = (data, shopId, isApp) => { |
436
|
*/
|
504
|
*/
|
437
|
const getBaseShopData = (params, shopInfo) => {
|
505
|
const getBaseShopData = (params, shopInfo) => {
|
438
|
|
506
|
|
|
|
507
|
+ /* tar add 161109 seo-info */
|
|
|
508
|
+ let seoResult = _getBrandShopSeo(params.channel, shopInfo, params);
|
439
|
let finalResult = {
|
509
|
let finalResult = {
|
440
|
- cartUrl: helpers.urlFormat('/cart/index/index')
|
510
|
+ cartUrl: helpers.urlFormat('/cart/index/index'),
|
|
|
511
|
+ seoResult: seoResult
|
441
|
};
|
512
|
};
|
442
|
|
513
|
|
443
|
let shopId = params.shop_id || shopInfo.shops_id;
|
514
|
let shopId = params.shop_id || shopInfo.shops_id;
|
|
@@ -490,6 +561,8 @@ const getShopData = (req, shopId, uid, isApp) => { |
|
@@ -490,6 +561,8 @@ const getShopData = (req, shopId, uid, isApp) => { |
490
|
|
561
|
|
491
|
return _getShopInfo(shopId, uid).then(shopInfoResult => {
|
562
|
return _getShopInfo(shopId, uid).then(shopInfoResult => {
|
492
|
|
563
|
|
|
|
564
|
+ let seoResult = _getBrandShopSeo(channel, shopInfoResult, req.query);
|
|
|
565
|
+
|
493
|
/* 基础店铺返回程序内的跳转信号,跳转到基础店铺 */
|
566
|
/* 基础店铺返回程序内的跳转信号,跳转到基础店铺 */
|
494
|
if (shopInfoResult && shopInfoResult.shop_template_type && parseInt(shopInfoResult.shop_template_type, 10) === 1) {
|
567
|
if (shopInfoResult && shopInfoResult.shop_template_type && parseInt(shopInfoResult.shop_template_type, 10) === 1) {
|
495
|
return {
|
568
|
return {
|
|
@@ -551,7 +624,8 @@ const getShopData = (req, shopId, uid, isApp) => { |
|
@@ -551,7 +624,8 @@ const getShopData = (req, shopId, uid, isApp) => { |
551
|
{
|
624
|
{
|
552
|
shopId: shopId,
|
625
|
shopId: shopId,
|
553
|
uid: uid ? crypto.encryption('', uid + '') : '',
|
626
|
uid: uid ? crypto.encryption('', uid + '') : '',
|
554
|
- coverChannel: channel
|
627
|
+ coverChannel: channel,
|
|
|
628
|
+ seoResult: seoResult
|
555
|
}
|
629
|
}
|
556
|
);
|
630
|
);
|
557
|
});
|
631
|
});
|
|
@@ -662,9 +736,10 @@ const getBrandLogoByDomain = (domain) => { |
|
@@ -662,9 +736,10 @@ const getBrandLogoByDomain = (domain) => { |
662
|
/**
|
736
|
/**
|
663
|
* 根据brandId 获取相关店铺列表
|
737
|
* 根据brandId 获取相关店铺列表
|
664
|
* @param brandId
|
738
|
* @param brandId
|
|
|
739
|
+ * @param req
|
665
|
* @return array
|
740
|
* @return array
|
666
|
*/
|
741
|
*/
|
667
|
-const getBrandShops = (brandId) => {
|
742
|
+const getBrandShops = (brandId, req) => {
|
668
|
return api.get('', {
|
743
|
return api.get('', {
|
669
|
method: 'app.shop.queryShopsByBrandId',
|
744
|
method: 'app.shop.queryShopsByBrandId',
|
670
|
brand_id: brandId
|
745
|
brand_id: brandId
|
|
@@ -673,7 +748,9 @@ const getBrandShops = (brandId) => { |
|
@@ -673,7 +748,9 @@ const getBrandShops = (brandId) => { |
673
|
cache: true
|
748
|
cache: true
|
674
|
}).then(result => {
|
749
|
}).then(result => {
|
675
|
if (_.isArray(result.data)) {
|
750
|
if (_.isArray(result.data)) {
|
676
|
- return _processBrandShops(result.data);
|
751
|
+ let seoResult = _getBrandShopSeo(req.channel, result.data[0], req.query);
|
|
|
752
|
+
|
|
|
753
|
+ return Object.assign(_processBrandShops(result.data), {seoResult: seoResult});
|
677
|
} else {
|
754
|
} else {
|
678
|
return [];
|
755
|
return [];
|
679
|
}
|
756
|
}
|
|
@@ -784,9 +861,8 @@ const getShopCategory = (params) => { |
|
@@ -784,9 +861,8 @@ const getShopCategory = (params) => { |
784
|
|
861
|
|
785
|
/**
|
862
|
/**
|
786
|
* 获取店铺优惠券列表
|
863
|
* 获取店铺优惠券列表
|
787
|
- * @param {[int]} shop_id 店铺id
|
|
|
788
|
- * @param {[int]} uid 当前用户id,空则不传
|
|
|
789
|
* @return {[array]}
|
864
|
* @return {[array]}
|
|
|
865
|
+ * @param params
|
790
|
*/
|
866
|
*/
|
791
|
const shopCouponsList = (params) => {
|
867
|
const shopCouponsList = (params) => {
|
792
|
return api.get('', Object.assign({
|
868
|
return api.get('', Object.assign({
|