Authored by ccbikai(👎🏻🍜)

Merge remote-tracking branch 'origin/feature/fotmatJs' into feature/webpack2

... ... @@ -20,7 +20,6 @@ const path = require('path');
const compression = require('compression');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const favicon = require('serve-favicon');
const uuid = require('uuid');
const pkg = require('./package.json');
... ... @@ -74,7 +73,6 @@ app.use(global.yoho.hbs({
app.use(global.yoho.middleware());
app.use(favicon(path.join(__dirname, '/favicon.ico')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
... ...
... ... @@ -21,6 +21,7 @@ exports.submit = (req, res) => {
if (req.body.captcha === captchaCode) {
let key = `pc:limiter:${remoteIp}`;
cache.delAsync(key).then(() => {
return res.json({
code: 200
... ...
... ... @@ -7,7 +7,7 @@ exports.index = function(req, res, next) {
type: req.query.type
}).then((result) => {
if (!result) {
return next();
return next();
}
res.render('feature', {
module: 'activity',
... ...
... ... @@ -10,7 +10,7 @@ const inviteTitle = {
normal: '有货 邀请好友赢福利'
};
const _ = require('lodash');
const md5 = require('md5');
const md5 = require('yoho-md5');
const secretKey = '5466ee572bcbc75830d044e66ab429bc';// 秘钥
... ...
... ... @@ -580,6 +580,7 @@ exports.needKnow = function(req, res) {
});
let type = req.query.type;
switch (type) {
case '1':
res.render('trend/need-know1', responseData);
... ...
... ... @@ -189,7 +189,7 @@ const oldList = (params) => {
if (result && result.data) {
resu = result.data;
}
return resu;
});
};
... ... @@ -1089,7 +1089,7 @@ const orderDetail = (params) => {
}
return adviserDetail(newNarams).then(newResult => {
let adviserDetail= '';
let adviserDetail = '';
if (newResult && newResult.data) {
adviserDetail = {
... ...
... ... @@ -201,7 +201,7 @@ const payCod = (req, res, next) => {
let param = {
uid: req.user.uid,
udid: req.sessionID || require('md5')(req.ip) || 'yoho',
udid: req.sessionID || require('yoho-md5')(req.ip) || 'yoho',
orderCode: req.query.order_code,
contentCode: '78d0fb6c97d691863286edcb4d8abfa9',
client_id: req.cookies._yasvd || '',
... ... @@ -247,7 +247,7 @@ const payAli = (req, res, next) => {
let param = {
uid: req.user.uid,
udid: req.sessionID || require('md5')(req.ip) || 'yoho',
udid: req.sessionID || require('yoho-md5')(req.ip) || 'yoho',
orderCode: req.query.out_trade_no,
contentCode: '78d0fb6c97d691863286edcb4d8abfa9'
};
... ... @@ -298,7 +298,7 @@ const payZero = (req, res, next) => {
let param = {
uid: req.user.uid,
udid: req.sessionID || require('md5')(req.ip) || 'yoho',
udid: req.sessionID || require('yoho-md5')(req.ip) || 'yoho',
orderCode: req.query.order_code,
contentCode: '78d0fb6c97d691863286edcb4d8abfa9',
isPay: true
... ...
... ... @@ -11,7 +11,7 @@ const helpers = global.yoho.helpers;
const common = require('./common');
const sign = require('./sign');
const payHelpersBank = require('./bank');
const md5 = require('md5');
const md5 = require('yoho-md5');
const logger = global.yoho.logger;
const ALIPAY_URL = 'https://mapi.alipay.com/gateway.do';
... ...
... ... @@ -9,7 +9,7 @@
const config = global.yoho.config;
const helpers = global.yoho.helpers;
const sign = require('./sign');
const md5 = require('md5');
const md5 = require('yoho-md5');
const moment = require('moment');
const logger = global.yoho.logger;
const AlipayConfig = config.alipayConfig;
... ...
... ... @@ -14,7 +14,7 @@ const rp = require('request-promise');
const Promise = require('bluebird');
const co = Promise.coroutine;
const sign = require('./sign');
const md5 = require('md5');
const md5 = require('yoho-md5');
const moment = require('moment');
const common = require('./common');
... ...
... ... @@ -11,7 +11,7 @@ const serviceAPI = global.yoho.ServiceAPI;
const utils = '../../../utils';
const productProcess = require(`${utils}/product-process`);
const ApipayConfig = global.yoho.config.alipayConfig;
const md5 = require('md5');
const md5 = require('yoho-md5');
const payApi = require('./pay-api');
const helpers = global.yoho.helpers;
const _ = require('lodash');
... ...
... ... @@ -25,7 +25,7 @@ const praiseArticle = (req, res, next) => {
/* 判断参数是否有效 */
let id = req.body.id,
opt = req.body.opt || 'ok',
udid = req.sessionID || require('md5')(req.ip) || 'yoho';
udid = req.sessionID || require('yoho-md5')(req.ip) || 'yoho';
if (!stringProcess.isNumeric(id)) {
res.json({ code: 400, message: '非法请求', data: '' });
... ...
... ... @@ -21,7 +21,7 @@ exports.index = (req, res, next) => {
let params = {
uid: req.user.uid,
channel: req.query.channel || 1,
udid: require('md5')(req.ip)
udid: require('yoho-md5')(req.ip)
};
let studentSwitch = !_.get(req.app.locals.wap, 'user.removeStudentIdentification', true);
... ...
... ... @@ -15,7 +15,7 @@ const AlipayStrategy = require('./models/passport-alipay').Strategy;
const _ = require('lodash');
// const md5 = require('md5');
// const md5 = require('yoho-md5');
const config = global.yoho.config;
const logger = global.yoho.logger;
... ...
... ... @@ -8,7 +8,7 @@
const _ = require('lodash');
const passport = require('passport');
// const md5 = require('md5');
// const md5 = require('yoho-md5');
const uuid = require('uuid');
const cookie = global.yoho.cookie;
const helpers = global.yoho.helpers;
... ...
... ... @@ -434,6 +434,7 @@ let setPassword = (req, res, next) => {
if (!resultCopy) {
return;
}
// 返回跳转到来源页面
let refer = req.cookies.refer;
... ...
... ... @@ -196,6 +196,7 @@ exports.indexCheck = (req, res, next) => {
logger.info(`captcha validate result${captcode.toString() === captcodeValid},user:${captcode};server:${captcodeValid}`);
// 验证
if ([area, mobile].some(val => val === '')) {
return em.emit('reject', Object.assign(errorData, { message: '请填写手机号'}));
... ...
... ... @@ -8,7 +8,7 @@
'use strict';
const util = require('util');
const _ = require('lodash');
const md5 = require('md5');
const md5 = require('yoho-md5');
const passport = require('passport-strategy');
// 支付宝网关地址
... ...
... ... @@ -241,6 +241,7 @@ let getProductData = (data) => {
productList: productProcess.processProductList(bundleData && bundleData.productList)
};
}
/* 量贩 */
if (bundleData && _.get(bundleData, 'bundleInfo.discountType', null) === 2) {
finalResult.discountBuy = {
... ...
... ... @@ -23,7 +23,7 @@ const newDetail = {
.catch()
.then(result => {
let data = {};
if (result.data) {
data = result.data;
if (data.storageSum > 0) {
... ...
... ... @@ -150,11 +150,11 @@ exports.saveEvalute = (req, res) => {
params.promoter = req.body.promoter;
params.stars = req.body.stars;
if(req.body.reasonIds) {
if (req.body.reasonIds) {
params.reasonIds = req.body.reasonIds;
}
if(req.body.reasonMsg) {
if (req.body.reasonMsg) {
params.reasonMsg = req.body.reasonMsg;
}
... ...
... ... @@ -10,6 +10,7 @@ const captchaPolicy = require('./policies/captcha');
const reporterPolicy = require('./policies/reporter');
const IP_WHITE_LIST = [
// '106.38.38.146',
// '218.94.75.58'
];
... ... @@ -20,6 +21,7 @@ const limiter = (rule, policy, context) => {
module.exports = (req, res, next) => {
let remoteIp = req.get('X-Forwarded-For') || req.connection.remoteAddress;
logger.debug('request remote ip: ', remoteIp);
if (remoteIp.indexOf(',') > 0) {
... ...
... ... @@ -22,7 +22,7 @@ module.exports = (limiter, policy) => {
return cache.getAsync(key).then((result) => {
if (result) {
if (result > 100) {
return Promise.resolve(policy);//policy(req, res, next);
return Promise.resolve(policy);// policy(req, res, next);
} else {
return Promise.resolve(true);
}
... ...
... ... @@ -34,7 +34,6 @@
"feed": "^0.3.1",
"geetest": "^4.1.1",
"lodash": "^4.17.4",
"md5": "^2.1.0",
"memory-cache": "^0.1.6",
"moment": "^2.18.1",
"oneapm": "^1.2.20",
... ... @@ -47,11 +46,11 @@
"postcss-sprites": "^4.2.0",
"request": "^2.81.0",
"request-promise": "^3.0.0",
"serve-favicon": "^2.4.0",
"uuid": "^3.0.1",
"xml2js": "^0.4.17",
"yoho-express-session": "^2.0.0",
"yoho-node-lib": "=0.2.11",
"yoho-md5": "^2.0.0",
"yoho-zookeeper": "^1.0.8"
},
"devDependencies": {
... ...
require('3party/check.page.css');
require('../common');
// 图片验证码
let ImgCheck = require('plugin/img-check');
... ...
... ... @@ -15,6 +15,7 @@ function swiperInit() {
var spacebetween = $(this).data('spacebetween');
var autoplay = $(this).data('autoplay');
var pagination = $(this).find('.swiper-pagination');
if (spacebetween) {
opt.spaceBetween = Number(spacebetween);
}
... ...
... ... @@ -17,6 +17,7 @@ require('../common');
require('activity/promotion/promotion.page.css');
var share = require('../common/share');
share({
title: '【有货】学生认证看过来!专享特价,任性分期,立即走起→',
link: location.href,
... ... @@ -298,7 +299,7 @@ $(
}
}
if (($(".login-btn").length > 0) || $(".reg-now").length > 0) {
if (($('.login-btn').length > 0) || $('.reg-now').length > 0) {
var shareUrl = location.href.replace('userUid=', 'oldUid=');
... ...
... ... @@ -51,7 +51,7 @@ function formatDate(time) {
if (minutes < 10) {
minutes = '0' + minutes;
}
return year + '年' + month + '月' + date + '日' + ' ' + week[day-1] + ' ' + hour + ':' + minutes;
return year + '年' + month + '月' + date + '日' + ' ' + week[day - 1] + ' ' + hour + ':' + minutes;
}
function autoScroll(thisPo) {
... ... @@ -196,7 +196,7 @@ function diaHide() {
function removeByValue(arr, val) {
for (var i=0; i<arr.length; i++) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] == val) {
arr.splice(i, 1);
break;
... ... @@ -276,7 +276,7 @@ function submitDia() {
// 修改弹框样式
$('.tap-hightlight').css('color', '#007aff');
$('.dialog-content').css({'text-align': 'left', 'padding': '0 0.75rem 0.5rem'});
$('.dialog-content').css({'text-align': 'left', padding: '0 0.75rem 0.5rem'});
}
function setCookieArr() {
... ... @@ -452,7 +452,7 @@ $(
$(this).css('margin-top', newTop + 'px');
} else {
var newTop = (w_height - $(this).height()) / 2;
$(this).css('margin-top', newTop + 'px');
}
}
... ... @@ -481,9 +481,9 @@ $(
var minBoxIndex = $.inArray(minBoxHeight, boxArr);
$(value).css({
'position': 'absolute',
'top': minBoxHeight,
'left': box.eq(minBoxIndex).position().left
position: 'absolute',
top: minBoxHeight,
left: box.eq(minBoxIndex).position().left
});
boxArr[minBoxIndex] += box.eq(index).height();
var newHeight = $(this).position().top + box.eq(index).height();
... ... @@ -588,7 +588,7 @@ $(
function() {
if (window.cookie('chosenStyle').indexOf($(this).text()) > -1) {
$(this).addClass('chosen');
styleNow ++;
styleNow++;
}
}
);
... ... @@ -971,6 +971,7 @@ $(
}
var styleStr = new Array();
$('.style-ul li').on('click', function() {
$(this).parents('.style-ul').siblings('.style-ul').find('li').removeClass('chosen');
var $this = $(this);
... ... @@ -1035,4 +1036,4 @@ $(
}
}
}
);
\ No newline at end of file
);
... ...
... ... @@ -171,7 +171,7 @@ function queryString() {
/**
* 对象字段排序
*/
function mapSort (obj) {
function mapSort(obj) {
if (!obj) {
return {};
}
... ...
... ... @@ -65,6 +65,7 @@ info.initInfosEvt($infosContainer);
// 文字介绍收起与展开
$('#more-intro-click-range').on('click', function(e) {
var $this = $imt.parent();
e.preventDefault(); // 防止收缩后误点到商品产生跳转
$this.toggleClass('spread');
... ... @@ -117,8 +118,8 @@ if ($('#brand-like').length) {
} else if (data.code === 400 || data.code === 412) {
if (jumpToApp === '1') {
var url = location.href + '&openby:yohobuy={"action":"go.weblogin","params":{"jumpurl":{"url":"http:\/\/guang.m.yohobuy.com\/plustar\/brandinfo","param":{"id":'
+ window.queryString.id + '}},"requesturl":{"url":"\/guang\/api\/v1\/favorite\/togglebrand","param":{"brand_id":"' + $('#brand-info').data('id') + '"}},"priority":"Y"}}';
var url = location.href + '&openby:yohobuy={"action":"go.weblogin","params":{"jumpurl":{"url":"http:\/\/guang.m.yohobuy.com\/plustar\/brandinfo","param":{"id":' +
window.queryString.id + '}},"requesturl":{"url":"\/guang\/api\/v1\/favorite\/togglebrand","param":{"brand_id":"' + $('#brand-info').data('id') + '"}},"priority":"Y"}}';
$('body').append('<a href=' + url + ' style="display:none;"><span class="jump-login">&nbsp;</span></a>');
... ...
... ... @@ -90,6 +90,7 @@ page = {
$mask.hide();
$ways.hide();
},
// 切换$nextBtn disable状态
toggleNextBtn: function() {
var bool = Boolean($.trim($phoneNum.val()));
... ... @@ -150,4 +151,4 @@ page = {
$(function() {
page.init();
});
\ No newline at end of file
});
... ...
... ... @@ -56,28 +56,28 @@ function show(con, btn) {
if (btn && $.isArray(btn) && btn.length === 1) {
if (!btn[0].href) {
buttons += '<a class="order-tip-btn1 ' + btn[0].class
+ '"><span>' + btn[0].text
+ '</span></a>';
buttons += '<a class="order-tip-btn1 ' + btn[0].class +
'"><span>' + btn[0].text +
'</span></a>';
} else {
buttons += '<a href="' + btn[0].href
+ '" class="order-tip-btn1 ' + btn[0].class
+ '">' + btn[0].text
+ '</a>';
buttons += '<a href="' + btn[0].href +
'" class="order-tip-btn1 ' + btn[0].class +
'">' + btn[0].text +
'</a>';
}
}
if (btn && $.isArray(btn) && btn.length > 1) {
$.each(btn, function(key, value) {
if (!value.href) {
buttons += '<a class="' + value.class
+ '"><span>' + value.text
+ '</span></a>';
buttons += '<a class="' + value.class +
'"><span>' + value.text +
'</span></a>';
} else {
buttons += '<a href="' + value.href
+ '" class="' + value.class
+ '">' + value.text
+ '</a>';
buttons += '<a href="' + value.href +
'" class="' + value.class +
'">' + value.text +
'</a>';
}
});
}
... ...
... ... @@ -83,7 +83,7 @@ function getUrlParam(name) {
}
defaultOpt = $.extend({
yh_channel: getUrlParam('channel') || defaultOpt.channel || 'boys', //TODO GO ON!
yh_channel: getUrlParam('channel') || defaultOpt.channel || 'boys', // TODO GO ON!
saleType: 1
}, defaultOpt);
... ...
... ... @@ -380,4 +380,4 @@ setTimeout(() => {
});
// 加载详情页的返回顶部按钮并注册事件-end
}(productSkn, productId, brandId));
\ No newline at end of file
}(productSkn, productId, brandId));
... ...
... ... @@ -46,7 +46,7 @@ require('common');
// 首屏加载标志
var firstScreen = $('.firstscreen-goods').children().size() > 0;
var isRecYas = window.queryString.needSuggestion === 'Y' || $('.word-content').length ? 'Y' : 'N'; // 是否是关键词
var isRecYas = window.queryString.needSuggestion === 'Y' || $('.word-content').length ? 'Y' : 'N'; // 是否是关键词
var $listNav = $('#list-nav'),
... ...
... ... @@ -87,7 +87,7 @@ $(window).on('seckill', function(event, detailData) {
type: 'GET',
url: ajaxUrl + '?tamp=' + timestamp,
success: function(data) {
// 秒杀是否结束
if (data == '' || data.status === 0 || data.status === 3) {
window.location.replace('/product/' + $('#productSkn').val() + '.html'); // 商品url改版
... ... @@ -134,7 +134,7 @@ $(window).on('seckill', function(event, detailData) {
var seckillData = data.secKillSku;
detailData.cartInfo.skus.forEach(
function (val) {
function(val) {
seckillData.forEach(
function(item) {
if (val.skuId === item.productSku) {
... ... @@ -219,7 +219,7 @@ $(window).on('seckill', function(event, detailData) {
$('.current-price').show();
timeInit(data);
}
}
},
error: function() {
... ... @@ -315,7 +315,7 @@ $(window).on('seckill', function(event, detailData) {
startTime = data.startTime;
endTime = data.endTime;
diffTime = data.currentTime;
nowTime = diffTime;
nowTime = diffTime;
if (startTime > nowTime) {
offsetTime = startTime - nowTime;
} else if (nowTime > startTime && nowTime < endTime) {
... ...
... ... @@ -59,8 +59,8 @@ module.exports = {
},
stringify: function(obj) {
if (!obj) {
return '';
}
return '';
}
return JSON.stringify(obj);
},
repeat: function(n, options) {
... ...