/** * 处理学生营销相关数据结构 * @date: 2016-08-06 18:20:52 * @author: sefon<809775195@qq.com> */ 'use strict'; const utils = '../../../utils'; const _ = require('lodash'); const helpers = global.yoho.helpers; const productProcess = require(`${utils}/product-process`); const crypto = global.yoho.crypto; /** * 优惠券 * @params data array * @return Object */ const getCoupon = (data) => { let dest = []; _.forEach(data, (value) => { dest.push({ imgUrl: helpers.image(value.image.src, 400, 400), url: value.image.url, id: crypto.encryption('yoho9646abcdefgh', value.couponID) }); }); return dest; }; /** * 补零 * @params data array * @return Object */ const pad = (num, n) => { let len = num.toString().length; while (len < n) { num = '0' + num; len++; } return num; }; /** * 认证学生总数 * @params data array * @return Object */ exports.studentsNum = (data) => { let dest = []; data = pad(data, 7); for (let i = 0; i < data.length; i++) { dest.push(data.charAt(i)); } return dest; }; /** * 处理学生营销资源位数据 * @params data array 资源位接口返回数据 * @return object */ exports.studentResource = (data) => { let dest = {couponObj: {}}; let rightsTextObj = [{ rightName: '认证立赠100有货币', rightContent: '认证成功,立即赠送100有货币。' }, { rightName: '新品立享9折', rightContent: '学生购买指定原价新品时,可立即享受9折优惠,此折扣与VIP折扣不可同时享受。' }, { rightName: '每1元返1个有货币', rightContent: '学生购买指定商品时,每1元返1个有货币(以商品的实际成交金额计算);<br>' + '有货币返还时间:确认收货7日后,系统自动将对应数量的有货币返还至购买账户;<br>' + '有货币有效期:获得当日至次年12月31日,逾期自动作废;<br>' + '查看有货币:登录后,点击“个人中心”在“我的有货币”中可以查看有货币余额及明细。' }, { rightName: '分期付款', rightContent: '开通有货分期后,可享受部分商品30天延后付款,最长6个月的分期付款,开启任性购物模式。' }]; _.forEach(data, (value) => { switch (value.template_name) { case 'focus': Object.assign(dest, {mainBanner: {list: value.data, floorId: value.template_id}}); break; case 'getCoupon': Object.assign(dest.couponObj, {couponItem: getCoupon(value.data), floorId: value.template_id}); break; case 'recommend_content_five': Object.assign(value.data.list[0], rightsTextObj[0]); Object.assign(value.data.list[1], rightsTextObj[1]); Object.assign(value.data.list[2], rightsTextObj[2]); Object.assign(value.data.list[3], rightsTextObj[3]); Object.assign(dest, {rightsObj: {rightsItem: value.data.list || {}, floorId: value.template_id}}); break; case 'image_list': Object.assign(dest, {activityObj: {activityItem: value.data.list || {}, floorId: value.template_id} }); break; case 'link': Object.assign(dest, {moreProducts: value.data[0].url || ''}); break; case 'single_image': Object.assign(dest, {identityObj: { adImg: value.data[0].src || '', url: value.data[0].url, identityItem: {sendCoin: value.data[0].title || 100}, floorId: value.template_id} }); break; case 'titleFloor': Object.assign(dest.couponObj, {couponMore: value.data.title || {}}); break; default: break; } }); _.isEmpty(dest.couponObj) ? delete dest.couponObj : ''; return dest; }; /** * 处理学生商品 * @params data array 资源位接口返回数据 * @return object */ exports.stuProducts = (data) => { let products = productProcess.processProductList(data, {showTags: false}); _.forEach(data, (value, key) => { delete data[key].discount; data[key].market_price = data[key].sales_price; delete data[key].sales_price; if (value.student_price) { Object.assign(data[key], {for_stu: true}); } }); return products; }; exports.stuVerify = (result, params) => { let data = {resultParams: params}; if (result.code === 200) { data.isError = false; data.isStudent = result.data.isStudent === 1 ? true : false; data.prompt = result.data.prompt; } else { data.isError = true; data.errorMsg = result.message; } return data; };