students-api.js 3.91 KB
/**
 * 学生营销接口
 * @date: 2016-08-06 14:24:04
 * @author: name<emial@yoho.cn>
 */
'use strict';

const api = global.yoho.API;
const config = global.yoho.config;
const searchApi = require('./search-api');
const cache = global.yoho.cache;
const logger = global.yoho.logger;

/**
 * 获取完成认证学生总数
 * @return
 */
exports.getVerifiedTotal = () => {

    return api.get('', {method: 'app.student.verifiedStudentTotal'}, config.apiCache);
};

/**
 * 获取学历层次列表
 * @return
 */
exports.getEduLevelList = () => {

    return api.get('', {method: 'app.studentMarket.getEducationLevelList'}, config.apiCache);
};

/**
 * 获取学校地区
 * @return
 */
exports.getArea = () => {
    let finalParams = {
        method: 'app.studentMarket.getAddressList'
    };

    return api.get('', finalParams, config.apiCache);
};

/**
 * 获取学校列表
 * @return
 */
exports.getSchool = (areaCode) => {
    let finalParams = {
        method: 'app.studentMarket.getSchoolInfoList',
        areaCode: areaCode
    };

    return api.get('', finalParams, config.apiCache);
};

/**
 * 学生专项商品
 * @return
 */
exports.getStuProducts = (params) => {
    let finalParams = {
        method: 'app.student.vip',
        order: 's_t_desc',
        limit: 15
    };

    Object.assign(finalParams, params);
    return api.get('', finalParams, config.apiCache);
};

/**
 * 身份验证
 * @return
 */
exports.verifyIdentity = (uid, certNo, name, pageUrl) => {
    let finalParams = {
        method: 'app.student.verifyIdentity',
        uid: uid,
        cert_no: certNo,
        name: name,
        page_url: pageUrl
    };

    return api.get('', finalParams, config.apiCache);
};

/**
 * 学籍验证
 * @return
 */
exports.verifyStudent = (uid, collegeName, educationDegree, enrollmentYear) => {
    let finalParams = {
        method: 'app.student.verifyStudent',
        uid: uid,
        client_type: 'web',
        college_name: collegeName,
        education_degree: educationDegree,
        enrollment_year: enrollmentYear
    };

    return api.get('', finalParams, config.apiCache);
};

/**
 * 获取优惠券领取状态
 * @return
 */
exports.userAcquireStatus = (uid, couponIds) => {

    let finalParams = {
        method: 'app.coupons.userAcquireStatus',
        couponIds: couponIds
    };

    if (uid !== '') {
        finalParams.uid = uid;
    }

    return api.get('', finalParams, config.apiCache);
};


/**
 * 获取学生专享商品列表
 * @return
 */
exports.getStudentsProduct = (params) => {
    let finalParams = {
        method: 'app.student.rebate',
        sales: 'Y',
        stocknumber: 1,
        need_filter: 'yes',
        limit: 60
    };

    Object.assign(finalParams, params);
    if (!config.useCache) {
        return searchApi.getProductListOrig(finalParams);
    } else {
        let cKey = searchApi.getSearchCacheKey(finalParams);

        return cache.get(cKey).catch().then(cdata => {
            let hasCache = false;

            if (cdata) {

                try {
                    cdata = JSON.parse(cdata);
                } catch (e) {
                    logger.debug('getProductList cache data parse fail.');
                }

                if (cdata.filter && cdata.standard) {
                    hasCache = true;
                    finalParams.need_filter = 'no';
                }
            }

            return searchApi.getProductListOrig(finalParams).then(result => {
                if (hasCache && result && result.data) {
                    Object.assign(result.data, cdata);
                } else {
                    if (result && result.data && result.data.filter) {
                        cache.set(cKey, Object.assign({}, {
                            filter: result.data.filter,
                            standard: result.data.standard
                        }), 3600);
                    }
                }

                return result;
            });
        });
    }
};