Authored by zzzzzzz

消息完成大部分

... ... @@ -7,6 +7,7 @@ const _getList = (req, res, next) => {
model.getList({
page: req.body.page,
size: 20,
uid: req.user.uid,
}).then(result => {
let options = {
module: 'home',
... ... @@ -28,6 +29,7 @@ const _msgDetail = (req, res, next) => {
page: req.body.page,
size: 1000,
msgid: req.query.id,
uid: req.user.uid,
}).then(result => {
let options = {
pageHeader: headerModel.setNav({
... ... @@ -47,4 +49,24 @@ exports.index = (req, res, next) => {
} else {
_msgDetail(req, res, next);
}
}
exports.ajaxDelMes = (req, res, next) => {
model.delMsg({
uid: req.user.uid,
msgid: req.body.id,
}).then(result => {
res.send(result);
res.end();
}).catch(next);
}
exports.pickCoupon = (req, res, next) => {
model.pickCoupon({
uid: req.user.uid,
couponId: req.body.id,
}).then(result => {
res.send(result);
res.end();
}).catch(next);
}
\ No newline at end of file
... ...
// 消息 by acgpiano
"use strict";
const moment = require('moment');
const api = global.yoho.API;
//格式化时间
const _formatTime = (time) => {
return moment(time).format('HH:mm:ss');
}
//获取列表页
const _list = (result) => {
let final = [];
if (result.data && result.data.list) {
//PHP排序了,应该不用
for (let item of result.data.list) {
final.push({
id: item.id,
isNotReaded: item.is_read === 'Y' ? false : true,
title: item.title,
time: `${item.create_date} ${_formatTime(item.create_time*1000)}`,
});
}
}
... ... @@ -19,41 +27,43 @@ const _list = (result) => {
}
//获取生日信息
const _getBirthCouponById = (uid) => {
return api.get('', {
method: 'app.promotion.queryBirthCoupon',
uid: uid,
couponType: 4,
});
}
//获取详情页
const _detail = (result, id, uid) => {
let arr = [];
return api.get('', {
method: 'app.promotion.queryBirthCoupon',
uid: uid,
couponType: 4,
}).then(result => {
if (result && result['data']) {
for (let item of result['data']) {
arr.push({
'id': item['id'] ? item['id'] : '',
'remark': item['couponName'] ? item['couponName'] : '',
// 'useTime': item['body']['use_time'] ? item['body']['use_time'] : '',
// 'pickTime': item['body']['collar_time'] ? item['body']['collar_time'] : '',
'canPick': true
});
}
}
return arr;
});
}
//获取详情页
const _detail = (result, id, couponData) => {
let final = {};
if (result.data && result.data.list) {
for (let item of result.data.list) {
if (item.id === Number(id) && item.type !== 'showGetCoin' && item.type !== 'notice') {
final.sender = item.from;
final.title = item.title;
final.time = 11; //时间
final.time = `${item.create_date} ${_formatTime(item.create_time*1000)}`; //时间
//判断消息类型
switch (item['type']) {
case 'pullCoupon':
//领取生日券消息
final['coupons'] = [];
coupondata = _getBirthCouponById(uid); //获取优惠券信息
if (coupondata && coupondata['data']) {
for (let item of coupondata['data']) {
final['coupons'].push({
'id': item['id'] ? item['id'] : '',
'remark': item['couponName'] ? item['couponName'] : '',
'useTime': item['body']['use_time'] ? item['body']['use_time'] : '',
'pickTime': item['body']['collar_time'] ? item['body']['collar_time'] : '',
'canPick': true
});
}
}
final['coupons'] = couponData; //获取优惠券信息
break;
case 'button':
//促销活动
... ... @@ -88,21 +98,75 @@ const _detail = (result, id, uid) => {
return final;
}
//获取列表或详情
const getList = (params) => {
return api.get('', {
method: 'app.inbox.getlist',
page: params.page || 1,
size: params.size || 10,
uid: params.uid || 15184104,
uid: params.uid || 123,
}).then(result => {
if (params.msgid) {
return _detail(result, params.msgid, params.uid);
// 绕的一比
return _getBirthCouponById(params.uid || 20000382).then(couponData => {
return _detail(result, params.msgid, couponData);
});
} else {
return _list(result);
}
});
}
//删除消息
const delMsg = (params) => {
return api.get('', {
method: 'app.inbox.delmessage',
uid: params.uid || 20000382,
id: params.msgid,
}).then(result => {
if(result && result.code === 200){
return {
code: 200
}
}
else {
return {
code: 400,
message: '出错啦~',
}
}
});
}
//领取优惠券
const pickCoupon = (params) => {
return api.get('', {
method: 'app.promotion.getCoupon',
uid: params.uid || 20000382,
couponId: params.couponId,
}).then(result => {
if(result && result.code === 200) {
return {
code: 200
}
}
else if(result.code === 401){
return {
code: 401,
message: '优惠券已经领取',
}
}
else{
return {
code: 400,
message: '出错啦~',
}
}
});
}
module.exports = {
getList,
delMsg,
pickCoupon,
}
\ No newline at end of file
... ...
... ... @@ -79,4 +79,6 @@ router.get('/helpDetail', help.helpDetail);
// 消息
router.use('/message', message.index);
router.post('/ajaxDelMes', message.ajaxDelMes);
router.post('/pickCoupon', message.pickCoupon);
module.exports = router;
... ...
... ... @@ -44,7 +44,7 @@
{{#sale}}
<!-- 促销消息 -->
<div class="sale-img">
<img src="{{image}}">
<img src="{{image image}}">
</div>
<br />
<br />
... ...
<div class="massage-page yoho-page">
{{#if list}}
{{#list}}
<div class="massage-list">
<div class="massage-list" data-id="{{id}}">
{{#if isNotReaded}}
<strong></strong>
{{/if}}
... ... @@ -9,4 +10,7 @@
<i class="iconfont del">&#xe621;</i>
</div>
{{/list}}
{{else}}
<p style="text-align:center">您没有消息</p>
{{/if}}
</div>
\ No newline at end of file
... ...
// 消息列表 by acgpiano
var $ = require('yoho-jquery'),
loading = require('../plugin/loading'),
dialog = require('./dialog');
var $page = $('.massage-page'),
page = 1,
stopLoading = false;
function massageAJAX(page) {
loading.showLoadingMask();
$.ajax({
type: 'POST',
url: '/home/message',
dataType: 'html',
data: {
page: page,
},
success: function(data) {
if ($(data).find('p').html() === '您没有消息') {
stopLoading = true;
window.rePosFooter();
loading.hideLoadingMask();
return;
}
$('.massage-page').append($(data).html());
window.rePosFooter();
loading.hideLoadingMask();
}
});
}
function scrollHandler() {
if (!stopLoading && ($(window).scrollTop() + $(window).height() > $('body').height() - 100)) {
page++;
massageAJAX(page);
}
}
require('../common.js');
$(window).scroll(function() {
!location.search && window.requestAnimationFrame(scrollHandler);
});
// 删除消息
$page.on('touchstart', '.del', function() {
var $good = $(this).closest('.massage-list'),
$id = $good.data('id');
dialog.showDialog({
dialogText: '确定删除这条消息吗?',
hasFooter: {
leftBtnText: '取消',
rightBtnText: '确定'
}
}, function() {
$.ajax({
type: 'POST',
url: '/home/ajaxDelMes',
data: {
id: $id
},
success: function(data) {
if (data.code === 200) {
dialog.showDialog({
dialogText: '删除消息成功',
autoHide: 2000,
fast: true
});
setTimeout(function() {
window.history.go(0);
}, 1200);
} else {
dialog.showDialog({
dialogText: data.message,
autoHide: 2000,
fast: true
});
}
}
});
});
});
var $page = $('.massage-page');
var pickBusy = false;
// 领取生日券
$page.on('touchstart', '.pick-coupon-btn', function() {
if (pickBusy) {
return;
}
pickBusy = true;
var $id = $(this).data('id');
$.ajax({
type: 'POST',
url: '/home/pickCoupon',
data: {
id: $id
},
success: function(data) {
if (data.code === 200) {
dialog.showDialog({
dialogText: '领取成功',
autoHide: 2000,
fast: true
});
$(this).removeClass('pick-coupon-btn');
}
pickBusy = false;
dialog.showDialog({
dialogText: data.message,
autoHide: 2000,
fast: true
});
}
});
});
\ No newline at end of file
... ...