search-process.js 4.27 KB
/**
 * 搜索相关数据处理
 * @author: wsl<shuiling.wang@yoho.cn>
 * @date: 2016/7/29
 */

const _getGender = {
    '1,3': '男生',
    '2,3': '女生',
    '1,2,3': '',
};

/**
 * 根据频道判断出性别
 */
const getGenderByChannel = (channel) => {
    channel = channel ? channel : 'boys';

    switch (channel) {
        case 'boys': // 男
            return '1,3';
        case 'girls': // 女
            return '2,3';
        default: // 其它
            return '1,2,3';
    }
};

// 频道转换
const getChannelType = (channel) => {
    channel = channel ? channel : 'boys';

    switch (channel) {
        case 'boys': // 男
            return '1';
        case 'girls': // 女
            return '2';
        case 'kids': // 童装
            return '3';
        case 'lifestyle': // 创意生活
            return '4';
        default: // all
            return '1,2,3,4';
    }
};

// 排序转换
const getTypeCont = (type, order) => {
    switch (type) {
        case 'price':
            return order === '0' ? 's_p_desc' : 's_p_asc';
        case 'discount':
            return order === '0' ? 'p_d_desc' : 'p_d_asc';
        case 'sale':
            return order === '0' ? 's_n_desc' : 's_n_asc';
        case 'newest':
            return order === '0' ? 's_t_desc' : 's_t_asc';
        case 'stock':
            return order === '0' ? 's_s_desc' : 's_s_asc';
        case 'all':
            return order === '0' ? 'd_s_desc' : 'd_s_asc';
        case 'category':
            return order === '0' ? 's_t_desc' : 's_t_asc';
        case 'new':
            return order === '0' ? 's_t_desc' : 's_t_asc';
        case 'hot':
            return order === '0' ? 's_n_desc' : 's_n_asc';
        case 'popularity':
            return order === '0' ? 'h_v_desc' : 'h_v_asc';
        default:
            return order === '0' ? 's_t_desc' : 's_t_asc';
    }
};

/**
 * 品类列表页 SEO 数据
 * @param {*} gender
 * @param {*} sort_name
 */
const getListSeoData = (gender, sort_name) => {
    let seoData = {
        title: '潮流服装配饰,创意生活用品_男生|女生|潮童服装,鞋履,配饰品牌正品-YOHO!BUY有货',
        keywords: '潮流服装配饰,创意生活用品,男生服装配饰,女生服装配饰,潮童服装配饰',
        description: '潮流服装配饰及创意生活正品网购!YOHO!BUY有货提供男生、女生、潮童服装配饰。100%品牌正品保证,支持货到付款。'
    };

    if (gender && sort_name) {
        seoData = {
            title: `${sort_name}|新款${sort_name}${_getGender[gender]}|品牌正品|YOHO!BUY有货`,
            keywords: `新款${sort_name},${_getGender[gender]}${sort_name},品牌正品`,
            description: `正品网购!YOHO!BUY有货提供新款${sort_name}${_getGender[gender]}${sort_name}100%品牌正品保证,支持货到付款。`
        };
    }
    return seoData;
};

/**
 * 获取筛选的参数,不包括方法名
 */
const getSearchParamsWithoutMethod = (params) => {
    let finalParams = {};

    if (params.yh_channel) {
        finalParams.yh_channel = params.yh_channel;
    }

    if (params.brand_id) {
        finalParams.brand = params.brand_id;
    }

    if (params.shop_id) {
        finalParams.shop_id = params.shop_id;
    }

    if (params.order) {
        finalParams.order = getTypeCont(params.type, params.order);
    }

    if (params.limit) {
        finalParams.limit = params.limit;
    }

    if (params.page) {
        finalParams.page = params.page;
    }

    if (params.gender) {
        finalParams.gender = params.gender;
    }

    if (params.color && params.color !== '0') {
        finalParams.color = params.color;
    }

    if (params.price && params.price !== '0') {
        finalParams.price = params.price;
    }

    if (params.size && params.size !== '0') {
        finalParams.size = params.size;
    }

    if (params.p_d) {
        finalParams.p_d = params.p_d;
    }

    if (params.sort && params.sort !== '0') {
        finalParams.sort = params.sort;
    }

    if (params.tags_filter) {
        finalParams.tags_filter = params.tags_filter;
    }

    if (params.type) {
        finalParams.type = params.type;
    }
    return finalParams;
};

module.exports = {
    getGenderByChannel,
    getChannelType,
    getTypeCont,
    getListSeoData,
    getSearchParamsWithoutMethod
};