search-api.js 4.89 KB
/**
 * Created by TaoHuang on 2016/6/14.
 */


'use strict';

const api = global.yoho.SearchAPI;

const yohoApi = global.yoho.API;

const serviceApi = global.yoho.ServiceAPI;

const getSortByConditionAsync = (condition) => {
    return api.get('sortgroup.json', condition);
};

// 获取list页广告
const adsUrl = '/shops/api/v1/ads/getList';

// 判断用户是否收藏品牌
const isFavoriteBrandUrl = '/shops/service/v1/favorite/';

// 根据品牌查询相关文章
const relateArticleUrl = 'guang/service/v2/article/getArticleByBrand';

/**
 * 获取商品列表
 * @return
 */
const getProductList = (params) => {
    let finalParams = {
        method: 'web.search.search',

        // method: 'app.search.li',
        order: 's_n_desc',
        limit: 60
    };

    let nparams = {};

    if(params && params.price) {
        let mp = params.price.split(',');
        let nmp = [];

        nmp[0] = (mp && mp[0]) || 0;
        nmp[1] = (mp && mp[1]) || 99999;
        nparams.price = nmp.join(',');
    }

    Object.assign(finalParams, params, nparams);
    return yohoApi.get('', finalParams);
};

/**
 * 获取分类列表
 * @return
 */
const getSortList = (params) => {
    let finalParams = {
        method: 'web.regular.groupsort',
        sales: 'Y', // 在销售商品分类
        status: 1, // 上架商品分类
        stocknumber: 1 // 过滤掉已售罄
    };

    Object.assign(finalParams, params);
    return yohoApi.get('', finalParams);
};

/**
 * 获取分类图文介绍
 * @return
 */
const getSortIntro = (params) => {
    let finalParams = {
        method: 'web.search.banner'
    };

    Object.assign(finalParams, params);
    return yohoApi.get('', finalParams);
};

/**
 * 获取分类广告
 * @return
 */
const getSortAds = (params) => {
    return serviceApi.get(adsUrl, params);
};

/**
 * 获取品牌系列
 * @return
 */
const getBrandSeries = (params) => {

    let finalParams = {
        method: 'web.brand.series',
        brand_id: params.brandId,
        status: params.status || 1
    };

    return yohoApi.get('', finalParams);
};

/**
 * 获取品牌folder
 * @return
 */
const getBrandFolder = (params) => {

    let finalParams = {
        method: 'web.brand.folder',
        brand_id: params.brandId,
        status: params.status || 1
    };

    return yohoApi.get('', finalParams);
};

/**
 * 获取品牌水牌
 * @return
 */
const getNodeContent = (params) => {
    let finalParams = {
        method: 'web.html.content',
        mode: params.mode || 'release',
        node: params.node || ''
    };

    return yohoApi.get('', finalParams);
};

/**
 * 一周新品上架
 * @return
 */
const getWeekNew = (params) => {

    let finalParams = {
        method: 'web.regular.recent'
    };

    Object.assign(finalParams, params);
    return yohoApi.get('', finalParams);
};

/**
 * 根据关键词搜索品牌店铺信息 TODO
 * @return
 */
const getBrandShop = (params) => {
    let finalParams = {
        // method: 'web.regular.groupsort'
        method: 'app.search.li'
    };

    Object.assign(finalParams, params);
    return yohoApi.get('', finalParams);
};

/**
 * 搜索提示
 * @return
 */
const getSuggest = (params) => {
    let finalParams = {
        method: 'app.search.fuzzy',
        keyword: params.keyword || ''
    };

    return yohoApi.get('', finalParams);
};


/**
 * 根据品牌域名获取品牌信息
 * @return
 */
const getBrandData = (params) => {
    let finalParams = {
        method: 'web.brand.byDomain',
        domain: params.domain || ''
    };

    return yohoApi.get(isFavoriteBrandUrl, finalParams);
};

/**
 * 根据uid和品牌id判断品牌是否收藏
 * @return
 */
const isFavoriteBrand = (uid, brandId) => {

    return serviceApi.get('', {uid: uid, brandId: brandId});
};

/**
 * 根据shopId获取店铺基本信息
 * @return
 */
const getShopInfo = (shopId, uid) => {
    let finalParams = {
        method: 'app.shops.getIntro',
        shop_id: shopId || 0,
        uid: uid || 0
    };

    return yohoApi.get('', finalParams);

};

/**
 * 查询店铺下面的所有品牌
 */
const getShopBrands = (shopId) => {

    return yohoApi.get('', {method: 'app.shops.getShopsBrands', shop_id: shopId || 0});
};

/**
 * 查询店铺装修
 */
const getShopDecorator = (shopId) => {
    return yohoApi.get('', {method: 'app.shopsdecorator.getList', shop_id: shopId || 0});
};

/**
 * 通过品牌获取相关文章
 */
const getArticleByBrand = (brand, udid, limit) => {
    let params = {
        brand_id: brand || 0,
        udid: udid,
        limit: limit || 6
    };

    return serviceApi.get(relateArticleUrl, params);
};


module.exports = {
    getSortByConditionAsync,
    getProductList,
    getSortList,
    getSortIntro,
    getSortAds,
    getBrandFolder,
    getBrandSeries,
    getWeekNew,
    getBrandShop,
    getSuggest,
    getBrandData,
    getNodeContent,
    isFavoriteBrand,
    getShopInfo,
    getShopBrands,
    getShopDecorator,
    getArticleByBrand
};