Authored by 郭成尧

seo-param-handle

... ... @@ -340,18 +340,18 @@ const listNew = (req, res, next) => {
let categoryIntroRedis = [];
let responseResult = {
list: productProcess.processProductList(result.data.product_list || [], {
list: productProcess.processProductList(_.get(result, 'data.product_list', []), {
isApp: params.isApp || (params.appVersion && params.appVersion !== 'false'),
gender: _coverChannel[params.coverChannel],
showSimilar: params.shop_id || params.material === 'true' ? false : true
})
};
let seoParams = searchProcess.getFilterValueForSeo(initialData, result);
let seoParams = searchProcess.getFilterValueForSeo(initialData, _.get(result, 'data', {}));
let seoRenderData = searchProcess.getListSeoData(seoParams);
let seoTitle = _.get(result, 'data.filter.group_sort[0].sub[0].category_name');
let seoTitle = _.get(seoParams, 'sort');
let paramsTitle = params.title || params.sort_name; // 可能会配置的标题,优先级最高
if (!seoTitle || !initialData.category_id) {
if (!seoTitle) {
seoTitle = '商品列表';
}
... ...
... ... @@ -93,7 +93,16 @@ const getTypeCont = (type, order) => {
* @param 接口数据 apiData
*/
const getFilterValueForSeo = (queryParams, apiData) => {
let seoPrams = {};
let seoPrams = {
color: '',
size: '',
style: '',
brand: '',
gender: '',
sort: '',
price: '',
senior: ''
};
_.forEach(queryParams, (value, key) => {
if (_.find(['color', 'size', 'style'], key)) {
... ... @@ -114,11 +123,24 @@ const getFilterValueForSeo = (queryParams, apiData) => {
if (key === 'gender') {
seoPrams.channel = _getGenderForSeo(value);
}
if (key === 'sort') {
if (key === 'sort' || key === 'category_id') {
let sorts = _.get(apiData, 'filter.group_sort', []);
let testSorts = _.cloneDeep(sorts);
_.forEach(sorts, sort => {
let sortSub = _.get(sort, 'sub', []);
if (sortSub) {
_.forEach(sortSub, subSort => {
testSorts.push(subSort);
});
}
});
let sortObj = _.find(sorts, sort => {
return value === sort.category_id;
let sortObj = _.find(testSorts, sort => {
return _.find(_.split(sort.category_id, ','), o => {
return value === o;
});
});
seoPrams.sort = _.get(sortObj, 'category_name', '');
... ... @@ -132,7 +154,7 @@ const getFilterValueForSeo = (queryParams, apiData) => {
let standardObj = _.find(standards, o => {
return paramValues[0] === o.standard_id;
});
let standardSeObj = _.find(standardObj, o => {
let standardSeObj = _.find(_.get(standardObj, 'sub', []), o => {
return paramValues[1] === o.standard_id;
});
... ...