installment.js 12.3 KB
/**
 * 分期付款
 * @author: wsl<shuiling.wang@yoho.cn>
 * @date: 2016/08/01
 */
'use strict';
const utils = '../../../utils';
const productProcess = require(`${utils}/product-process`);
const resourcesProcess = require(`${utils}/resources-process`);
const _ = require('lodash');
const api = global.yoho.API;
const serviceAPI = global.yoho.ServiceAPI;
const logger = global.yoho.logger;

// const camelCase = global.yoho.camelCase;

/**
 * 获取资源位数据
 * @param  {[string]} page
 * @return {[array]}
 */
const getResources = (page, channel) => {
    return serviceAPI.get('operations/api/v5/resource/get', {
        content_code: '0876085ff46bed27f1a1eb6ee8b68987'
    }, {
        cache: true
    }).then((result) => {
        if (result && result.code === 200) {
            return resourcesProcess(result.data);
        } else {
            logger.error('get resources data return code is not 200');
            return [];
        }
    });
};


// 获取分期开通状态
const getStauts = (uid) => {
    return api.get('', {
        method: 'user.instalment.getStatus',
        uid: uid
    }).then((result) => {
        result = {
            alg: 'SALT_MD5',
            code: 200,
            data: {
                status: 2
            },
            md5: '6d729d4b35f10fc73531210bd7ecff91',
            message: 'success'
        };
        if (result && result.code === 200) {
            return result.data.status;
        } else {
            logger.error('get installment open status return code is not 200');
            return '';
        }
    });
};

// 获取用户可用额度信息
const getQueryCreditInfo = (uid) => {
    return api.get('', {
        method: 'app.order.queryCreditInfo',
        uid: uid
    }).then((result) => {
        result = {
            alg: 'SALT_MD5',
            code: 200,
            data: {
                initCredit: '8000.00',
                currCredit: '5000.00',
                status: 2
            },
            md5: 'c1d725306fb09dcbf504776d276521cb',
            message: 'ok'
        };
        console.log('11');
        if (result && result.code === 200) {
            return result.data;
        } else {
            logger.error('get user installment usable price info return code is not 200');
            return '';
        }
    });
};

// 获取用户待还款金额
const getQueryAmtInfo = (uid) => {
    return api.get('', {
        method: 'app.order.queryAmtInfo',
        uid: uid
    }).then((result) => {
        result = {
            alg: 'SALT_MD5',
            code: 200,
            data: {
                totalAmt: '2000.00',
                monthAmt: '800.00',
                _7daysAmt: '400.00',
                overAmt: '400.00'
            },
            md5: 'c1d725306fb09dcbf504776d276521cb',
            message: 'ok'
        };
        if (result && result.code === 200) {
            result.data.dayAmt = result.data._7daysAmt;
            return result.data;
        } else {
            logger.error('get user installment repay info return code is not 200');
            return '';
        }
    });
};

// 处理还款列表数据
const _processAmtList = (list) => {
    let formatData = [];

    list = list || [];

    _.forEach(list, (data) => {
        if (data.terms === 1) {
            data.stage = data.terms;
        } else {
            data.stage = data.currTerm + '/' + data.terms;
        }

        if (data.unExpireDays < 0) {
            data.isOverdue = true;
        }

        data.day = data.unExpireDays;
    });

    return list;
};

// 获取用户待还列表信息 queryDays -1:逾期待还;0:全部待还;7:七日待还;30:本月待还
const getQueryAmtList = (params) => {
    return api.get('', _.assign({
        method: 'app.order.queryAmtList',
        pageSize: '20'
    }, params), {
        cache: true
    }).then((result) => {
        result = {
            alg: 'SALT_MD5',
            code: 200,
            data: {
                amtList: [
                    {
                        billNo: 'x00001',
                        terms: 3,
                        currTerm: 1,
                        unExpireDays: -3,
                        billInfo: '三叶草运动休闲鞋',
                        currAmt: '845.00',
                        currNoFeeAmt: '840.00',
                        currFee: '5.00'
                    }, {
                        billNo: 'x00001',
                        terms: 3,
                        currTerm: 2,
                        unExpireDays: 10,
                        billInfo: '三叶草运动休闲鞋',
                        currAmt: '840.00',
                        currNoFeeAmt: '840.00',
                        currFee: '0.00'
                    }
                ],
                pageNo: 1,
                pageTotal: 1,
                total: 2
            },
            md5: 'c1d725306fb09dcbf504776d276521cb',
            message: 'ok'
        };
        if (result && result.code === 200) {
            return _processAmtList(result.data.amtList);
        } else {
            logger.error('get queryAmtList data return code is not 200');
            return '';
        }
    });
};

// 分期专享推荐商品
const getSearchIntallment = () => {
    return api.post('', {
        // method: 'app.search.instalment',
        method: 'app.search.newProduct',
        limit: '50',
        order: 's_t_desc'
    }, {
        cache: true
    }).then((result) => {
        // result = {
        //     alg: 'SALT_MD5',
        //     code: 200,
        //     data: {
        //         product_list: [
        //             {
        //                 brand_domain: '5cm',
        //                 brand_id: 4,
        //                 brand_name: '5CM',
        //                 cn_alphabet: '5CMPeiShi5CXTIT0600S66',
        //                 default_images: 'http://img13.static.yhbimg.com/goodsimg/2016/02/21/07/026d569b2db7d9ce9339a79bcb3fe420f8.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80',
        //                 edit_time: 1456119592,
        //                 gender: '1',
        //                 goods_list: [
        //                     {
        //                         color_code: '333333',
        //                         color_id: '2',
        //                         color_name: '黑色',
        //                         color_value: '',
        //                         cover_1: '',
        //                         cover_2: '',
        //                         goods_id: '476147',
        //                         images_url: 'http://img13.static.yhbimg.com/goodsimg/2016/02/21/07/026d569b2db7d9ce9339a79bcb3fe420f8.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80',
        //                         is_default: 'N',
        //                         product_skc: '346699',
        //                         status: '1'
        //                     }
        //                 ],
        //                 is_advance: 'N',
        //                 is_discount: 'N',
        //                 is_limited: 'N',
        //                 is_new: 'Y',
        //                 is_outlets: 2,
        //                 is_promotion: 104,
        //                 is_soon_sold_out: 'N',
        //                 is_special: 'N',
        //                 market_price: 359,
        //                 max_sort_id: 8,
        //                 middle_sort_id: 66,
        //                 product_id: 373507,
        //                 product_name: '5CM 字母印花领带',
        //                 product_skn: 51206745,
        //                 sales_num: 0,
        //                 sales_phrase: '春潮新势力',
        //                 sales_price: 359,
        //                 shelve_time: 1457140500,
        //                 small_sort_id: 77,
        //                 status: 1,
        //                 stock_number: 25,
        //                 storage_num: 25,
        //                 tags: [
        //                     'is_new'
        //                 ],
        //                 vip1_price: 341.05,
        //                 vip2_price: 323.1,
        //                 vip3_price: 315.92,
        //                 vip_discount_type: 1,
        //                 vip_price: 0
        //             }, {
        //                 brand_domain: '5cm',
        //                 brand_id: 4,
        //                 brand_name: '5CM',
        //                 cn_alphabet: '5CMPeiShi5CXTIT0603S66',
        //                 default_images: 'http://img12.static.yhbimg.com/goodsimg/2016/02/21/07/02d463c9f8945ad14f824e8ba35efb9555.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80',
        //                 edit_time: 1456119581,
        //                 gender: '1',
        //                 goods_list: [
        //                     {
        //                         color_code: '333333',
        //                         color_id: '2',
        //                         color_name: '黑色',
        //                         color_value: '',
        //                         cover_1: '',
        //                         cover_2: '',
        //                         goods_id: '476153',
        //                         images_url: 'http://img12.static.yhbimg.com/goodsimg/2016/02/21/07/02d463c9f8945ad14f824e8ba35efb9555.jpg?imageMogr2/thumbnail/{width}x{height}/extent/{width}x{height}/background/d2hpdGU=/position/center/quality/80',
        //                         is_default: 'N',
        //                         product_skc: '346702',
        //                         status: '1'
        //                     }
        //                 ],
        //                 is_advance: 'N',
        //                 is_discount: 'N',
        //                 is_limited: 'N',
        //                 is_new: 'Y',
        //                 is_outlets: 2,
        //                 is_promotion: 104,
        //                 is_soon_sold_out: 'N',
        //                 is_special: 'N',
        //                 market_price: 359,
        //                 max_sort_id: 8,
        //                 middle_sort_id: 66,
        //                 product_id: 373513,
        //                 product_name: '5CM  字母印花领结',
        //                 product_skn: 51206748,
        //                 sales_num: 0,
        //                 sales_phrase: '春潮新势力',
        //                 sales_price: 359,
        //                 shelve_time: 1457140500,
        //                 small_sort_id: 77,
        //                 status: 1,
        //                 stock_number: 19,
        //                 storage_num: 19,
        //                 tags: [
        //                     'is_new'
        //                 ],
        //                 vip1_price: 341.05,
        //                 vip2_price: 323.1,
        //                 vip3_price: 315.92,
        //                 vip_discount_type: 1,
        //                 vip_price: 0
        //             }
        //         ],
        //         rec_id: '00f185af-936a-4053-97f8-1c802cb91e8b'
        //     },
        //     md5: 'ace93d0f598db0bebec30234381c0cbf',
        //     message: 'Product List.'
        // };
        if (result && result.code === 200) {
            return productProcess.processProductList(result.data.product_list);
        } else {
            logger.error('get instalment promote goods return code is not 200');
            return '';
        }
    });
};

/**
 * 获取短信验证码
 *
 * @param uid 用户ID
 * @param mobile 手机号码
 */
const sendVerifyCode = (uid, mobile) => {
    return api.get('', {
        method: 'user.instalment.getSnsCheckCode'
    }, {
        uid,
        mobile
    });
};

/**
 * 开通服务
 *
 * @param uid 用户id
 * @param userName	姓名
 * @param identityCardNo 身份证号码
 * @param cardNo 银行卡号码
 * @param mobile 手机号码
 * @param snsCheckCode	验证码
 * @returns {*}
 */
const activateService = (params) => {
    return api.get('', {
        method: 'user.instalment.activate'
    }, params);
};

module.exports = {
    getStauts,
    getQueryCreditInfo,
    getQueryAmtInfo,
    getSearchIntallment,
    sendVerifyCode,
    activateService,
    getResources,
    getQueryAmtList
};