Authored by 张丽霞

路由重新配置

'use strict';
const mRoot = '../models';
const library = '../../../library';
const couponModel = require(`${mRoot}/coupon`); // 领取优惠券 model
const log = require(`${library}/logger`);
exports.index = (req, res) => {
var renderData = {
module: 'coupon',
page: 'index',
appDownLoadLink: 'http://a.app.qq.com/o/simple.jsp?pkgname=com.yoho'
},
ordercode = req.query.ordercode,
uid = req.query.uid,
mobile = req.query.mobile;
renderData.uid = uid;
renderData.mobile = mobile;
renderData.ordercode = ordercode;
// 测试假数据
// res.render('coupon', renderData); // 渲染页面
couponModel.getPageInfo({
ordercode: ordercode,
uid: uid
}).then((couponData) => {
if (couponData.code === 200) {
// 获取信息成功
couponData.ordercode = ordercode;
}
couponData.appDownLoadLink = renderData.appDownLoadLink;
res.render('coupon', {
result: couponData,
module: 'coupon',
page: 'index',
title: couponData.title
});
}).catch((err) => {
log.error('频道页面渲染错误:' + JSON.stringify(err));
});
};
exports.getCoupon = (req, res) => {
var renderData = {
module: 'coupon',
page: 'index'
};
var ordercode = req.query.ordercode,
mobile = req.query.mobile;
renderData.mobile = mobile;
renderData.ordercode = ordercode;
// //测试假数据
// res.render('coupon', renderData); // 渲染页面
couponModel.getCoupon({
ordercode: ordercode,
mobile: mobile
}).then((couponData) => {
if (couponData.code === 200) {
// 获取信息成功
couponData.ordercode = ordercode;
}
console.log(couponData);
res.json({
result: couponData
});
}).catch((err) => {
log.error('频道页面渲染错误:' + JSON.stringify(err));
});
};
exports.verify = (req, res) => {
var renderData = {
module: 'coupon',
page: 'index'
};
var ordercode = req.query.ordercode,
mobile = req.query.mobile,
identifycode = req.query.identifycode;
renderData.mobile = mobile;
renderData.ordercode = ordercode;
renderData.identifycode = identifycode;
// //测试假数据
// res.render('coupon', renderData); // 渲染页面
couponModel.registerAndSendCoupon({
ordercode: ordercode,
mobile: mobile,
identifycode: identifycode
}).then((couponData) => {
if (couponData.code === 200) {
// 获取信息成功
couponData.ordercode = ordercode;
}
console.log(couponData);
res.json({
result: couponData
});
}).catch((err) => {
log.error('频道页面渲染错误:' + JSON.stringify(err));
});
};
... ...
/**
* sub app coupon
* @author: lixia.zhang<lixia.zhang@yoho.cn>
* @date: 2016/05/31
*/
var express = require('express'),
path = require('path'),
hbs = require('express-handlebars');
var app = express();
// set view engin
var doraemon = path.join(__dirname, '../../doraemon/views'); // parent view root
app.on('mount', function(parent) {
delete parent.locals.settings; // 不继承父 App 的设置
Object.assign(app.locals, parent.locals);
});
app.set('views', path.join(__dirname, 'views/action'));
app.engine('.hbs', hbs({
extname: '.hbs',
defaultLayout: 'layout',
layoutsDir: doraemon,
partialsDir: ['./views/partial', `${doraemon}/partial`],
helpers: require(`${global.library}/helpers`)
}));
// router
app.use(require('./router'));
module.exports = app;
... ...
var API = require('../../../library/api').API;
var api = new API();
const library = '../../../library';
const sign = require(`${library}/sign`);
/**
* 分享页面基础参数
* @param {object} sizeInfo [接口原始数据]
* @return {object} [description]
*/
const getPageInfo = (pageInfo) => {
var dest = {};
dest.shareTitle = pageInfo.data.shareTitle;
dest.shareDesc = pageInfo.data.shareContent;
dest.shareImg = pageInfo.data.shareImgUrl;
dest.shareLink = pageInfo.data.shareUrl;
dest.code = pageInfo.code;
dest.activityID = pageInfo.id;
dest.title = pageInfo.data.h5Title;
dest.activityDesc = pageInfo.data.activityDesc;
dest.couponPic = pageInfo.data.couponPic;
dest.oldUserCouponPic = pageInfo.data.oldUserCouponPic;
dest.mobile = pageInfo.data.mobile;
//强制活动开始,活动上线产品要求这样设置
pageInfo.data.flag = 1;
if (pageInfo.data.flag === 1) {
dest.bgImg = pageInfo.data.activityNormalPic;
} else {
dest.bgImg = pageInfo.data.activityEndPic;
dest.ended = true;
}
dest.message = pageInfo.data.returnMsg;
// 清空变量,释放内存
pageInfo = {};
return dest;
};
const getUserStatus = (param) => {
var dest = {};
dest.code = param.code;
dest.title = param.data.h5Title;
dest.returnCode = param.data.returnCode;
dest.mobile = param.data.mobile;
if (param.data.returnCode === 0) {
dest.geted = true;
} else if (param.data.returnCode === 1) {
dest.wrongNumb = true;
} else if (param.data.returnCode === 2) {
dest.newUser = true;
} else if (param.data.returnCode === 8) {
dest.oldUserAskCouponOnceMore = true;
} else if (param.data.returnCode === 5) {
dest.vertifyWrong = true;
} else {
dest.ended = true;
}
if (param.data.newUser === 1) {
dest.newUser = true;
}
dest.message = param.data.returnMsg;
// 清空变量,释放内存
param = {};
return dest;
};
/**
* 获取分享页面数据
*/
exports.getPageInfo = (data) => {
var defaultParam = {
method: 'app.activity.getInfoOfOrderShare'
},
// 处理完成后,发给后端
infoData = Object.assign(defaultParam, data);
return api.get('', sign.apiSign(infoData)).then(result => {
return getPageInfo(result);
}); // 所有数据返回一个 Promise,方便 Promise.all 调用
};
/**
* 输入手机号领券,新用户返回验证码
*/
exports.getCoupon = (data) => {
var defaultParam = {
method: 'wap.order.drawOrderShareCoupon'
},
// 处理完成后,发给后端
phoneData = Object.assign(defaultParam, data);
return api.get('', sign.apiSign(phoneData)).then(result => {
return getUserStatus(result);
}); // 所有数据返回一个 Promise,方便 Promise.all 调用
};
/**
* 验证注册码进行注册并发券
*/
exports.registerAndSendCoupon = (data) => {
var defaultParam = {
method: 'wap.order.registerAndSendCoupon'
},
// 处理完成后,发给后端
verifyData = Object.assign(defaultParam, data);
return api.get('', sign.apiSign(verifyData)).then(result => {
return getUserStatus(result);
}); // 所有数据返回一个 Promise,方便 Promise.all 调用
};
... ...
/**
* router of sub app coupon
* @author: lixia.zhang<lixia.zhang@yoho.cn>
* @date: 2016/05/31
*/
'use strict';
const router = require('express').Router();
const cRoot = './controllers';
const coupon = require(`${cRoot}/coupon`);
// routers
router.get('/coupon', coupon.index);
router.get('/coupon/phone', coupon.getCoupon);
router.get('/coupon/verify', coupon.verify);
module.exports = router;
... ...
{{# result}}
<div class="receive-coupon-page">
<div class="bg-contain">
<img src="{{image bgImg 640 1136}}">
</div>
<p class="hidden" id="orderCode">{{ordercode}}</p>
<p class="hidden" id="oldUserCouponPic">{{oldUserCouponPic}}</p>
<p class="hidden" id="newUserCouponPic">{{couponPic}}</p>
<p class="hidden" id="activityEnded">{{ended}}</p>
<p class="hidden" id="newUser">{{newUser}}</p>
<p class="hidden" id="tipMessage">{{message}}</p>
<p class="hidden" id="activityID">{{activityID}}</p>
<input type="hidden" id="shareTitle" value="{{shareTitle}}">
<input type="hidden" id="shareDesc" value="{{shareDesc}}">
<input type="hidden" id="shareImg" value="{{shareImg}}">
<input type="hidden" id="shareLink" value="{{shareLink}}">
<div class="page">
<div class="gain-coupon-centent hidden">
<div class="coupon">
<img src={{couponPic}}>
</div>
<p class="phone" id="mobile"></p>
<p>登录Yoho!Buy有货客户端即可使用</p>
<div class="use-coupon-btn">
<a href="{{appDownLoadLink}}">马上去Yoho!Buy有货使用</a>
</div>
<span class="description"></span>
</div>
<div class="coupon-centent">
<div class="title">
</div>
<div class="under-title">
<div class="input-content phone-input-content has-clear">
<input id="phone" type="text" placeholder="请输入手机号" maxlength="11"/>
<i class="clear-input iconfont hidden clear-mobile">&#xe626;</i>
<div>领取红包</div>
</div>
<div class="input-content vertify-input-content hidden">
<input id="verification" type="text" placeholder="请输入验证码" maxlength="4"/>
<i class="clear-input iconfont hidden clear-verify">&#xe626;</i>
<div>验证领红包</div>
</div>
<div class="coupon-description">
<span></span>
</div>
</div>
</div>
</div>
<div class="tip-wrap hidden">
<div class="tip fail">
<div class="header">
</div>
<div class="title">
{{message}}
<!-- 优惠券已领光 -->
</div>
<div class="logo">
</div>
</div>
</div>
<div class="messages hidden" id="dialog">
<div class="content"></div>
</div>
<div class="mask hidden"></div>
<div class="dialog hidden" id="message">
<span class="close"></span>
{{{activityDesc}}}
</div>
</div>
{{/result}}
... ...