plustar.js 3.65 KB
'use strict';
const api = global.yoho.API;
const serviceAPI = global.yoho.ServiceAPI;
const _ = require('lodash');
const productProcess = require('../../../utils/product-process');
const logger = global.yoho.logger;
const camelCase = global.yoho.camelCase;

const formaData = (data, gender) => {
    let build = [];

    // console.log(data)
    _.forEach(data, function(val) {
        // 多张图
        if (val.data[1]) {

            let imgs = [];

            _.forEach(val.data, function(list) {
                let obj = {};

                obj = _.assign(obj, {
                    url: '/plustar/brandinfo?id=' + val.id + '&gender=' + gender,
                    img: list.src,
                    deps: val.brand_title
                });

                imgs.push(obj);
            });

            build.push({
                imgs: imgs
            });

        }


        // 单张图
        if (val.data[0]) {
            _.forEach(val.data, function(list) {
                build.push({
                    url: '/plustar/brandinfo?id=' + val.id + '&gender=' + gender,
                    img: list.src,
                    deps: val.brand_title
                });
            });
        }
    });

    return build;
};


const getContentData = (gender, type) => {

    return serviceAPI.get('guang/api/v3/plustar/getlist', {
        gender: gender,
        brand_type: type
    }).then((result) => {
        if (result && result.code === 200) {
            // console.log(result)
            return formaData(result.data.data.list[0].data, gender);
        } else {
            logger.error('列表 list data return code is not 200');
            return {};
        }
    });
};

const getListData = (gender, recom, all) => {
    return Promise.all([getContentData(gender, recom), getContentData(gender, all)]).then((result) => {
        return {
            star: result[0],
            plus: result[1]
        };
    });
};

// 相关资讯
const getRelatedEditorial = () => {

};

// 是否收藏
const isCollection = (uid, brandId, clientType) => {
    return serviceAPI.get('shops/service/v1/favorite/getUidBrandFav', {
        uid: uid,
        brandId: brandId,
        client_type: clientType
    }).then((result) => {
        // console.log(result)
        if (result && result.code === 200) {
            // console.log(result.data)
            let isLike = true;
            return isLike;
        } else {
            let isLike = false;
            return isLike;
        }
    });
};

// 品牌详情
const getBrandData = (id, clientType, uid) => {

    return serviceAPI.get('guang/api/v1/plustar/getbrandinfo', {
        id: id,
        client_type: clientType
    }).then((result) => {
        if (result && result.code === 200) {
            // console.log(result.data)
            let list = result.data || [];
            list = camelCase(list);

            let brandId = result.data.brand_id;

            return isCollection(uid, brandId, clientType).then((result) => {
                // console.log(result)
                list = _.assign(list, {
                    isLike: result
                });

                return list;
            });
        } else {
            logger.error('detail data return code is not 200');
            return {};
        }
    });
};

const getDetailData = (id, uid, udid, gender, isApp, clientType) => {
    return Promise.all([getBrandData(id, clientType, uid), getRelatedEditorial(gender)]).then((result) => {
        // console.log(result[0].brandDomain)
        return {
            brandInfo: result[0],
            newArrival: result[1]
        };
    });
};



module.exports = {
    getListData,
    getContentData,
    getDetailData
};