...
|
...
|
@@ -10,17 +10,31 @@ const api = global.yoho.API; |
|
|
const _ = require('lodash');
|
|
|
const Promise = require('bluebird');
|
|
|
|
|
|
const userApi = require('./user-api');
|
|
|
const setPager = require(`${global.utils}/pager`).setPager;
|
|
|
|
|
|
const co = Promise.coroutine;
|
|
|
|
|
|
const getMessageAsync = (uid, page, size) => {
|
|
|
const getMessageTabList = (uid) => {
|
|
|
return api.get('', {
|
|
|
method: 'app.inbox.getlist',
|
|
|
method: 'app.inbox.getAllInboxCatInfo',
|
|
|
uid: uid
|
|
|
}, {code: 200});
|
|
|
};
|
|
|
|
|
|
const getMessageAsync = (uid, page, size, type) => {
|
|
|
let params = {
|
|
|
method: 'app.inbox.getlistnew',
|
|
|
uid: uid,
|
|
|
page: page || 1,
|
|
|
size: size || 10
|
|
|
}, {code: 200});
|
|
|
};
|
|
|
|
|
|
if (type) {
|
|
|
params.displayTab = type;
|
|
|
}
|
|
|
|
|
|
return api.get('', params, {code: 200});
|
|
|
};
|
|
|
|
|
|
const delMessageAsync = (uid, id) => {
|
...
|
...
|
@@ -66,28 +80,69 @@ const getCouponAsync = (uid) => { |
|
|
* 获取消息列表
|
|
|
* @function getMessageList
|
|
|
* @param { Number } uid 用户uid
|
|
|
* @param { Number } page 页码
|
|
|
* @param { Object } params url参数
|
|
|
* @param { Number } limit 每页数目
|
|
|
* @return { Object } 消息列表数据
|
|
|
*/
|
|
|
const getMessageList = (uid, page, limit) => {
|
|
|
let process = function*() {
|
|
|
let resData = {};
|
|
|
let result = yield getMessageAsync(uid, page, limit);
|
|
|
const getMessageList = (uid, params, limit) => {
|
|
|
let resData = {};
|
|
|
let page = parseInt(`0${params.page}`, 10) || 1,
|
|
|
type = parseInt(`0${params.type}`, 10);
|
|
|
|
|
|
return Promise.all([
|
|
|
userApi.getUserInfo(uid),
|
|
|
getMessageTabList(uid),
|
|
|
getMessageAsync(uid, page, limit, type)
|
|
|
]).then(result => {
|
|
|
const msgBaseUrl = '/home/message';
|
|
|
|
|
|
resData.userThumb = _.get(result, '[0].data.head_ico', '');
|
|
|
|
|
|
let tabList = [{
|
|
|
name: '全部',
|
|
|
focus: !type,
|
|
|
href: msgBaseUrl
|
|
|
}];
|
|
|
|
|
|
let focusTabName = '';
|
|
|
|
|
|
_.forEach(_.get(result, '[1]data.list', []), value => {
|
|
|
let tab = {
|
|
|
name: `${value.inboxCatName}`,
|
|
|
focus: type === value.id * 1,
|
|
|
href: `${msgBaseUrl}?type=${value.id}`
|
|
|
};
|
|
|
|
|
|
if (value.unReadCount * 1) {
|
|
|
tab.name += ` (${value.unReadCount})`;
|
|
|
}
|
|
|
|
|
|
if (tab.focus) {
|
|
|
focusTabName = value.inboxCatName;
|
|
|
}
|
|
|
|
|
|
tabList.push(tab);
|
|
|
});
|
|
|
|
|
|
resData.tabList = tabList;
|
|
|
|
|
|
if (result.data) {
|
|
|
if (result[2].data) {
|
|
|
let data = result[2].data;
|
|
|
let msg = [];
|
|
|
|
|
|
_.forEach(_.get(result, 'data.list', []), value => {
|
|
|
_.forEach(_.get(data, 'list', []), value => {
|
|
|
// 信息过滤
|
|
|
if (value.type === '$inboxval' || value.type === 'notice') {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
let href = `/home/message/detail?id=${value.id}&page=${page}`;
|
|
|
|
|
|
msg.push({
|
|
|
id: value.id || 0,
|
|
|
href: `/home/message/detail?id=${value.id}&page=${page}`,
|
|
|
href: type ? href + `&type=${type}` : href,
|
|
|
title: value.title || '',
|
|
|
content: _.get(value, 'body.content', ''),
|
|
|
sender: value.from || '',
|
|
|
time: value.create_date,
|
|
|
isNew: value.is_read === 'Y' ? false : true
|
...
|
...
|
@@ -96,40 +151,47 @@ const getMessageList = (uid, page, limit) => { |
|
|
|
|
|
resData.messages = msg;
|
|
|
|
|
|
let pagerList = setPager(_.get(result, 'data.page_total', 0),
|
|
|
Object.assign(params, {page: page}));
|
|
|
|
|
|
resData.pager = Object.assign({
|
|
|
count: _.get(result, 'data.total', 0),
|
|
|
count: _.get(data, 'total', 0),
|
|
|
curPage: page,
|
|
|
totalPages: _.get(result, 'data.page_total', 0)
|
|
|
}, setPager(_.get(result, 'data.page_total', 0), {
|
|
|
page: page
|
|
|
}));
|
|
|
totalPages: _.get(data, 'page_total', 0)
|
|
|
}, pagerList);
|
|
|
}
|
|
|
|
|
|
if (_.isEmpty(resData.messages)) {
|
|
|
resData.messages = {empty: '您尚未收到任何短消息'};
|
|
|
resData.messages = {empty: `您尚未收到任何${focusTabName}消息`};
|
|
|
}
|
|
|
|
|
|
return resData;
|
|
|
};
|
|
|
|
|
|
return co(process)();
|
|
|
});
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 获取消息内容
|
|
|
* @function getMessageDetail
|
|
|
* @param { Number } uid 用户uid
|
|
|
* @param { Number } page 页码
|
|
|
* @param { Object } params url参数
|
|
|
* @param { Number } limit 每页数目
|
|
|
* @return { Object } 消息列表数据
|
|
|
*/
|
|
|
const getMessageDetail = (uid, mid, page, limit) => {
|
|
|
const getMessageDetail = (uid, params, limit) => {
|
|
|
let mid = parseInt(`0${params.id}`, 10);
|
|
|
let page = parseInt(`0${params.page}`, 10) || 1;
|
|
|
let type = parseInt(`0${params.type}`, 10);
|
|
|
|
|
|
let process = function*() {
|
|
|
let result = yield Promise.all([
|
|
|
userApi.getUserInfo(uid),
|
|
|
getMessageAsync(uid, page, limit, type)
|
|
|
]);
|
|
|
let resData = {
|
|
|
backUrl: `/home/message?page=${page}`
|
|
|
backUrl: `/home/message?page=${page}`,
|
|
|
userThumb: _.get(result, '[0].data.head_ico', '')
|
|
|
};
|
|
|
let result = yield getMessageAsync(uid, page, limit);
|
|
|
let msg = _.find(_.get(result, 'data.list', []), {id: mid});
|
|
|
let msg = _.find(_.get(result, '[1]data.list', []), {id: mid});
|
|
|
|
|
|
if (!_.isEmpty(msg)) {
|
|
|
resData.message = {
|
...
|
...
|
@@ -140,6 +202,26 @@ const getMessageDetail = (uid, mid, page, limit) => { |
|
|
|
|
|
switch (msg.type) {
|
|
|
case 'pullCoupon': // eslint-disable-line
|
|
|
resData.message.birthCoupon = {
|
|
|
text: `${_.get(result, '[0].data.nickname', '')} 有货祝您生日快乐!感谢您对有货的支持,特赠您VIP生日专属礼,即刻享受生日福利吧!`
|
|
|
};
|
|
|
|
|
|
if (_.get(msg, 'body.is_collar', '') === 'Y') {
|
|
|
Object.assign(resData.message.birthCoupon, {
|
|
|
over: true,
|
|
|
overText: '已领取'
|
|
|
});
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
if (_.get(msg, 'body.is_over_time', '') === 'Y') {
|
|
|
Object.assign(resData.message.birthCoupon, {
|
|
|
over: true,
|
|
|
overText: '生日券已过期'
|
|
|
});
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
let couponInfo = yield getCouponAsync(uid);
|
|
|
let coupons = [];
|
|
|
|
...
|
...
|
|