...
|
...
|
@@ -18,148 +18,154 @@ const UNUSED = 'notuse'; |
|
|
const USED = 'use';
|
|
|
const INVALID = 'overtime';
|
|
|
|
|
|
const getCouponsList = (uid, type, page, limit)=>{
|
|
|
return co(function*() {
|
|
|
let couponsInfo = yield UserData.getCouponsList(uid, type, page, limit);
|
|
|
let result = [],
|
|
|
coupons = _.get(couponsInfo, 'data.couponList');
|
|
|
|
|
|
if (!coupons) {
|
|
|
return {
|
|
|
list: result
|
|
|
};
|
|
|
}
|
|
|
|
|
|
if (coupons) {
|
|
|
coupons.forEach(function(item, i) {
|
|
|
result[i] = {};
|
|
|
result[i].id = item.couponId;
|
|
|
result[i].code = item.couponCode;
|
|
|
|
|
|
// 格式化有效日期 "couponValidity": "2016.03.15-2016.03.31"
|
|
|
let dates = item.couponValidity.split('-'),
|
|
|
extra = ['秒杀', '限定', '境外', '预售'],
|
|
|
limits = _.get(item, 'shopPriceLimits', '');
|
|
|
|
|
|
result[i].beginTime = dates[0];
|
|
|
result[i].endTime = dates[1];
|
|
|
|
|
|
if (!item.couponImageUrl) {
|
|
|
result[i].img = '//static.yohobuy.com/images/v2/activity/default_coupon.jpg';
|
|
|
} else {
|
|
|
result[i].img = item.couponImageUrl;
|
|
|
}
|
|
|
module.exports = class extends global.yoho.BaseModel {
|
|
|
constructor(ctx) {
|
|
|
super(ctx);
|
|
|
}
|
|
|
|
|
|
result[i].value = item.couponValue;
|
|
|
result[i].validity = item.couponValidity;
|
|
|
result[i].useRemark = item.couponDetailInfomation;
|
|
|
if (!_.isEmpty(item.sortNameLimit)) {
|
|
|
result[i].categorys = item.sortNameLimit.join('、');
|
|
|
}
|
|
|
if (!_.isEmpty(item.brandNameLimit)) {
|
|
|
result[i].brands = item.brandNameLimit.join('、');
|
|
|
}
|
|
|
if (limits.indexOf('1') >= 0) {
|
|
|
extra.push('3折以下');
|
|
|
}
|
|
|
if (limits.indexOf('2') >= 0) {
|
|
|
extra.push('限量');
|
|
|
}
|
|
|
getCouponsList(uid, type, page, limit) {
|
|
|
let userDataModel = new UserData(this.ctx);
|
|
|
|
|
|
return co(function*() {
|
|
|
let couponsInfo = yield userDataModel.getCouponsList(uid, type, page, limit);
|
|
|
let result = [],
|
|
|
coupons = _.get(couponsInfo, 'data.couponList');
|
|
|
|
|
|
result[i].extraPro = extra.join('、');
|
|
|
result[i].isNoLimit = item.isNoLimit === 'true' ? true : false;
|
|
|
result[i].explains = _.isEmpty(item.explains) ? false : item.explains;
|
|
|
result[i].proListUrl = helpers.urlFormat('', {cpc_id: item.couponId,
|
|
|
phrase: encodeURIComponent('以下商品可使用 【' + item.couponDetailInfomation + '】优惠券')}, 'list');
|
|
|
result[i].rule = item.rule4ShortName || '';
|
|
|
result[i].overState = item.overState || '';
|
|
|
|
|
|
if (type === USED) {
|
|
|
result[i].orderNum = _.get(item, 'orderCode', '');
|
|
|
result[i].orderDetailUrl = helpers.urlFormat('/home/orders/detail',
|
|
|
{orderCode: item.orderCode || ''});
|
|
|
result[i].orderSum = _.get(item, 'orderPrice', 0).toFixed(2);
|
|
|
result[i].payment = _.get(item, 'actuallyPaid', 0).toFixed(2);
|
|
|
let date = item.usedTime ? moment(item.usedTime).format('YYYY-MM-DD H:m') : 0;
|
|
|
|
|
|
if (date) {
|
|
|
result[i].useTime = date;
|
|
|
if (!coupons) {
|
|
|
return {
|
|
|
list: result
|
|
|
};
|
|
|
}
|
|
|
|
|
|
if (coupons) {
|
|
|
coupons.forEach(function(item, i) {
|
|
|
result[i] = {};
|
|
|
result[i].id = item.couponId;
|
|
|
result[i].code = item.couponCode;
|
|
|
|
|
|
// 格式化有效日期 "couponValidity": "2016.03.15-2016.03.31"
|
|
|
let dates = item.couponValidity.split('-'),
|
|
|
extra = ['秒杀', '限定', '境外', '预售'],
|
|
|
limits = _.get(item, 'shopPriceLimits', '');
|
|
|
|
|
|
result[i].beginTime = dates[0];
|
|
|
result[i].endTime = dates[1];
|
|
|
|
|
|
if (!item.couponImageUrl) {
|
|
|
result[i].img = '//static.yohobuy.com/images/v2/activity/default_coupon.jpg';
|
|
|
} else {
|
|
|
result[i].useTime = '';
|
|
|
result[i].img = item.couponImageUrl;
|
|
|
}
|
|
|
} else {
|
|
|
result[i].status = item.isValidity ? '可使用' : '已过期';
|
|
|
}
|
|
|
if (item.couponType) {
|
|
|
result[i].type = item.couponType;
|
|
|
if (Number(item.couponType) === 5) {
|
|
|
result[i].value = '免邮';
|
|
|
|
|
|
result[i].value = item.couponValue;
|
|
|
result[i].validity = item.couponValidity;
|
|
|
result[i].useRemark = item.couponDetailInfomation;
|
|
|
if (!_.isEmpty(item.sortNameLimit)) {
|
|
|
result[i].categorys = item.sortNameLimit.join('、');
|
|
|
}
|
|
|
}
|
|
|
if (!_.isEmpty(item.brandNameLimit)) {
|
|
|
result[i].brands = item.brandNameLimit.join('、');
|
|
|
}
|
|
|
if (limits.indexOf('1') >= 0) {
|
|
|
extra.push('3折以下');
|
|
|
}
|
|
|
if (limits.indexOf('2') >= 0) {
|
|
|
extra.push('限量');
|
|
|
}
|
|
|
|
|
|
result[i].extraPro = extra.join('、');
|
|
|
result[i].isNoLimit = item.isNoLimit === 'true' ? true : false;
|
|
|
result[i].explains = _.isEmpty(item.explains) ? false : item.explains;
|
|
|
result[i].proListUrl = helpers.urlFormat('', {cpc_id: item.couponId,
|
|
|
phrase: encodeURIComponent('以下商品可使用 【' + item.couponDetailInfomation + '】优惠券')}, 'list');
|
|
|
result[i].rule = item.rule4ShortName || '';
|
|
|
result[i].overState = item.overState || '';
|
|
|
|
|
|
if (type === USED) {
|
|
|
result[i].orderNum = _.get(item, 'orderCode', '');
|
|
|
result[i].orderDetailUrl = helpers.urlFormat('/home/orders/detail',
|
|
|
{orderCode: item.orderCode || ''});
|
|
|
result[i].orderSum = _.get(item, 'orderPrice', 0).toFixed(2);
|
|
|
result[i].payment = _.get(item, 'actuallyPaid', 0).toFixed(2);
|
|
|
let date = item.usedTime ? moment(item.usedTime).format('YYYY-MM-DD H:m') : 0;
|
|
|
|
|
|
if (date) {
|
|
|
result[i].useTime = date;
|
|
|
} else {
|
|
|
result[i].useTime = '';
|
|
|
}
|
|
|
} else {
|
|
|
result[i].status = item.isValidity ? '可使用' : '已过期';
|
|
|
}
|
|
|
if (item.couponType) {
|
|
|
result[i].type = item.couponType;
|
|
|
if (Number(item.couponType) === 5) {
|
|
|
result[i].value = '免邮';
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
let pageNum = pager(couponsInfo.data.total, {
|
|
|
page: page,
|
|
|
limit: limit,
|
|
|
type: type
|
|
|
});
|
|
|
}
|
|
|
|
|
|
let pageNum = pager(couponsInfo.data.total, {
|
|
|
page: page,
|
|
|
limit: limit,
|
|
|
type: type
|
|
|
});
|
|
|
|
|
|
return {
|
|
|
list: result,
|
|
|
pager: Object.assign({
|
|
|
count: couponsInfo.data.total || 0,
|
|
|
curPage: page,
|
|
|
totalPages: couponsInfo.data.totalPageNum
|
|
|
}, pageNum)
|
|
|
};
|
|
|
})();
|
|
|
};
|
|
|
|
|
|
const couponsData = (uid, params)=>{
|
|
|
let type = params.type || UNUSED;
|
|
|
let page = params.page || 1;
|
|
|
let limit = params.limit || 10;
|
|
|
|
|
|
return co(function*() {
|
|
|
let coupons = yield getCouponsList(uid, type, page, limit);
|
|
|
let data = {};
|
|
|
|
|
|
if (type === UNUSED) {
|
|
|
data.unUseCoupons = !coupons.list.length ? {empty: '您没有优惠券'} : coupons.list;
|
|
|
data.unUse = true;
|
|
|
} else if (type === USED) {
|
|
|
data.usedCoupons = !coupons.list.length ? {empty: '您没有优惠券'} : coupons.list;
|
|
|
data.used = true;
|
|
|
} else if (type === INVALID) {
|
|
|
data.noValidCoupons = !coupons.list.length ? {empty: '您没有优惠券'} : coupons.list;
|
|
|
data.noValid = true;
|
|
|
}
|
|
|
|
|
|
data.tabs = [
|
|
|
{
|
|
|
active: type === UNUSED ? true : false,
|
|
|
url: helpers.urlFormat('/home/coupons', {type: UNUSED}),
|
|
|
name: '未使用优惠券'
|
|
|
},
|
|
|
{
|
|
|
active: type === USED ? true : false,
|
|
|
url: helpers.urlFormat('/home/coupons', {type: USED}),
|
|
|
name: '已使用优惠券'
|
|
|
},
|
|
|
{
|
|
|
active: type === INVALID ? true : false,
|
|
|
url: helpers.urlFormat('/home/coupons', {type: INVALID}),
|
|
|
name: '已失效优惠券'
|
|
|
return {
|
|
|
list: result,
|
|
|
pager: Object.assign({
|
|
|
count: couponsInfo.data.total || 0,
|
|
|
curPage: page,
|
|
|
totalPages: couponsInfo.data.totalPageNum
|
|
|
}, pageNum)
|
|
|
};
|
|
|
})();
|
|
|
}
|
|
|
|
|
|
couponsData(uid, params) {
|
|
|
let type = params.type || UNUSED;
|
|
|
let page = params.page || 1;
|
|
|
let limit = params.limit || 10;
|
|
|
let _this = this;
|
|
|
|
|
|
return co(function*() {
|
|
|
let coupons = yield _this.getCouponsList(uid, type, page, limit);
|
|
|
let data = {};
|
|
|
|
|
|
if (type === UNUSED) {
|
|
|
data.unUseCoupons = !coupons.list.length ? {empty: '您没有优惠券'} : coupons.list;
|
|
|
data.unUse = true;
|
|
|
} else if (type === USED) {
|
|
|
data.usedCoupons = !coupons.list.length ? {empty: '您没有优惠券'} : coupons.list;
|
|
|
data.used = true;
|
|
|
} else if (type === INVALID) {
|
|
|
data.noValidCoupons = !coupons.list.length ? {empty: '您没有优惠券'} : coupons.list;
|
|
|
data.noValid = true;
|
|
|
}
|
|
|
];
|
|
|
|
|
|
data.pager = coupons.pager;
|
|
|
data.tabs = [
|
|
|
{
|
|
|
active: type === UNUSED ? true : false,
|
|
|
url: helpers.urlFormat('/home/coupons', {type: UNUSED}),
|
|
|
name: '未使用优惠券'
|
|
|
},
|
|
|
{
|
|
|
active: type === USED ? true : false,
|
|
|
url: helpers.urlFormat('/home/coupons', {type: USED}),
|
|
|
name: '已使用优惠券'
|
|
|
},
|
|
|
{
|
|
|
active: type === INVALID ? true : false,
|
|
|
url: helpers.urlFormat('/home/coupons', {type: INVALID}),
|
|
|
name: '已失效优惠券'
|
|
|
}
|
|
|
];
|
|
|
|
|
|
return data;
|
|
|
})();
|
|
|
};
|
|
|
data.pager = coupons.pager;
|
|
|
|
|
|
module.exports = {
|
|
|
couponsData
|
|
|
return data;
|
|
|
})();
|
|
|
}
|
|
|
}; |
...
|
...
|
|