Authored by 郝肖肖

'问卷加极限验证'

1 'use strict'; 1 'use strict';
2 2
  3 +const _ = require('lodash');
3 const semver = require('semver'); 4 const semver = require('semver');
4 const questionModel = require('../models/question'); 5 const questionModel = require('../models/question');
5 const headerModel = require('../../../doraemon/models/header'); // 头部model 6 const headerModel = require('../../../doraemon/models/header'); // 头部model
  7 +const geetest = require('../../passport/controllers/geetest');
6 8
7 exports.list = (req, res, next) => { 9 exports.list = (req, res, next) => {
8 let canShare = false; 10 let canShare = false;
@@ -47,6 +49,35 @@ exports.check = (req, res, next) => { @@ -47,6 +49,35 @@ exports.check = (req, res, next) => {
47 }).catch(next); 49 }).catch(next);
48 }; 50 };
49 51
  52 +exports.geetestLoad = (req, res, next) => {
  53 + req.yoho.captchaShow = false;
  54 + res.locals.useGeetest = true;
  55 +
  56 + if (_.has(res, 'locals.loadJsBefore')) {
  57 + res.locals.loadJsBefore.push({
  58 + src: global.yoho.config.geetestJs
  59 + });
  60 + } else {
  61 + res.locals.loadJsBefore = [
  62 + {
  63 + src: global.yoho.config.geetestJs
  64 + }
  65 + ];
  66 + }
  67 +
  68 + return next();
  69 +};
  70 +
  71 +exports.geetestCheck = (req, res, next) => {
  72 + let testCode = req.body.yohobuy;
  73 +
  74 + if (testCode === global.yoho.config.testCode) {
  75 + return next();
  76 + }
  77 +
  78 + return geetest.validate(req, res, next);
  79 +};
  80 +
50 exports.submit = (req, res, next) => { 81 exports.submit = (req, res, next) => {
51 let params = req.body; 82 let params = req.body;
52 83
@@ -66,8 +97,6 @@ exports.submit = (req, res, next) => { @@ -66,8 +97,6 @@ exports.submit = (req, res, next) => {
66 }).catch(next); 97 }).catch(next);
67 }; 98 };
68 99
69 -  
70 -  
71 exports.detail = (req, res, next) => { 100 exports.detail = (req, res, next) => {
72 let id = parseInt(`0${req.params.id}`, 10); 101 let id = parseInt(`0${req.params.id}`, 10);
73 102
@@ -13,8 +13,6 @@ const check = require(`${cRoot}/check`); @@ -13,8 +13,6 @@ const check = require(`${cRoot}/check`);
13 const question = require(`${cRoot}/question`); 13 const question = require(`${cRoot}/question`);
14 const auth = require('../../doraemon/middleware/auth'); 14 const auth = require('../../doraemon/middleware/auth');
15 15
16 -const validateCode = require('../passport/controllers/validateCode');  
17 -  
18 // const material = require(`${cRoot}/material`); 16 // const material = require(`${cRoot}/material`);
19 const materialNew = require(`${cRoot}/material-new`); 17 const materialNew = require(`${cRoot}/material-new`);
20 18
@@ -27,8 +25,8 @@ router.post('/check/submit', check.submit); @@ -27,8 +25,8 @@ router.post('/check/submit', check.submit);
27 25
28 router.get('/questionnaire', auth, question.list); 26 router.get('/questionnaire', auth, question.list);
29 router.post('/questionnaire/check', question.check); 27 router.post('/questionnaire/check', question.check);
30 -router.post('/questionnaire/submit', validateCode.check, question.submit);  
31 -router.get('/questionnaire/:id', validateCode.load, question.detail); 28 +router.post('/questionnaire/submit', question.geetestCheck, question.submit);
  29 +router.get('/questionnaire/:id', question.geetestLoad, question.detail);
32 router.get('/material', auth, materialNew.list); 30 router.get('/material', auth, materialNew.list);
33 31
34 module.exports = router; 32 module.exports = router;