提交 466d88dca27207b291c12f6506d40eb162cee2ff

作者 juvenile
1 个父辈 4be57a5f

update

  1 +.code
  2 +.vscode
  3 +pnpm-lock.yaml
  4 +yarn.lock
  5 +package-lock.json
... ...
  1 +FROM node:16-alpine
  2 +
  3 +RUN mkdir -p /opt/work/hro/frontend/hro
  4 +
  5 +COPY . /opt/work/hro/frontend/hro/server/
  6 +
  7 +WORKDIR /opt/work/hro/frontend/hro
\ No newline at end of file
... ...
... ... @@ -35,17 +35,17 @@ var settings = IoC.create('igloo/settings');
35 35 app.boot(function(err) {
36 36
37 37 if (err) {
38   - logger.error(err.message);
  38 + logger.debug(err.message);
39 39
40 40 if (settings.showStack) {
41   - logger.error(err.stack);
  41 + logger.debug(err.stack);
42 42 }
43 43
44 44 process.exit(-1);
45 45 return;
46 46 }
47 47
48   - logger.info('app booted');
  48 + logger.debug('app booted');
49 49
50 50 });
51 51
... ...
... ... @@ -2,10 +2,10 @@
2 2
3 3 var path = require('path');
4 4
5   -var parentDir = path.join(__dirname, '..');
  5 +var parentDir = path.join(__dirname, '..', '..');
6 6 var appDir = path.join(parentDir, 'server');
7 7
8   -var pkg = require(path.join(parentDir, 'package'));
  8 +// var pkg = require(path.join(parentDir, 'package'));
9 9
10 10 var assetsDir = path.join(parentDir, 'build');
11 11 var publicDir = path.join(assetsDir, 'public');
... ... @@ -18,6 +18,9 @@ exports = module.exports = function () {
18 18
19 19 return {
20 20 defaults: {
  21 + hostConfig: {
  22 + jincao:[ ],
  23 + },
21 24 basicAuth: {
22 25 enabled: false,
23 26 name: 'admin',
... ... @@ -38,7 +41,7 @@ exports = module.exports = function () {
38 41 clientID: '',
39 42 clientSecret: ''
40 43 },
41   - pkg: pkg,
  44 + // pkg: pkg,
42 45 cache: false,
43 46 showStack: true,
44 47 assetsDir: assetsDir,
... ... @@ -86,7 +89,7 @@ exports = module.exports = function () {
86 89 path: '/',
87 90 httpOnly: true,
88 91 secure: false,
89   - sameSite: 'strict',
  92 + // sameSite: 'strict',
90 93 maxAge: maxAge
91 94 },
92 95 resave: true,
... ... @@ -112,7 +115,7 @@ exports = module.exports = function () {
112 115 },
113 116 cookieParser: 'igloo-change-me',
114 117 csrf: {
115   - enabled: false,
  118 + enabled: true,
116 119 options: {
117 120 cookie: {
118 121 maxAge: maxAge
... ... @@ -133,10 +136,12 @@ exports = module.exports = function () {
133 136 redis: {
134 137 host: '192.168.2.70',
135 138 port: 38888,
136   - pass: 'Workai123',
137   - maxAge: maxAge
  139 + pass: 'Q*Kr4?#Rg!',
  140 + maxAge: maxAge,
  141 + name: ''
138 142 },
139 143 output: {
  144 + level: 'info',
140 145 handleExceptions: false,
141 146 colorize: true,
142 147 prettyPrint: false
... ... @@ -168,9 +173,9 @@ exports = module.exports = function () {
168 173 // url: 'http://154.8.229.55:20000/',
169 174 // url:'http://192.144.144.220:20000/',
170 175 //url:'http://127.0.0.1:20000/',
171   - url: 'http://47.110.250.177:20000',
  176 + url: 'http://47.110.250.177:7003/',
172 177 // url:'http://140.143.196.80:20000/',
173   - ossUrl: 'http://192.168.2.72:20000/',
  178 + ossUrl: 'http://47.110.250.177:7003/',
174 179 version: '/v1'
175 180 },
176 181 prefix: '/',
... ... @@ -203,7 +208,8 @@ exports = module.exports = function () {
203 208 prefix: 'igloo_production_test_develop',
204 209 host: '172.21.0.8',
205 210 port: 38888,
206   - pass: 'Workai123'
  211 + pass: 'Q*Kr4?#Rg!',
  212 + name: ''
207 213 },
208 214 logger: {
209 215 'console': true,
... ... @@ -240,6 +246,7 @@ exports = module.exports = function () {
240 246 host: '127.0.0.1',
241 247 port: 6379,
242 248 pass: '',
  249 + name: ''
243 250 }
244 251 },
245 252 production: {
... ... @@ -254,11 +261,22 @@ exports = module.exports = function () {
254 261 enabled: false,
255 262 },
256 263 restful: {
257   - url: 'http://192.168.2.72:20000/',
258   - ossUrl: 'http://192.168.2.72:20000/',
  264 + // url: 'http://192.168.2.72:20000/',
  265 + // ossUrl: 'http://192.168.2.72:20000/',
  266 + url: 'http://47.110.250.177:7003/',
  267 + ossUrl: 'http://47.110.250.177:7003/',
  268 + redirectMobileUrl: 'http://dev.workai.com.cn/authorization-code',
259 269 version: '/v1',
260   - host: '192.168.2.72',
261   - port: 20000
  270 + // host: '192.168.2.72',
  271 + host: '47.110.250.177',
  272 + // port: 20000
  273 + port: 7003
  274 + },
  275 + excellentRestful: {
  276 + url: 'http://47.110.250.177:8000/',
  277 + version: '/v1',
  278 + host: '47.110.250.177',
  279 + port: 8000
262 280 },
263 281 server: {
264 282 host: '0.0.0.0',
... ... @@ -279,17 +297,18 @@ exports = module.exports = function () {
279 297 }
280 298 },
281 299 redis: {
282   - prefix: 'igloo_production',
283   - host: '127.0.0.1',
284   - port: 6379,
285   - pass: 'Workai123'
  300 + prefix: 'igloo_production',
  301 + host:'redis',
  302 + port: 38888,
  303 + pass: 'Q*Kr4?#Rg!',
  304 + name: ''
286 305 },
287 306 csrf: {
288 307 enabled: true,
289 308 options: {
290 309 cookie: {
291 310 maxAge: maxAge,
292   - sameSite: 'strict',
  311 + // sameSite: 'strict',
293 312 path: '/',
294 313 key: '_csrf',
295 314 httpOnly: true
... ... @@ -297,6 +316,7 @@ exports = module.exports = function () {
297 316 }
298 317 },
299 318 output: {
  319 + level: 'info',
300 320 colorize: false
301 321 },
302 322 logger: {
... ... @@ -337,7 +357,7 @@ exports = module.exports = function () {
337 357 prefix: 'igloo_production_recruitIterative',
338 358 host: '127.0.0.1',
339 359 port: 38888,
340   - pass: 'Workai123'
  360 + pass: 'Q*Kr4?#Rg!'
341 361 },
342 362 csrf: {
343 363 enabled: true,
... ... @@ -372,6 +392,7 @@ exports = module.exports = function () {
372 392 // url: 'http://47.110.158.110:20000/',
373 393 url: 'http://47.110.250.177:20000/',
374 394 ossUrl: 'http://140.143.196.80:10001/v1/',
  395 + redirectMobileUrl: 'http://dev.workai.com.cn/authorization-code',
375 396 version: '/v1',
376 397 // host: '47.110.158.110',
377 398 host: '47.110.250.177',
... ... @@ -385,9 +406,9 @@ exports = module.exports = function () {
385 406 },
386 407 redis: {
387 408 prefix: 'igloo_production_hroRecruit',
388   - host: '127.0.0.1',
  409 + host: '10.95.222.102',
389 410 port: 38888,
390   - pass: 'Workai123'
  411 + pass: 'Q*Kr4?#Rg!'
391 412 },
392 413 csrf: {
393 414 enabled: true,
... ... @@ -406,7 +427,7 @@ exports = module.exports = function () {
406 427 requests: true,
407 428 mongo: false,
408 429 file: {
409   - filename: '/opt/work/hro/frontend/hro-tax/igloo.log',
  430 + filename: '/opt/work/hro/frontend/hro-recruit/igloo.log',
410 431 timestamp: true
411 432 }
412 433 }
... ... @@ -438,7 +459,7 @@ exports = module.exports = function () {
438 459 host: '172.26.212.124', //外服环境
439 460 // host: '127.0.0.1',
440 461 port: 38888,
441   - pass: 'Workai123'
  462 + pass: 'Q*Kr4?#Rg!'
442 463 },
443 464 csrf: {
444 465 enabled: true,
... ... @@ -471,13 +492,21 @@ exports = module.exports = function () {
471 492 },
472 493 restful: {
473 494 // url: 'http://47.110.158.110:20000/',
474   - url: 'http://47.110.250.177:20000/',
  495 + // url: 'http://47.110.250.177:20000/',
  496 + url: 'http://39.104.52.206:20000/',
475 497 ossUrl: 'http://140.143.196.80:10001/v1/',
476 498 version: '/v1',
477 499 // host: '47.110.158.110',
478   - host: '47.110.250.177',
  500 + // host: '47.110.250.177',
  501 + host: '39.104.52.206',
479 502 port: 20000
480 503 },
  504 + excellentRestful: {
  505 + url: 'http://39.104.52.206:8000/',
  506 + version: '/v1',
  507 + host: '39.104.52.206',
  508 + port: 8000
  509 + },
481 510 server: {
482 511 host: '0.0.0.0',
483 512 env: 'production',
... ... @@ -488,7 +517,8 @@ exports = module.exports = function () {
488 517 prefix: 'igloo_production_hroSalary',
489 518 host: '172.26.212.124',
490 519 port: 38888,
491   - pass: 'Workai123'
  520 + pass: 'Q*Kr4?#Rg!',
  521 + name: ''
492 522 },
493 523 csrf: {
494 524 enabled: true,
... ... @@ -536,7 +566,7 @@ exports = module.exports = function () {
536 566 prefix: 'igloo_production_sipolicyIterative',
537 567 host: '127.0.0.1',
538 568 port: 38888,
539   - pass: 'Workai123'
  569 + pass: 'Q*Kr4?#Rg!'
540 570 },
541 571 logger: {
542 572 'console': true,
... ... @@ -571,7 +601,7 @@ exports = module.exports = function () {
571 601 prefix: 'igloo_production_hroSipolicy',
572 602 host: '127.0.0.1',
573 603 port: 38888,
574   - pass: 'Workai123'
  604 + pass: 'Q*Kr4?#Rg!'
575 605 },
576 606 logger: {
577 607 'console': true,
... ... @@ -591,13 +621,12 @@ exports = module.exports = function () {
591 621 enabled: false,
592 622 },
593 623 restful: {
594   - url: 'http://47.110.158.110:20000/',
595   - // url: 'http://47.110.250.177:20000/',
  624 + url: 'http://47.110.250.177:20000/',
596 625 // url: 'http://39.104.52.206:20000/',
597 626 ossUrl: 'http://172.21.0.8:10001/v1/',
598 627 version: '/v1',
599   - host: '47.110.158.110',
600   - // host: '47.110.250.177',
  628 + // host: '47.110.158.110',
  629 + host: '47.110.250.177',
601 630 // host: '39.104.52.206',
602 631 port: 20000
603 632 },
... ... @@ -610,10 +639,10 @@ exports = module.exports = function () {
610 639 },
611 640 redis: {
612 641 prefix: 'igloo_production_settlemgmIterative',
613   - host: '127.0.0.1',
614   - // host: '172.26.212.124',
  642 + // host: '127.0.0.1',
  643 + host: '172.26.212.124',
615 644 port: 38888,
616   - pass: 'Workai123'
  645 + pass: 'Q*Kr4?#Rg!'
617 646
618 647 },
619 648 logger: {
... ... @@ -648,13 +677,15 @@ exports = module.exports = function () {
648 677 restful: {
649 678 // url: 'http://47.110.158.110:20000/',
650 679 // url: 'http://47.110.250.177:20000/',
651   - url: 'http://39.104.52.206:20000/',
  680 + url: 'http://47.110.250.177:9103/',
  681 + // url: 'http://39.104.52.206:20000/',
652 682 ossUrl: 'http://140.143.196.80:10001/v1/',
653 683 version: '/v1',
654 684 // host: '47.110.158.110',
655   - // host: '47.110.250.177',
656   - host: '39.104.52.206',
657   - port: 20000
  685 + host: '47.110.250.177',
  686 + // host: '39.104.52.206',
  687 + // port: 20000,
  688 + port: 9103,
658 689 },
659 690 server: {
660 691 host: '0.0.0.0',
... ... @@ -664,17 +695,16 @@ exports = module.exports = function () {
664 695 },
665 696 redis: {
666 697 prefix: 'igloo_production_hroSettlemgm',
667   - // host: '127.0.0.1',
668   - host: '172.26.212.124',
  698 + host: '127.0.0.1',
669 699 port: 38888,
670   - pass: 'Workai123'
  700 + pass: 'Q*Kr4?#Rg!'
671 701 },
672 702 logger: {
673 703 'console': true,
674 704 requests: true,
675 705 mongo: false,
676 706 file: {
677   - filename: '/opt/work/hro/frontend/hro-settlemgm/igloo.log',
  707 + filename: '/opt/work/hro/frontend/hro/igloo.log',
678 708 timestamp: true
679 709 }
680 710 },
... ... @@ -714,7 +744,7 @@ exports = module.exports = function () {
714 744 prefix: 'igloo_production_hroTemp',
715 745 host: '172.21.0.8',
716 746 port: 38888,
717   - pass: 'Workai123'
  747 + pass: 'Q*Kr4?#Rg!'
718 748 },
719 749 logger: {
720 750 'console': true,
... ... @@ -750,7 +780,7 @@ exports = module.exports = function () {
750 780 prefix: 'igloo_production_hroOddjobs',
751 781 host: '192.168.12.188',
752 782 port: 38888,
753   - pass: 'Workai123'
  783 + pass: 'Q*Kr4?#Rg!'
754 784 },
755 785 logger: {
756 786 'console': true,
... ...
  1 +/*
  2 + * @Descripttion:
  3 + * @version:
  4 + * @Author: sueRimn
  5 + * @Date: 2020-06-28 15:34:13
  6 + * @LastEditors: genglw
  7 + * @LastEditTime: 2022-08-30 20:30:09
  8 + */
  9 +
  10 +// # local config (make sure it is ignored by git)
  11 +//
  12 +// This configuration file is specific to each developer's environment,
  13 +// and will merge on top of all other settings from ./config.js
  14 +// (but only will merge in development environment)
  15 +//
  16 +var maxAge = 60 * 60 * 1000 * 25;
  17 +exports = module.exports = function () {
  18 + return {
  19 + cache: false,
  20 + server: {
  21 + host: "0.0.0.0",
  22 + port: 3000,
  23 + },
  24 + email: {
  25 + // <https://github.com/andris9/Nodemailer>
  26 + transport: {
  27 + service: "gmail",
  28 + auth: {
  29 + user: "user@gmail.com",
  30 + pass: "abc123",
  31 + },
  32 + },
  33 + },
  34 + restful: {
  35 + url: 'http://47.110.250.177:9201/',
  36 + // url: 'http://47.110.250.177:7002/',
  37 + ossUrl: 'http://47.110.250.177:7003/',
  38 + version: '/v1',
  39 + host: '47.110.250.177',
  40 + // port: 7002,
  41 + port: 9201,
  42 + },
  43 + excellentRestful: {
  44 + url: "http://47.110.250.177:8000/",
  45 + version: "/v1",
  46 + host: "47.110.250.177",
  47 + port: 8000,
  48 + },
  49 + csrf: {
  50 + enabled: false,
  51 + options: {
  52 + cookie: {
  53 + maxAge: maxAge,
  54 + key: "_csrf",
  55 + path: "/",
  56 + httpOnly: true,
  57 + sameSite: "strict",
  58 + },
  59 + ignoreMethods: ["HEAD", "OPTIONS", "GET"],
  60 + },
  61 + },
  62 + output: {
  63 + level: 'debug',
  64 + colorize: true,
  65 + prettyPrint: true
  66 + },
  67 + liveReload: {
  68 + enabled: true,
  69 + port: 35729,
  70 + },
  71 + };
  72 +};
  73 +
  74 +exports['@singleton'] = true;
... ...
... ... @@ -4,7 +4,7 @@
4 4 * @Author: sueRimn
5 5 * @Date: 2020-06-28 15:34:13
6 6 * @LastEditors: genglw
7   - * @LastEditTime: 2021-12-23 14:56:59
  7 + * @LastEditTime: 2022-08-30 20:30:09
8 8 */
9 9
10 10 // # local config (make sure it is ignored by git)
... ... @@ -18,51 +18,56 @@ exports = module.exports = function () {
18 18 return {
19 19 cache: false,
20 20 server: {
21   - host: '0.0.0.0',
22   - port: 3009
  21 + host: "0.0.0.0",
  22 + port: 3000,
23 23 },
24 24 email: {
25 25 // <https://github.com/andris9/Nodemailer>
26 26 transport: {
27   - service: 'gmail',
  27 + service: "gmail",
28 28 auth: {
29   - user: 'user@gmail.com',
30   - pass: 'abc123'
31   - }
32   - }
  29 + user: "user@gmail.com",
  30 + pass: "abc123",
  31 + },
  32 + },
33 33 },
34 34 restful: {
35   - // url: 'http://118.178.181.180:20000/',
36   - url: 'http://47.110.250.177:9201/',
37   - // url: 'http://47.110.158.110:20000/',
38   - // url:'http://120.27.220.60:20000/',
39   - // url: 'http://39.104.52.206:20000/',
40   - // url: 'http://47.99.189.12:20000/',
41   - ossUrl: 'http://47.110.250.177:9201/',
  35 + // url: 'http://47.110.250.177:9201/',
  36 + url: 'http://47.110.250.177:7002/',
  37 + ossUrl: 'http://47.110.250.177:7003/',
42 38 version: '/v1',
43 39 host: '47.110.250.177',
44   - // host: '47.110.158.110',
45   - // host: '120.27.220.60',
46   - // host: '39.104.52.206',
47   - port: 9201
  40 + port: 7002,
  41 + // port: 9201,
  42 + },
  43 + excellentRestful: {
  44 + url: "http://47.110.250.177:8000/",
  45 + version: "/v1",
  46 + host: "47.110.250.177",
  47 + port: 8000,
48 48 },
49 49 csrf: {
50   - enabled: true,
  50 + enabled: false,
51 51 options: {
52 52 cookie: {
53 53 maxAge: maxAge,
54   - key: '_csrf',
55   - path: '/',
  54 + key: "_csrf",
  55 + path: "/",
56 56 httpOnly: true,
57   - sameSite: 'strict',
  57 + sameSite: "strict",
58 58 },
59   - ignoreMethods: ['HEAD', 'OPTIONS', 'GET']
60   - }
  59 + ignoreMethods: ["HEAD", "OPTIONS", "GET"],
  60 + },
  61 + },
  62 + output: {
  63 + level: 'debug',
  64 + colorize: true,
  65 + prettyPrint: true
61 66 },
62 67 liveReload: {
63 68 enabled: true,
64   - port: 35729
65   - }
  69 + port: 35729,
  70 + },
66 71 };
67 72 };
68 73
... ...
... ... @@ -13,7 +13,7 @@ exports = module.exports = function (logger, rest, settings) {
13 13 'headers': {
14 14 "Accept": "application/json",
15 15 "Content-Type": "application/json",
16   - 'User-Agent': 'Request for Express'
  16 + 'Proxy-User-Agent': 'Request for Express'
17 17 }
18 18 };
19 19 }
... ... @@ -27,10 +27,19 @@ exports = module.exports = function (logger, rest, settings) {
27 27 }
28 28 if (req.ip) {
29 29 options.headers['Client-Ip'] = req.ip
  30 + }
  31 + if (req.headers['x-request-id']) {
  32 + options.headers['X-Request-Id'] = req.headers['x-request-id']
30 33 }
31 34 return options;
32 35 }
33 36
  37 + function addReqResOptions(options, req,res){
  38 + options['req']=req;
  39 + options['res']=res;
  40 + return options;
  41 + }
  42 +
34 43 function addParams(options, req) {
35 44 var postData = !req.body ? '' : JSON.stringify(req.body || {});
36 45 // options.headers['Content-Length'] = postData.length;
... ... @@ -54,7 +63,7 @@ exports = module.exports = function (logger, rest, settings) {
54 63 var tempParam = param.split("=")
55 64 tempParam[1] = urlencode.decode(tempParam[1], 'utf8');
56 65 tempParam[1] = tempParam[1].replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
57   - console.log(tempParam[1]);
  66 + logger.debug(tempParam[1]);
58 67 if (i < (params.length - 1)) {
59 68 if (/[:&+/?%#=]/g.test(tempParam[1])) {
60 69 temp.push(tempParam[0] + "=" + encodeUrl(tempParam[1]) + "&");
... ... @@ -100,13 +109,13 @@ exports = module.exports = function (logger, rest, settings) {
100 109 if (settings.prefix && settings.prefix.length > 1) {
101 110 fullUrl = fullUrl.substring(settings.prefix.length - 1);
102 111 }
103   - var url = fullUrl.substring(4);
  112 + var url = fullUrl.substring(fullUrl.indexOf('/', 1));
104 113 return url;
105 114 }
106 115
107 116 function searchService(services, name) {
108 117 if (services[name]) {
109   - console.log(services[name]);
  118 + logger.debug(services[name]);
110 119 return false;
111 120 } else {
112 121 return true;
... ... @@ -145,9 +154,10 @@ exports = module.exports = function (logger, rest, settings) {
145 154 var url = splitUrl(req.originalUrl);
146 155 var options = getOptions(url, 'GET');
147 156 addToken(options, req);
  157 + addReqResOptions(options, req,res);
148 158 function _success(data, response) {
149 159 if (response.statusCode >= 400 || !data) {
150   - logger.error(options, data);
  160 + logger.debug(options, data);
151 161 res.status(response.statusCode);
152 162 res.send(data);
153 163 } else {
... ... @@ -155,7 +165,7 @@ exports = module.exports = function (logger, rest, settings) {
155 165 }
156 166 }
157 167 function _fail(err) {
158   - logger.error(options, err);
  168 + logger.debug(options, err);
159 169 res.send(err);
160 170 }
161 171 rest.restClient(options, _success, _fail);
... ... @@ -166,9 +176,10 @@ exports = module.exports = function (logger, rest, settings) {
166 176 var options = getOptions(url, 'POST');
167 177 addToken(options, req);
168 178 addParams(options, req);
  179 + addReqResOptions(options, req,res);
169 180 function _success(data, response) {
170 181 if (response.statusCode >= 400) {
171   - logger.error(options, data);
  182 + logger.debug(options, data);
172 183 res.status(response.statusCode);
173 184 res.send(data);
174 185 } else if (!data || 'null' == data || "null\n" == data || '{}' == data) {
... ... @@ -181,7 +192,7 @@ exports = module.exports = function (logger, rest, settings) {
181 192 }
182 193 }
183 194 function _fail(err) {
184   - logger.error(options, err);
  195 + logger.debug(options, err);
185 196 res.send(err);
186 197 }
187 198 rest.restClient(options, _success, _fail);
... ... @@ -192,9 +203,10 @@ exports = module.exports = function (logger, rest, settings) {
192 203 var options = getOptions(url, 'PUT');
193 204 addToken(options, req);
194 205 addParams(options, req);
  206 + addReqResOptions(options, req,res);
195 207 function _success(data, response) {
196 208 if (response.statusCode >= 400) {
197   - logger.error(options, data);
  209 + logger.debug(options, data);
198 210 res.status(response.statusCode);
199 211 res.send(data);
200 212 } else if (!data || 'null' == data || "null\n" == data || '{}' == data) {
... ... @@ -207,7 +219,7 @@ exports = module.exports = function (logger, rest, settings) {
207 219 }
208 220 }
209 221 function _fail(err) {
210   - logger.error(options, err);
  222 + logger.debug(options, err);
211 223 res.send(err);
212 224 }
213 225 rest.restClient(options, _success, _fail);
... ... @@ -218,9 +230,10 @@ exports = module.exports = function (logger, rest, settings) {
218 230 var options = getOptions(url, 'PATCH');
219 231 addToken(options, req);
220 232 addParams(options, req);
  233 + addReqResOptions(options, req,res);
221 234 function _success(data, response) {
222 235 if (response.statusCode >= 400) {
223   - logger.error(options, data);
  236 + logger.debug(options, data);
224 237 res.send(data);
225 238 } else if (!data) {
226 239 res.send({
... ... @@ -232,7 +245,7 @@ exports = module.exports = function (logger, rest, settings) {
232 245 }
233 246 }
234 247 function _fail(err) {
235   - logger.error(options, err);
  248 + logger.debug(options, err);
236 249 res.send(err);
237 250 }
238 251 rest.restClient(options, _success, _fail);
... ... @@ -243,9 +256,10 @@ exports = module.exports = function (logger, rest, settings) {
243 256 var options = getOptions(url, 'HEAD');
244 257 addToken(options, req);
245 258 addParams(options, req);
  259 + addReqResOptions(options, req,res);
246 260 function _success(data, response) {
247 261 if (response.statusCode >= 400) {
248   - logger.error(options, data);
  262 + logger.debug(options, data);
249 263 res.send(data);
250 264 } else if (!data) {
251 265 res.send({
... ... @@ -257,7 +271,7 @@ exports = module.exports = function (logger, rest, settings) {
257 271 }
258 272 }
259 273 function _fail(err) {
260   - logger.error(options, err);
  274 + logger.debug(options, err);
261 275 res.send(err);
262 276 }
263 277 rest.restClient(options, _success, _fail);
... ... @@ -269,9 +283,10 @@ exports = module.exports = function (logger, rest, settings) {
269 283 addToken(options, req);
270 284 addParams(options, req);
271 285 addContentLength(options);
  286 + addReqResOptions(options, req,res);
272 287 function _success(data, response) {
273 288 if (response.statusCode >= 400) {
274   - logger.error(options, data);
  289 + logger.debug(options, data);
275 290 res.status(response.statusCode);
276 291 res.send(data);
277 292 } else if (!data || (data && !data.message)) {
... ... @@ -285,7 +300,7 @@ exports = module.exports = function (logger, rest, settings) {
285 300 }
286 301 }
287 302 function _fail(err) {
288   - logger.error(options, err);
  303 + logger.debug(options, err);
289 304 res.send(err);
290 305 }
291 306 rest.restClient(options, _success, _fail);
... ...
1   -const passport = require("passport");
2   -const urlencode = require("urlencode");
3   -const async = require("async");
4   -const crypto = require("crypto");
5   -const fs =require('fs')
6   -const path = require("path");
7   -
8   -exports = module.exports = function (logger, rest, settings) {
9   - function index(req, res, next) {
10   - logger.info(req);
11   - // res.redirect("https://www.baidu.com");
12   - }
13   -
14   - function getImg(req, res, next) {
15   - logger.info(req.url, "1231231231");
16   - const parentdir = path.resolve(__dirname, "..")
17   - const paths = parentdir+'/build/public'+urlencode.decode(req.url, 'utf8')
18   - fs.readFile(paths,function(err,data){
19   - console.log(err,data)
20   - if (err) {
21   - res.send('读取错误')
22   - } else {
23   - res.send(data)
24   - }
25   - })
26   - }
27   -
28   - function indexPrefix(req, res) {
29   - // logger.info(req.csrfToken(),'req.cssadasdas');
30   - res.send({data:req.csrfToken()})
31   - // if (req.csrfToken) {
32   - // if (settings.prefix && settings.prefix.length > 1) {
33   - // res.redirect(settings.prefix.substring(0, settings.prefix.length - 1));
34   - // } else {
35   - // res.render("index", { csrfToken: req.csrfToken() });
36   - // }
37   - // } else res.render("index", { csrfToken: "" });
38   - }
39   -
40   - function productDes(req, res, next) {
41   - if (req.csrfToken)
42   - res.render("chat/new-chat", { csrfToken: req.csrfToken() });
43   - else res.render("chat/new-chat", { csrfToken: "" });
44   - }
45   -
46   - function recharge(req, res) {
47   - var params = JSON.parse(urlencode.decode(req.query.params));
48   - console.log(params);
49   - if (req.csrfToken)
50   - res.render("recharge", { recharge: params, csrfToken: req.csrfToken() });
51   - else res.render("recharge", { recharge: params, csrfToken: "" });
52   - }
53   -
54   - function register(req, res, next) {
55   - if (req.csrfToken)
56   - res.render("newRegister", { csrfToken: req.csrfToken() });
57   - else res.render("newRegister", { csrfToken: "" });
58   - }
59   -
60   - function mobileRegister(req, res) {
61   - if (req.csrfToken)
62   - res.render("registerMobile", { csrfToken: req.csrfToken() });
63   - else res.render("registerMobile", { csrfToken: "" });
64   - }
65   -
66   - function mobileRegisterSuccess(req, res) {
67   - if (req.csrfToken)
68   - res.render("registerMobileSuccess", { csrfToken: req.csrfToken() });
69   - else res.render("registerMobileSuccess", { csrfToken: "" });
70   - }
71   -
72   - function signIn(req, res, next) {
73   - // console.log(req);
74   - if (req.csrfToken) res.render("newLogin", { csrfToken: req.csrfToken() });
75   - else res.render("newLogin", { csrfToken: "" });
76   - }
77   -
78   - function doLogin(req, res, next) {
79   - passport.authenticate("local", function (err, user, info) {
80   - console.log("doLogin:", err, user, info);
81   - if (err) {
82   - return next(err);
83   - }
84   - if (!user) {
85   - return res.send(info);
86   - }
87   - req.logIn(user, function (err) {
88   - if (err) {
89   - return next(err);
90   - }
91   - return res.send({
92   - ok: "登录成功",
93   - user_info: req.session.passport.user.user_info,
94   - });
95   - });
96   - })(req, res, next);
97   - }
98   -
99   - function signOut(req, res, next) {
100   - if (
101   - req.session.passport &&
102   - req.session.passport.user &&
103   - req.session.passport.user.user_info &&
104   - req.session.passport.user.user_info.user
105   - )
106   - logger.info(
107   - req.session.passport.user.user_info.user,
108   - "You have successfully logged out"
109   - );
110   - req.logout();
111   - req.flash("success", "You have successfully logged out");
112   - res.redirect("/");
113   - }
114   -
115   - function smsCodes(req, res, next) {
116   - rest.postJson({
117   - baseUrl: "url",
118   - url: "auth/smscodes",
119   - params: req.body,
120   - callback: _cb,
121   - req: req,
122   - res: res,
123   - options: {},
124   - excludeToken: true,
125   - });
126   - function _cb(data, response) {
127   - logger.info("back data:", data);
128   - if (response.statusCode < 300) {
129   - res.send({ code: 200, message: "发送成功" });
130   - } else {
131   - res.send(data);
132   - }
133   - }
134   - }
135   -
136   - function tenants(req, res, next) {
137   - rest.register({
138   - baseUrl: "url",
139   - url: "tenants",
140   - params: req.body,
141   - callback: _cb,
142   - req: req,
143   - res: res,
144   - options: {},
145   - excludeToken: true,
146   - });
147   - function _cb(data, response) {
148   - logger.info("back data:", data);
149   - res.send(data);
150   - }
151   - }
152   -
153   - function resetPass(req, res) {
154   - rest.putJson({
155   - baseUrl: "url",
156   - url: "auth/user",
157   - params: {
158   - user: req.body.user,
159   - password: req.body.password,
160   - again_password: req.body.again_password,
161   - },
162   - callback: _cb,
163   - req: req,
164   - res: res,
165   - options: {},
166   - });
167   - function _cb(data, response) {
168   - logger.info("back data:", data);
169   - res.send(data);
170   - }
171   - }
172   -
173   - function updatePassword(req, res) {
174   - rest.patchJson({
175   - baseUrl: "url",
176   - url: "users/" + req.body.userId,
177   - params: {
178   - password: req.body.password,
179   - },
180   - callback: _cb,
181   - req: req,
182   - res: res,
183   - options: {},
184   - });
185   - function _cb(data, response) {
186   - logger.info("back data:", data);
187   - res.send(data);
188   - }
189   - }
190   -
191   - function loadUserInfo(req, res) {
192   - settings;
193   - if (req.session.passport.user && req.session.passport.user.user_info) {
194   - res.send({
195   - user_info: req.session.passport.user.user_info,
196   - prefix: settings.prefix,
197   - });
198   - } else {
199   - res.send({ user_info: null, prefix: settings.prefix });
200   - }
201   - }
202   -
203   - function getUploaderToken(req, res) {
204   - rest.postJson({
205   - baseUrl: "ossUrl",
206   - url: "inits",
207   - params: req.body,
208   - callback: _cb,
209   - req: req,
210   - res: res,
211   - options: {},
212   - });
213   - function _cb(data, response) {
214   - logger.info("back data:", data);
215   - res.send(data);
216   - }
217   - }
218   -
219   - function getObjectTokenByID(req, res) {
220   - rest.get({
221   - baseUrl: "ossUrl",
222   - url: "objects/" + req.body.file_id,
223   - params: {},
224   - callback: _cb,
225   - req: req,
226   - res: res,
227   - options: {},
228   - });
229   - function _cb(data, response) {
230   - logger.info("back data:", data);
231   - res.send(data);
232   - }
233   - }
234   -
235   - function delOSSObject(req, res) {
236   - rest.del({
237   - baseUrl: "ossUrl",
238   - url:
239   - "s3objects/" +
240   - req.body.request_id +
241   - "?bucket=" +
242   - req.body.bucket +
243   - "&file=" +
244   - req.body.name,
245   - params: {},
246   - callback: _cb,
247   - req: req,
248   - res: res,
249   - options: {},
250   - });
251   - function _cb(data, response) {
252   - logger.info("back data:", data);
253   - console.log(response.statusCode);
254   - if (response.statusCode < 300) {
255   - res.send({ delete: "ok" });
256   - }
257   - }
258   - }
259   -
260   - function smsVerification(req, res) {
261   - rest.postJson({
262   - baseUrl: "url",
263   - url: "auth/sms_verification",
264   - params: req.body,
265   - callback: _cb,
266   - req: req,
267   - res: res,
268   - options: {},
269   - excludeToken: true,
270   - });
271   - function _cb(data, response) {
272   - logger.info("back data:", data);
273   - if (response.statusCode < 300) {
274   - res.send({ code: 200, message: "发送成功" });
275   - } else {
276   - res.send({
277   - code: response.statusCode,
278   - message: data.message,
279   - errors: data.errors,
280   - });
281   - }
282   - }
283   - }
284   -
285   - function healthMonitor(res) {
286   - res.statusCode = 200;
287   - return res.send("status ok");
288   - }
289   -
290   - function updateUserRoles(req, res) {
291   - rest.putJson({
292   - baseUrl: "url",
293   - url: "user_roles/" + req.body.user_id,
294   - params: req.body.roles,
295   - callback: _cb,
296   - req: req,
297   - res: res,
298   - options: {},
299   - });
300   - function _cb(data, response) {
301   - logger.info("back data:", data);
302   - if (response.statusCode < 300) {
303   - res.send({ back: "ok" });
304   - } else {
305   - res.send(data);
306   - }
307   - }
308   - }
309   -
310   - function getRoles(req, res) {
311   - rest.get({
312   - baseUrl: "url",
313   - url: "roles",
314   - params: {},
315   - callback: _cb,
316   - req: req,
317   - res: res,
318   - options: {},
319   - });
320   - function _cb(data, response) {
321   - logger.info("back data:", data);
322   - res.send(data);
323   - }
324   - }
325   -
326   - function getUserRoles(req, res) {
327   - rest.get({
328   - baseUrl: "url",
329   - url:
330   - "user_roles?user=" +
331   - urlencode(req.body.user) +
332   - "&limit=" +
333   - req.body.limit +
334   - "&offset=" +
335   - req.body.offset,
336   - params: {},
337   - callback: _cb,
338   - req: req,
339   - res: res,
340   - options: {},
341   - });
342   - function _cb(data, response) {
343   - logger.info("back data:", data);
344   - res.send(data);
345   - }
346   - }
347   -
348   - function getTenant(req, res) {
349   - rest.get({
350   - baseUrl: "url",
351   - url: "tenants/" + req.body.tenant_id,
352   - params: {},
353   - callback: _cb,
354   - req: req,
355   - res: res,
356   - options: {},
357   - });
358   - function _cb(data, response) {
359   - logger.info("back data:", data);
360   - res.send(data);
361   - }
362   - }
363   -
364   - function updateTenant(req, res) {
365   - rest.putJson({
366   - baseUrl: "url",
367   - url: "tenants/" + req.body.tenant_id,
368   - params: req.body.tenant,
369   - callback: _cb,
370   - req: req,
371   - res: res,
372   - options: {},
373   - });
374   - function _cb(data, response) {
375   - logger.info("back data:", data);
376   - res.send(data);
377   - }
378   - }
379   -
380   - function offer(req, res) {
381   - rest.get({
382   - baseUrl: "hrUrl",
383   - url:
384   - "offers/" + req.params.requestId + "?tenant_id=" + req.query.tenant_id,
385   - params: {},
386   - callback: _cb,
387   - req: req,
388   - res: res,
389   - options: {},
390   - excludeToken: true,
391   - });
392   - function _cb(data, response) {
393   - logger.info("back data:", data);
394   - //res.send(data);
395   - console.log(data);
396   - data["offerId"] = req.params.requestId;
397   - data["tenantId"] = req.query.tenant_id;
398   - res.render("offer", data);
399   - }
400   - }
401   -
402   - function onboardStatus(req, res) {
403   - rest.get({
404   - baseUrl: "hrUrl",
405   - url: "onboard-status",
406   - params: {},
407   - callback: _cb,
408   - req: req,
409   - res: res,
410   - options: {},
411   - useUrl: true,
412   - });
413   - function _cb(data, response) {
414   - logger.info("back data:", data);
415   - res.send(data);
416   - }
417   - }
418   -
419   - function dowloadApp(req, res) {
420   - var mobileAgent = req.headers["user-agent"].toLowerCase();
421   - var agent = {
422   - android:
423   - mobileAgent.indexOf("android") > -1 || mobileAgent.indexOf("Adr") > -1,
424   - iPhone: mobileAgent.indexOf("iphone") > -1,
425   - iPad: mobileAgent.indexOf("ipad") > -1,
426   - };
427   - if (agent.iPhone || agent.iPad) {
428   - res.redirect(
429   - 301,
430   - "https://itunes.apple.com/cn/app/%E8%96%AA%E5%91%97/id1140779439?l=en&mt=8"
431   - );
432   - } else if (agent.android) {
433   - res.redirect(
434   - 301,
435   - "http://krhrimg.oss-cn-beijing.aliyuncs.com/appdownload/production/android/krhr-android.apk"
436   - );
437   - } else {
438   - res.redirect(
439   - 301,
440   - "http://krhrimg.oss-cn-beijing.aliyuncs.com/appdownload/production/android/krhr-android.apk"
441   - );
442   - }
443   - }
444   -
445   - function softwareLicense(res) {
446   - res.render("softwareLicense");
447   - }
448   -
449   - function changePassForRegister(req, res) {
450   - var options = {
451   - baseUrl: "url",
452   - url: "users/" + req.body.user_id,
453   - params: {
454   - password: req.body.password,
455   - },
456   - callback: _cb,
457   - req: req,
458   - res: res,
459   - options: {},
460   - };
461   - if (req.body.access_token) {
462   - console.log("@@@!!!!!!!!!!!!!!!!");
463   - options.options = {
464   - accessToken: req.body.access_token,
465   - };
466   - options["excludeToken"] = true;
467   - }
468   - rest.patchJson(options);
469   - function _cb(data, response) {
470   - logger.info("back data:", data);
471   - res.send(data);
472   - }
473   - }
474   -
475   - function changeTenant(req, res) {
476   - var params = {
477   - grant_type: "refresh_token",
478   - scope: "global_access:tenant_admin,tenant:" + req.body.id,
479   - refresh_token: req.session.passport.user.refreshToken,
480   - };
481   - req.session.passport.user.token = "";
482   - rest.postJson({
483   - baseUrl: "url",
484   - url:
485   - settings.restful.url +
486   - "uaa" +
487   - settings.restful.version +
488   - "/auth/tokens",
489   - useUrl: true,
490   - params: params,
491   - callback: _cb,
492   - req: req,
493   - res: res,
494   - options: {},
495   - excludeToken: true,
496   - });
497   - function _cb(data, response) {
498   - console.log(data);
499   - logger.info("back data:", data);
500   - if (response.statusCode < 300) {
501   - req.session.passport.user.token = data.access_token;
502   - req.session.passport.user.refreshToken = data.refresh_token;
503   - req.session.passport.user.user_info = {
504   - user: data.user,
505   - perms: [],
506   - tenant: data.tenant,
507   - scope: data.scope,
508   - oss: req.session.passport.user.user_info.oss,
509   - };
510   - req.session.save(function () {
511   - rest.get({
512   - baseUrl: "url",
513   - url:
514   - settings.restful.url +
515   - "uaa" +
516   - settings.restful.version +
517   - "/perms/detail",
518   - useUrl: true,
519   - params: {},
520   - callback: _scb,
521   - req: req,
522   - res: res,
523   - options: {},
524   - });
525   - });
526   - } else {
527   - res.send({
528   - code: response.statusCode,
529   - message: data.message,
530   - initialize_done: "n",
531   - });
532   - }
533   - }
534   - function _scb(data1, response) {
535   - if (response.statusCode < 300 && data1.items) {
536   - req.session.passport.user.user_info.perms = data1.items;
537   - req.session.save(function () {
538   - // res.send({"code":200,"message":"切换租户成功"});
539   - rest.get({
540   - baseUrl: "url",
541   - url:
542   - settings.restful.url +
543   - "filemeta" +
544   - settings.restful.version +
545   - "/config",
546   - useUrl: true,
547   - params: {},
548   - callback: _scb1,
549   - req: req,
550   - res: res,
551   - options: {},
552   - });
553   - });
554   - } else {
555   - res.send({ code: response.statusCode, message: data1.message });
556   - }
557   - }
558   - function _scb1(data2, response) {
559   - if (response.statusCode < 300 && data2 && data2.bucket) {
560   - req.session.passport.user.user_info.oss = data2;
561   - req.session.save(function () {
562   - res.send({ code: 200, message: "切换租户成功" });
563   - });
564   - } else {
565   - res.send({ code: 200, message: "切换租户失败" });
566   - }
567   - }
568   - }
569   -
570   - function sendRejectOffer(req, res) {
571   - rest.get({
572   - baseUrl: "hrUrl",
573   - url: req.body.url, //传一个参数
574   - params: {},
575   - callback: _cb,
576   - req: req,
577   - res: res,
578   - options: {},
579   - excludeToken: true,
580   - useUrl: true,
581   - });
582   - function _cb(data, response) {
583   - logger.info("back data:", data);
584   - if (response.statusCode < 300) {
585   - res.send({ action: "ok" });
586   - } else {
587   - res.send(data);
588   - }
589   - }
590   - }
591   -
592   - function acceptOffer(req, res) {
593   - rest.get({
594   - baseUrl: "hrUrl",
595   - url: req.body.url, //传一个参数
596   - params: {},
597   - callback: _cb,
598   - req: req,
599   - res: res,
600   - options: {},
601   - excludeToken: true,
602   - useUrl: true,
603   - });
604   - function _cb(data, response) {
605   - logger.info("back data:", data);
606   - if (response.statusCode < 300) {
607   - res.send({ action: "ok" });
608   - } else {
609   - res.send(data);
610   - }
611   - }
612   - }
613   -
614   - function imTokens(req, res) {
615   - rest.post({
616   - url: "auth/im_tokens",
617   - params: req.body,
618   - callback: _cb,
619   - req: req,
620   - res: res,
621   - options: {},
622   - });
623   - function _cb(data, response) {
624   - logger.info("back data:", data);
625   - res.send(data);
626   - }
627   - }
628   -
629   - function listChannels(req, res) {
630   - rest.get({
631   - baseUrl: "chatUrl",
632   - url: "channels?page_size=10&page=0&status=active",
633   - params: req.body,
634   - callback: _cb,
635   - req: req,
636   - res: res,
637   - options: {},
638   - });
639   - function _cb(data, response) {
640   - logger.info("back data:", data);
641   - res.send(data);
642   - }
643   - }
644   -
645   - function filemeta(req, res) {
646   - var fullPath =
647   - settings.restful.url +
648   - "filemeta" +
649   - settings.restful.version +
650   - "/object-redirect";
651   - fullPath =
652   - fullPath +
653   - "?" +
654   - "bucket=" +
655   - req.query.bucket +
656   - "&object=" +
657   - encodeURIComponent(req.query.object);
658   - console.info("fullPath::::::", fullPath);
659   - var options = {
660   - service_catalog: "",
661   - url: fullPath,
662   - useUrl: true,
663   - params: req.body,
664   - callback: _cb,
665   - req: req,
666   - res: res,
667   - options: {},
668   - };
669   - rest.get(options);
670   - function _cb(data, response) {
671   - if (data && data.download_url) {
672   - if (req.query.type && "json" == req.query.type) {
673   - res.send(data);
674   - } else {
675   - var url = data.download_url;
676   - let path = url.split("?")[0];
677   - let pathArray = path.split("/");
678   - let result = [];
679   - for (var i = 0; i < pathArray.length; i++) {
680   - if (i == pathArray.length - 1) {
681   - result.push(encodeURIComponent(pathArray[i]));
682   - } else {
683   - result.push(pathArray[i]);
684   - }
685   - }
686   - let result1 = result.join("/");
687   - if (url.indexOf("?") !== -1) {
688   - result1 += "?" + url.split("?")[1];
689   - }
690   - if (req.query.result_callback) {
691   - res.send(data);
692   - } else {
693   - res.redirect(301, result1);
694   - }
695   - }
696   - } else {
697   - res.send(data);
698   - }
699   - }
700   - }
701   -
702   - function getCustomerQrcode(req, res) {
703   - var fullPath =
704   - settings.restful.url +
705   - "crm" +
706   - settings.restful.version +
707   - "/customers/" +
708   - req.query.id +
709   - "/qrcode";
710   - var options = {
711   - service_catalog: "",
712   - url: fullPath,
713   - useUrl: true,
714   - params: req.body,
715   - callback: _cb,
716   - req: req,
717   - res: res,
718   - options: {},
719   - };
720   - rest.get(options);
721   - function _cb(data, response) {
722   - if (data && data.url_path) {
723   - res.redirect(301, data.url_path);
724   - } else {
725   - res.send(data);
726   - }
727   - }
728   - }
729   -
730   - function getPositionQrcode(req, res) {
731   - var fullPath =
732   - settings.restful.url +
733   - "recruit" +
734   - settings.restful.version +
735   - "/positions/" +
736   - req.query.id +
737   - "/qrcode";
738   - var options = {
739   - service_catalog: "",
740   - url: fullPath,
741   - useUrl: true,
742   - params: req.body,
743   - callback: _cb,
744   - req: req,
745   - res: res,
746   - options: {},
747   - };
748   - rest.get(options);
749   - function _cb(data, response) {
750   - if (data && data.url_path) {
751   - res.redirect(301, data.url_path);
752   - } else {
753   - res.send(data);
754   - }
755   - }
756   - }
757   -
758   - function getOSSConfig(req, res) {
759   - var fullPath =
760   - settings.restful.url + "filemeta" + settings.restful.version + "/config";
761   - var options = {
762   - service_catalog: "",
763   - url: fullPath,
764   - useUrl: true,
765   - params: req.body,
766   - callback: _cb,
767   - req: req,
768   - res: res,
769   - options: {},
770   - };
771   - rest.get(options);
772   - function _cb(data, response) {
773   - if (data && data.bucket) {
774   - req.session.passport.user.user_info.oss = data;
775   - req.session.save(function () {
776   - res.send({ code: 200, message: "oss配置加载成功" });
777   - });
778   - } else {
779   - res.send({ code: 200, message: "oss配置加载失败" });
780   - }
781   - }
782   - }
783   -
784   - function weidianTempLate(req, res) {
785   - const { params } = req;
786   - var fullPath =
787   - settings.restful.url + "socialwork/internal/minishop/" + params.id;
788   - var options = {
789   - service_catalog: "",
790   - url: fullPath,
791   - useUrl: true,
792   - params: req.body,
793   - callback: _cb,
794   - req: req,
795   - res: res,
796   - options: {},
797   - excludeToken: true,
798   - };
799   - rest.get(options);
800   - function _cb(data, response) {
801   - logger.info("back data:", data);
802   - if (response.statusCode < 300) {
803   - const { shop_logo = [], shop_name = "", shop_comment = "" } = data;
804   - let imgUrl = "";
805   - if (shop_logo.length > 0) {
806   - imgUrl = "http://oss.workai.com.cn/public/" + shop_logo[0].object;
807   - }
808   - res.render("template/weiDian", {
809   - imgUrl: imgUrl,
810   - shop_name: shop_name,
811   - shop_comment: shop_comment,
812   - });
813   - } else {
814   - res.render("template/weiDian");
815   - }
816   - }
817   - }
818   -
819   - function workaiSecurityOAuth(req, res) {
820   - var params = req.query;
821   - if (params.authorization_code) {
822   - var passport = {
823   - user: {
824   - refreshToken: "",
825   - token: "",
826   - service_catalog: {},
827   - user_info: {},
828   - err: null,
829   - },
830   - };
831   - async.waterfall(
832   - [
833   - function (callback) {
834   - //第三方登录
835   - var tempParams = {
836   - grant_type: "authorization_code_v1",
837   - code: params.authorization_code,
838   - };
839   - // var tempParams={
840   - // "grant_type":"password",
841   - // "username":"18510929499",
842   - // "scope":"global_access:tenant_admin",
843   - // "password":"a123456"
844   - // };
845   - logger.info(
846   - "Third login",
847   - settings.restful.url + "uaa/v1/auth/tokens",
848   - tempParams
849   - );
850   - rest.restful
851   - .postJson(
852   - settings.restful.url + "uaa/v1/auth/tokens",
853   - tempParams,
854   - {
855   - headers: {
856   - "Content-Type": "application/json",
857   - Accept: "application/json",
858   - },
859   - }
860   - )
861   - .on("success", function (data) {
862   - logger.info("Third login json data:", data);
863   - if (data.access_token) {
864   - var scopes = data.scope.split(",");
865   - passport.user.token = data.access_token;
866   - passport.user.refreshToken = data.refresh_token;
867   - passport.user.user_info = data.user || {};
868   - passport.user.tenant_info = data.tenant;
869   - passport.user.customer_info = data.customer;
870   - passport.user.user_info.perms = data.perms;
871   - passport.user.type = data.user.type;
872   - passport.user.real_auth_status = data.user.real_auth_status;
873   - passport.user.credential_status = data.user.credential_status;
874   - passport.user.user_info.scope = scopes[0];
875   - callback(null, data);
876   - } else {
877   - var err = new Error("Third login err");
878   - passport.user.err = data.message;
879   - callback(err, data);
880   - }
881   - })
882   - .on("error", function (err, response) {
883   - logger.error("Third login error", err);
884   - var err = new Error("Third login err");
885   - callback(err, response);
886   - })
887   - .on("fail", function (data, response) {
888   - logger.error("Third login fail", data);
889   - callback(data, response);
890   - });
891   - },
892   - function (data, callback) {
893   - //获取机构列表
894   - var tempHead = {};
895   - var ip = req.ip.match(/\d+\.\d+\.\d+\.\d+/)[0];
896   - var user_agent = req.headers["user-agent"] || "";
897   - tempHead["SXClientIP"] = ip;
898   - tempHead["User-Agent"] = user_agent;
899   - logger.info(
900   - "Third login tenants",
901   - settings.restful.url + "uaa/v1/tenants?all=true",
902   - { accessToken: data.access_token, headers: tempHead }
903   - );
904   - rest.restful
905   - .get(settings.restful.url + "uaa/v1/tenants?all=true", {
906   - accessToken: data.access_token,
907   - headers: tempHead,
908   - })
909   - .on("success", function (data1) {
910   - logger.info("Third login tenants list:", data1);
911   - if (data1 && data1.items && data1.items.length > 0) {
912   - callback(null, data1.items);
913   - } else {
914   - var err = new Error("Third login tenants list err");
915   - passport.user.err = data.message;
916   - callback(err, data);
917   - }
918   - })
919   - .on("error", function (err, response) {
920   - var err = new Error("Third login tenants list err");
921   - callback(err, response);
922   - })
923   - .on("fail", function (data, response) {
924   - callback(data, response);
925   - });
926   - },
927   - function (data, callback) {
928   - //刷新token
929   - if (data && data.length == 1) {
930   - var params = {
931   - grant_type: "refresh_token",
932   - scope: "global_access:tenant_admin,tenant:" + data[0].id,
933   - refresh_token: passport.user.refreshToken,
934   - };
935   - passport.user.token = "";
936   - logger.info(
937   - "Third login tokens",
938   - settings.restful.url + "uaa/v1/auth/tokens",
939   - params
940   - );
941   - rest.restful
942   - .postJson(settings.restful.url + "uaa/v1/auth/tokens", params, {
943   - headers: {
944   - "Content-Type": "application/json",
945   - Accept: "application/json",
946   - },
947   - })
948   - .on("success", function (data2) {
949   - logger.info("Third login json data2:", data2);
950   - if (data2.access_token) {
951   - var scopes = data2.scope.split(",");
952   - passport.user.token = data2.access_token;
953   - passport.user.refreshToken = data2.refresh_token;
954   - passport.user.user_info = data2.user || {};
955   - passport.user.tenant_info = data2.tenant;
956   - passport.user.customer_info = data2.customer;
957   - passport.user.user_info.perms = data2.perms;
958   - passport.user.type = data2.user.type;
959   - passport.user.real_auth_status =
960   - data2.user.real_auth_status;
961   - passport.user.credential_status =
962   - data2.user.credential_status;
963   - passport.user.user_info.scope = scopes[0];
964   - passport.user.user_info.tenant = data2.tenant;
965   - passport.user.user_info.user = {
966   - credential_status: data2.credential_status,
967   - id: data2.id,
968   - is_root: data2.is_root,
969   - mobile: data2.mobile,
970   - name: data2.name,
971   - real_auth_status: data2.real_auth_status,
972   - status: data2.status,
973   - type: data2.type,
974   - wx_open_id: data2.wx_open_id,
975   - };
976   - callback(null, data2);
977   - } else {
978   - var err = new Error("Third login err");
979   - passport.user.err = data2.message;
980   - callback(err, data2);
981   - }
982   - })
983   - .on("error", function (err, response) {
984   - logger.error("Third login error", err);
985   - var err = new Error("Third login err");
986   - callback(err, response);
987   - })
988   - .on("fail", function (data2, response) {
989   - logger.error("Third login fail", data2);
990   - callback(data2, response);
991   - });
992   - } else if (data && data.length > 1) {
993   - // #/login/choose-tenant
994   - callback(null, data);
995   - } else {
996   - var err = new Error("Third login tenants list item error");
997   - callback(err, data);
998   - }
999   - },
1000   - ],
1001   - function (err, result) {
1002   - if (err) {
1003   - //登陆失败跳转失败页
1004   - res.render("loginerr", { err: err });
1005   - } else if (result instanceof Array && result.length > 1) {
1006   - //登陆成功跳转选择机构页
1007   - req.session.passport = passport;
1008   - req.session.save(function () {
1009   - res.redirect(301, settings.prefix + "#login/choose-tenant");
1010   - });
1011   - } else {
1012   - req.session.passport = passport;
1013   - req.session.save(function () {
1014   - rest.get({
1015   - baseUrl: "url",
1016   - url:
1017   - settings.restful.url +
1018   - "uaa" +
1019   - settings.restful.version +
1020   - "/perms/detail",
1021   - useUrl: true,
1022   - params: {},
1023   - callback: _scb,
1024   - req: req,
1025   - res: res,
1026   - options: {},
1027   - });
1028   - });
1029   - function _scb(data1, response) {
1030   - if (response.statusCode < 300 && data1.items) {
1031   - req.session.passport.user.user_info.perms = data1.items;
1032   - req.session.save(function () {
1033   - if (params.redirect_page) {
1034   - res.redirect(
1035   - 301,
1036   - settings.prefix + "#" + params.redirect_page
1037   - ); //登陆成功跳转首页
1038   - } else {
1039   - res.redirect(301, settings.prefix + "#container/home"); //登陆成功跳转首页
1040   - }
1041   - });
1042   - } else {
1043   - if (params.redirect_page) {
1044   - res.redirect(
1045   - 301,
1046   - settings.prefix + "#" + params.redirect_page
1047   - ); //登陆成功跳转首页
1048   - } else {
1049   - res.redirect(301, settings.prefix + "#container/home"); //登陆成功跳转首页
1050   - }
1051   - }
1052   - }
1053   - }
1054   - }
1055   - );
1056   - }
1057   - }
1058   -
1059   - function getTastLink(req, res) {
1060   - var url = crypto.createHash("md5").update(req.body.id).digest("hex");
1061   - if (settings.prefix && settings.prefix.length > 1) {
1062   - res.send(
1063   - req.protocol +
1064   - "://" +
1065   - req.get("host") +
1066   - settings.prefix.substring(0, settings.prefix.length - 1) +
1067   - "/socialwork/freedom-jobs/emps/" +
1068   - req.body.id +
1069   - "/" +
1070   - url
1071   - );
1072   - } else {
1073   - res.send({
1074   - url:
1075   - req.protocol +
1076   - "://" +
1077   - req.get("host") +
1078   - "/socialwork/freedom-jobs/emps/" +
1079   - req.body.id +
1080   - "/" +
1081   - url,
1082   - });
1083   - }
1084   - }
1085   -
1086   - function freedomJobsEmp(req, res) {
1087   - var id = req.params.id;
1088   - // var url = crypto.createHash('md5').update(id).digest('hex');
1089   - if (false) {
1090   - //验证未通过verification != url
1091   - if (settings.prefix && settings.prefix.length > 1) {
1092   - res.redirect(settings.prefix.substring(0, settings.prefix.length - 1));
1093   - } else {
1094   - res.redirect("/");
1095   - }
1096   - } else {
1097   - //验证通过跳转,获取token存到session里
1098   - var passport = {
1099   - user: {
1100   - refreshToken: "",
1101   - token: "",
1102   - service_catalog: {},
1103   - user_info: {},
1104   - err: null,
1105   - },
1106   - };
1107   - var tempParams = {
1108   - grant_type: "client_credential",
1109   - client_id: "340161778618994688", //多宝鱼环境
1110   - client_secret: "0f8c30aa3d15332652f62c3eaf22fdea",
1111   - };
1112   - rest.restful
1113   - .postJson(settings.restful.url + "uaa/v1/auth/tokens", tempParams, {
1114   - headers: {
1115   - "Content-Type": "application/json",
1116   - Accept: "application/json",
1117   - },
1118   - })
1119   - .on("success", function (data) {
1120   - if (data.access_token) {
1121   - var scopes = data.scope.split(",");
1122   - passport.user.token = data.access_token;
1123   - passport.user.refreshToken = data.refresh_token;
1124   - passport.user.user_info = data.user;
1125   - passport.user.tenant_info = data.tenant;
1126   - passport.user.customer_info = data.customer;
1127   - passport.user.user_info.perms = data.perms;
1128   - passport.user.type = data.user.type;
1129   - passport.user.real_auth_status = data.user.real_auth_status;
1130   - passport.user.credential_status = data.user.credential_status;
1131   - passport.user.user_info.scope = scopes[0];
1132   - req.session.passport = passport;
1133   - req.session.save(function () {
1134   - if (settings.prefix && settings.prefix.length > 1) {
1135   - res.redirect(
1136   - 301,
1137   - settings.prefix.substring(0, settings.prefix.length - 1) +
1138   - "/#task_assign/" +
1139   - id
1140   - );
1141   - } else {
1142   - res.redirect(301, "/#task_assign/" + id);
1143   - }
1144   - });
1145   - } else {
1146   - passport.user.err = data.message;
1147   - }
1148   - })
1149   - .on("error", function (err, response) {
1150   - logger.error("Third login error", err);
1151   - var err = new Error("Third login err");
1152   - callback(err, response);
1153   - })
1154   - .on("fail", function (data) {
1155   - logger.error("Third login fail", data);
1156   - });
1157   - }
1158   - }
1159   -
1160   - function getShortToken(req, res) {
1161   - var params = {
1162   - grant_type: "refresh_token",
1163   - scope: req.session.passport.user.scope,
1164   - refresh_token: req.session.passport.user.refreshToken,
1165   - };
1166   - logger.info("getShortToken:", params);
1167   - rest.postJson({
1168   - baseUrl: "url",
1169   - url:
1170   - settings.restful.url +
1171   - "uaa" +
1172   - settings.restful.version +
1173   - "/auth/tokens",
1174   - useUrl: true,
1175   - params: params,
1176   - callback: _cb,
1177   - req: req,
1178   - res: res,
1179   - options: {},
1180   - excludeToken: true,
1181   - });
1182   - function _cb(data, response) {
1183   - console.log(data);
1184   - logger.info("back data:", data);
1185   - res.send({ code: response.statusCode, access_token: data.access_token });
1186   - }
1187   - }
1188   -
1189   - return {
1190   - index: index,
1191   - indexPrefix,
1192   - register: register,
1193   - signIn: signIn,
1194   - doLogin: doLogin,
1195   - signOut: signOut,
1196   - smsCodes: smsCodes,
1197   - tenants: tenants,
1198   - productDes: productDes,
1199   - resetPass: resetPass,
1200   - updatePassword: updatePassword,
1201   - loadUserInfo: loadUserInfo,
1202   - getUploaderToken: getUploaderToken,
1203   - getObjectTokenByID,
1204   - delOSSObject: delOSSObject,
1205   - healthMonitor,
1206   - smsVerification,
1207   - updateUserRoles,
1208   - getRoles,
1209   - getUserRoles,
1210   - getTenant,
1211   - updateTenant,
1212   - offer,
1213   - onboardStatus,
1214   - dowloadApp,
1215   - mobileRegister,
1216   - mobileRegisterSuccess,
1217   - softwareLicense,
1218   - recharge,
1219   - changePassForRegister,
1220   - changeTenant,
1221   - sendRejectOffer,
1222   - acceptOffer,
1223   - imTokens,
1224   - listChannels,
1225   - filemeta,
1226   - getCustomerQrcode,
1227   - getPositionQrcode,
1228   - getOSSConfig,
1229   - weidianTempLate,
1230   - workaiSecurityOAuth,
1231   - getTastLink,
1232   - freedomJobsEmp,
1233   - getShortToken,
1234   - getImg
1235   - };
  1 +var passport = require('passport');
  2 +var clientRest = require('restler');
  3 +var urlencode = require('urlencode');
  4 +var async = require('async');
  5 +var crypto = require('crypto');
  6 +
  7 +exports = module.exports = function (logger, rest, redis, settings) {
  8 + function index(req, res, next) {
  9 + logger.debug(req.user);
  10 + if (req.csrfToken) {
  11 + res.render('index', { 'csrfToken': req.csrfToken() });
  12 + } else
  13 + res.render('index', { 'csrfToken': '' });
  14 + }
  15 +
  16 + function indexPrefix(req, res, next) {
  17 + logger.debug(req.user);
  18 + if (req.csrfToken) {
  19 + if (settings.prefix && settings.prefix.length > 1) {
  20 + res.redirect(settings.prefix.substring(0, settings.prefix.length - 1));
  21 + } else {
  22 + res.render('index', { 'csrfToken': req.csrfToken() });
  23 + }
  24 + } else
  25 + res.render('index', { 'csrfToken': '' });
  26 + }
  27 +
  28 + function productDes(req, res, next) {
  29 + if (req.csrfToken)
  30 + res.render('chat/new-chat', { 'csrfToken': req.csrfToken() });
  31 + else
  32 + res.render('chat/new-chat', { 'csrfToken': '' });
  33 + }
  34 +
  35 + function recharge(req, res, next) {
  36 +
  37 + var params = JSON.parse(urlencode.decode(req.query.params));
  38 + logger.debug(params);
  39 + if (req.csrfToken)
  40 + res.render('recharge', { 'recharge': params, 'csrfToken': req.csrfToken() });
  41 + else
  42 + res.render('recharge', { 'recharge': params, 'csrfToken': '' });
  43 +
  44 + }
  45 +
  46 + function register(req, res, next) {
  47 + if (req.csrfToken)
  48 + res.render('newRegister', { 'csrfToken': req.csrfToken() });
  49 + else
  50 + res.render('newRegister', { 'csrfToken': '' });
  51 + }
  52 +
  53 + function mobileRegister(req, res, next) {
  54 + if (req.csrfToken)
  55 + res.render('registerMobile', { 'csrfToken': req.csrfToken() });
  56 + else
  57 + res.render('registerMobile', { 'csrfToken': '' });
  58 + }
  59 +
  60 + function mobileRegisterSuccess(req, res, next) {
  61 + if (req.csrfToken)
  62 + res.render('registerMobileSuccess', { 'csrfToken': req.csrfToken() });
  63 + else
  64 + res.render('registerMobileSuccess', { 'csrfToken': '' });
  65 + }
  66 +
  67 + function signIn(req, res, next) {
  68 + // console.log(req);
  69 + if (req.csrfToken)
  70 + res.render('newLogin', { 'csrfToken': req.csrfToken() });
  71 + else
  72 + res.render('newLogin', { 'csrfToken': '' });
  73 +
  74 + }
  75 +
  76 + function doLogin(req, res, next) {
  77 + passport.authenticate('local', function (err, user, info) {
  78 + logger.debug("doLogin:", err, user, info)
  79 + if (err) { return next(err); }
  80 + if (!user) { return res.send(info); }
  81 + req.logIn(user, function (err) {
  82 + if (err) { return next(err); }
  83 + return res.send({ 'ok': '登录成功', user_info: req.session.passport.user.user_info });
  84 + });
  85 + })(req, res, next);
  86 + }
  87 +
  88 + function refreshToken (req, res, next) {
  89 + var timer = null;
  90 + const count = req.session.refreshTokenCount||0;
  91 + if(count>3){
  92 + res.send({
  93 + code:500,
  94 + message:'失败'
  95 + })
  96 + timer = setTimeout(()=>{
  97 + req.session.refreshTokenCount=0
  98 + clearTimeout(timer)
  99 + },1000*60*5)
  100 + return
  101 + }
  102 + var tempParams = {
  103 + "grant_type": "refresh_token",
  104 + "username": req.session.passport.user.user_info.user.mobile,
  105 + refresh_token:req.session.passport.user.refreshToken,
  106 + "scope": "global_access:tenant_admin",
  107 + };
  108 + var url = rest.getBaseUrl('auth/tokens', 'uaa');
  109 + var headers = rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req);
  110 + rest.restful.postJson(url, tempParams, {
  111 + headers: headers
  112 + }).on('success',function(data,response){
  113 + req.session.passport.user.token = data.access_token;
  114 + req.session.refreshTokenCount = count+1;
  115 + res.send({code:200,message:'成功'})
  116 + rest.proxyLog(data,response,req,{headers,'data':tempParams,url})
  117 + })
  118 + }
  119 +
  120 + function signOut(req, res, next) {
  121 + if (req.session.passport && req.session.passport.user && req.session.passport.user.user_info && req.session.passport.user.user_info.user)
  122 + logger.debug(req.session.passport.user.user_info.user, 'You have successfully logged out');
  123 + req.logout();
  124 + req.flash('success', 'You have successfully logged out');
  125 + res.redirect('/');
  126 + }
  127 +
  128 + function smsCodes(req, res, next) {
  129 + rest.postJson({
  130 + 'baseUrl': 'url',
  131 + 'url': 'auth/smscodes',
  132 + 'params': req.body,
  133 + 'callback': _cb,
  134 + 'req': req,
  135 + 'res': res,
  136 + 'options': {},
  137 + 'excludeToken': true
  138 + })
  139 + function _cb(data, response) {
  140 + logger.debug("back data:", data);
  141 + if (response.statusCode < 300) {
  142 + res.send({ "code": 200, "message": "发送成功" });
  143 + } else {
  144 + res.send(data);
  145 + }
  146 + };
  147 + }
  148 +
  149 + function tenants(req, res, next) {
  150 + rest.register({
  151 + 'baseUrl': 'url',
  152 + 'url': 'tenants',
  153 + 'params': req.body,
  154 + 'callback': _cb,
  155 + 'req': req,
  156 + 'res': res,
  157 + 'options': {},
  158 + 'excludeToken': true
  159 + });
  160 + function _cb(data, response) {
  161 + logger.debug("back data:", data);
  162 + res.send(data);
  163 + };
  164 + }
  165 +
  166 + function resetPass(req, res) {
  167 + rest.putJson({
  168 + 'baseUrl': 'url',
  169 + 'url': 'auth/user',
  170 + 'params': {
  171 + 'user': req.body.user,
  172 + 'password': req.body.password,
  173 + 'again_password': req.body.again_password
  174 + },
  175 + 'callback': _cb,
  176 + 'req': req,
  177 + 'res': res,
  178 + 'options': {}
  179 + })
  180 + function _cb(data, response) {
  181 + logger.debug("back data:", data);
  182 + res.send(data);
  183 + };
  184 + }
  185 +
  186 + function updatePassword(req, res) {
  187 + rest.patchJson({
  188 + 'baseUrl': 'url',
  189 + 'url': 'users/' + req.body.userId,
  190 + 'params': {
  191 + 'password': req.body.password
  192 + },
  193 + 'callback': _cb,
  194 + 'req': req,
  195 + 'res': res,
  196 + 'options': {}
  197 + })
  198 + function _cb(data, response) {
  199 + logger.debug("back data:", data);
  200 + res.send(data);
  201 + };
  202 + }
  203 +
  204 +
  205 + function loadUserInfo(req, res,next) {
  206 +
  207 + if (req.session.passport.user && req.session.passport.user.user_info) {
  208 + logger.debug("loadUserInfo:", req.session.passport.user.user_info);
  209 + if(req.body.id){
  210 + var params = {
  211 + grant_type: 'refresh_token',
  212 + scope: 'global_access:tenant_admin,tenant:' + req.body.id,
  213 + refresh_token: req.session.passport.user.refreshToken
  214 + }
  215 + // req.session.passport.user.token = '';
  216 + rest.postJson({
  217 + 'baseUrl': 'url',
  218 + 'url': settings.restful.url + 'uaa' + settings.restful.version + '/auth/tokens',
  219 + 'useUrl': true,
  220 + 'params': params,
  221 + 'callback': _cb,
  222 + 'req': req,
  223 + 'res': res,
  224 + 'options': {},
  225 + 'excludeToken': true
  226 + })
  227 + function _cb(data, response) {
  228 + logger.debug("changeTenant,tokens......:", data);
  229 + if (response.statusCode < 300) {
  230 + req.session.passport.user.token = data.access_token;
  231 + req.session.passport.user.refreshToken = data.refresh_token;
  232 + req.session.passport.user.user_info = {
  233 + 'user': data.user,
  234 + 'perms': req.session.passport.user.user_info.perms,
  235 + 'tenant': data.tenant,
  236 + 'scope': data.scope,
  237 + 'oss': req.session.passport.user.user_info.oss,
  238 + };
  239 + req.session.save(function (err) {
  240 + rest.get({
  241 + 'baseUrl': 'url',
  242 + 'url': settings.restful.url + 'uaa' + settings.restful.version + '/perms/detail',
  243 + 'useUrl': true,
  244 + 'params': {},
  245 + 'callback': _scb,
  246 + 'req': req,
  247 + 'res': res,
  248 + 'options': {}
  249 + });
  250 + })
  251 + } else {
  252 + res.send({ "code": response.statusCode, "message": data.message, initialize_done: "n" });
  253 + }
  254 + };
  255 + function _scb(data1, response) {
  256 + if (response.statusCode < 300 && data1.items) {
  257 + logger.debug("perms......:", data1.items);
  258 + //判断是否存在优学乐业菜单
  259 + if (data1.items.length > 0) {
  260 + let yxly_list = data1.items.filter((item, index) => { return item.module == 'yxly' });
  261 + if (yxly_list.length > 0) {
  262 + loadYxlyToken(req, res);
  263 + }
  264 + }
  265 +
  266 + req.session.passport.user.user_info.perms = data1.items;
  267 + req.session.save(function (err) {
  268 + rest.get({
  269 + 'baseUrl': 'url',
  270 + 'url': settings.restful.url + 'filemeta' + settings.restful.version + '/config',
  271 + 'useUrl': true,
  272 + 'params': {},
  273 + 'callback': _scb1,
  274 + 'req': req,
  275 + 'res': res,
  276 + 'options': {}
  277 + });
  278 + })
  279 + } else {
  280 + res.send({ "code": response.statusCode, "message": data1.message });
  281 + }
  282 + }
  283 + function _scb1(data2, response) {
  284 + if (response.statusCode < 300 && data2 && data2.bucket) {
  285 + req.session.passport.user.user_info.oss = data2;
  286 + req.session.save(function (err) {
  287 + res.send({ user_info: req.session.passport.user.user_info, prefix: settings.prefix });
  288 + });
  289 + } else {
  290 + res.send({ "code": 200, "message": "切换租户失败" });
  291 + }
  292 + }
  293 + }else {
  294 + res.send({ user_info: req.session.passport.user.user_info, prefix: settings.prefix });
  295 + }
  296 + } else {
  297 + res.send({ user_info: null, prefix: settings.prefix });
  298 + }
  299 + }
  300 +
  301 + function getUploaderToken(req, res) {
  302 + rest.postJson({
  303 + 'baseUrl': 'ossUrl',
  304 + 'url': 'inits',
  305 + 'params': req.body,
  306 + 'callback': _cb,
  307 + 'req': req,
  308 + 'res': res,
  309 + 'options': {}
  310 + })
  311 + function _cb(data, response) {
  312 + logger.debug("back data:", data);
  313 + res.send(data);
  314 + };
  315 + }
  316 +
  317 + function getObjectTokenByID(req, res) {
  318 + rest.get({
  319 + 'baseUrl': 'ossUrl',
  320 + 'url': 'objects/' + req.body.file_id,
  321 + 'params': {},
  322 + 'callback': _cb,
  323 + 'req': req,
  324 + 'res': res,
  325 + 'options': {}
  326 + })
  327 + function _cb(data, response) {
  328 + logger.debug("back data:", data);
  329 + res.send(data);
  330 + };
  331 + }
  332 +
  333 + function delOSSObject(req, res) {
  334 + rest.del({
  335 + 'baseUrl': 'ossUrl',
  336 + 'url': 's3objects/' + req.body.request_id + '?bucket=' + req.body.bucket + '&file=' + req.body.name,
  337 + 'params': {},
  338 + 'callback': _cb,
  339 + 'req': req,
  340 + 'res': res,
  341 + 'options': {}
  342 + })
  343 + function _cb(data, response) {
  344 + logger.debug("back data:", data);
  345 + logger.debug(response.statusCode)
  346 + if (response.statusCode < 300) {
  347 + res.send({ 'delete': 'ok' });
  348 + }
  349 + };
  350 + }
  351 +
  352 + function smsVerification(req, res, next) {
  353 + rest.postJson({
  354 + 'baseUrl': 'url',
  355 + 'url': 'auth/sms_verification',
  356 + 'params': req.body,
  357 + 'callback': _cb,
  358 + 'req': req,
  359 + 'res': res,
  360 + 'options': {},
  361 + 'excludeToken': true
  362 + })
  363 + function _cb(data, response) {
  364 + logger.debug("back data:", data);
  365 + if (response.statusCode < 300) {
  366 + res.send({ "code": 200, "message": "发送成功" });
  367 + } else {
  368 + res.send({ "code": response.statusCode, "message": data.message, 'errors': data.errors });
  369 + }
  370 + };
  371 + }
  372 +
  373 + function healthMonitor(req, res) {
  374 + res.statusCode = 200;
  375 + return res.send('status ok');
  376 + }
  377 +
  378 +
  379 + function updateUserRoles(req, res) {
  380 + rest.putJson({
  381 + 'baseUrl': 'url',
  382 + 'url': 'user_roles/' + req.body.user_id,
  383 + 'params': req.body.roles,
  384 + 'callback': _cb,
  385 + 'req': req,
  386 + 'res': res,
  387 + 'options': {}
  388 + })
  389 + function _cb(data, response) {
  390 + logger.debug("back data:", data);
  391 + if (response.statusCode < 300) {
  392 + res.send({ 'back': 'ok' });
  393 + } else {
  394 + res.send(data);
  395 + }
  396 + };
  397 + }
  398 +
  399 + function getRoles(req, res, next) {
  400 + rest.get({
  401 + 'baseUrl': 'url',
  402 + 'url': 'roles',
  403 + 'params': {},
  404 + 'callback': _cb,
  405 + 'req': req,
  406 + 'res': res,
  407 + 'options': {}
  408 + })
  409 + function _cb(data, response) {
  410 + logger.debug("back data:", data);
  411 + res.send(data);
  412 + };
  413 + }
  414 +
  415 +
  416 + function getUserRoles(req, res, next) {
  417 + rest.get({
  418 + 'baseUrl': 'url',
  419 + 'url': 'user_roles?user=' + urlencode(req.body.user) + '&limit=' + req.body.limit + '&offset=' + req.body.offset,
  420 + 'params': {},
  421 + 'callback': _cb,
  422 + 'req': req,
  423 + 'res': res,
  424 + 'options': {}
  425 + })
  426 + function _cb(data, response) {
  427 + logger.debug("back data:", data);
  428 + res.send(data);
  429 + };
  430 + }
  431 +
  432 + function getTenant(req, res) {
  433 + rest.get({
  434 + 'baseUrl': 'url',
  435 + 'url': 'tenants/' + req.body.tenant_id,
  436 + 'params': {},
  437 + 'callback': _cb,
  438 + 'req': req,
  439 + 'res': res,
  440 + 'options': {}
  441 + })
  442 + function _cb(data, response) {
  443 + logger.debug("back data:", data);
  444 + res.send(data);
  445 + };
  446 + }
  447 +
  448 + function updateTenant(req, res) {
  449 + rest.putJson({
  450 + 'baseUrl': 'url',
  451 + 'url': 'tenants/' + req.body.tenant_id,
  452 + 'params': req.body.tenant,
  453 + 'callback': _cb,
  454 + 'req': req,
  455 + 'res': res,
  456 + 'options': {}
  457 + })
  458 + function _cb(data, response) {
  459 + logger.debug("back data:", data);
  460 + res.send(data);
  461 + };
  462 + }
  463 +
  464 + function offer(req, res) {
  465 + rest.get({
  466 + 'baseUrl': 'hrUrl',
  467 + 'url': 'offers/' + req.params.requestId + '?tenant_id=' + req.query.tenant_id,
  468 + 'params': {},
  469 + 'callback': _cb,
  470 + 'req': req,
  471 + 'res': res,
  472 + 'options': {},
  473 + 'excludeToken': true
  474 + })
  475 + function _cb(data, response) {
  476 + logger.debug(data);
  477 + data['offerId'] = req.params.requestId;
  478 + data['tenantId'] = req.query.tenant_id;
  479 + res.render('offer', data);
  480 + };
  481 + }
  482 +
  483 + function onboardStatus(req, res) {
  484 + rest.get({
  485 + 'baseUrl': 'hrUrl',
  486 + 'url': 'onboard-status',
  487 + 'params': {},
  488 + 'callback': _cb,
  489 + 'req': req,
  490 + 'res': res,
  491 + 'options': {},
  492 + 'useUrl': true
  493 + })
  494 + function _cb(data, response) {
  495 + logger.debug("back data:", data);
  496 + res.send(data);
  497 + };
  498 + }
  499 +
  500 + function dowloadApp(req, res) {
  501 + var mobileAgent = req.headers['user-agent'].toLowerCase();
  502 + var agent = {
  503 + android: mobileAgent.indexOf('android') > -1 || mobileAgent.indexOf('Adr') > -1,
  504 + iPhone: mobileAgent.indexOf('iphone') > -1,
  505 + iPad: mobileAgent.indexOf('ipad') > -1
  506 + }
  507 + if (agent.iPhone || agent.iPad) {
  508 + res.redirect(301, 'https://itunes.apple.com/cn/app/%E8%96%AA%E5%91%97/id1140779439?l=en&mt=8');
  509 + } else if (agent.android) {
  510 + res.redirect(301, 'http://krhrimg.oss-cn-beijing.aliyuncs.com/appdownload/production/android/krhr-android.apk');
  511 + } else {
  512 + res.redirect(301, 'http://krhrimg.oss-cn-beijing.aliyuncs.com/appdownload/production/android/krhr-android.apk');
  513 + }
  514 + }
  515 +
  516 + function softwareLicense(req, res, next) {
  517 + res.render('softwareLicense');
  518 + }
  519 +
  520 + function changePassForRegister(req, res, next) {
  521 + var options = {
  522 + 'baseUrl': 'url',
  523 + 'url': 'users/' + req.body.user_id,
  524 + 'params': {
  525 + 'password': req.body.password
  526 + },
  527 + 'callback': _cb,
  528 + 'req': req,
  529 + 'res': res,
  530 + 'options': {}
  531 + };
  532 + if (req.body.access_token) {
  533 + options.options = {
  534 + "accessToken": req.body.access_token
  535 + };
  536 + options['excludeToken'] = true;
  537 + }
  538 + rest.patchJson(options)
  539 + function _cb(data, response) {
  540 + logger.debug("back data:", data);
  541 + res.send(data);
  542 + };
  543 + }
  544 +
  545 + function changeTenant(req, res, next) {
  546 + var params = {
  547 + grant_type: 'refresh_token',
  548 + scope: 'global_access:tenant_admin,tenant:' + req.body.id,
  549 + refresh_token: req.session.passport.user.refreshToken
  550 + }
  551 + req.session.passport.user.token = '';
  552 + rest.postJson({
  553 + 'baseUrl': 'url',
  554 + 'url': settings.restful.url + 'uaa' + settings.restful.version + '/auth/tokens',
  555 + 'useUrl': true,
  556 + 'params': params,
  557 + 'callback': _cb,
  558 + 'req': req,
  559 + 'res': res,
  560 + 'options': {},
  561 + 'excludeToken': true
  562 + })
  563 + function _cb(data, response) {
  564 + logger.debug("changeTenant,tokens......:", data);
  565 + if (response.statusCode < 300) {
  566 + req.session.passport.user.token = data.access_token;
  567 + req.session.passport.user.refreshToken = data.refresh_token;
  568 + req.session.passport.user.user_info = {
  569 + 'user': data.user,
  570 + 'perms': [],
  571 + 'tenant': data.tenant,
  572 + 'scope': data.scope,
  573 + 'oss': req.session.passport.user.user_info.oss,
  574 + };
  575 + req.session.save(function (err) {
  576 + rest.get({
  577 + 'baseUrl': 'url',
  578 + 'url': settings.restful.url + 'uaa' + settings.restful.version + '/perms/detail',
  579 + 'useUrl': true,
  580 + 'params': {},
  581 + 'callback': _scb,
  582 + 'req': req,
  583 + 'res': res,
  584 + 'options': {}
  585 + });
  586 + })
  587 + } else {
  588 + res.send({ "code": response.statusCode, "message": data.message, initialize_done: "n" });
  589 + }
  590 + };
  591 + function _scb(data1, response) {
  592 + if (response.statusCode < 300 && data1.items) {
  593 + logger.debug("perms......:", data1.items);
  594 + //判断是否存在优学乐业菜单
  595 + if (data1.items.length > 0) {
  596 + let yxly_list = data1.items.filter((item, index) => { return item.module == 'yxly' });
  597 + if (yxly_list.length > 0) {
  598 + loadYxlyToken(req, res);
  599 + }
  600 + }
  601 +
  602 + req.session.passport.user.user_info.perms = data1.items;
  603 + req.session.save(function (err) {
  604 + rest.get({
  605 + 'baseUrl': 'url',
  606 + 'url': settings.restful.url + 'filemeta' + settings.restful.version + '/config',
  607 + 'useUrl': true,
  608 + 'params': {},
  609 + 'callback': _scb1,
  610 + 'req': req,
  611 + 'res': res,
  612 + 'options': {}
  613 + });
  614 + })
  615 + } else {
  616 + res.send({ "code": response.statusCode, "message": data1.message });
  617 + }
  618 + }
  619 + function _scb1(data2, response) {
  620 + if (response.statusCode < 300 && data2 && data2.bucket) {
  621 + req.session.passport.user.user_info.oss = data2;
  622 + req.session.save(function (err) {
  623 + res.send({ "code": 200, "message": "切换租户成功" });
  624 + });
  625 + } else {
  626 + res.send({ "code": 200, "message": "切换租户失败" });
  627 + }
  628 + }
  629 + }
  630 +
  631 +
  632 + function sendRejectOffer(req, res) {
  633 + rest.get({
  634 + 'baseUrl': 'hrUrl',
  635 + 'url': req.body.url, //传一个参数
  636 + 'params': {},
  637 + 'callback': _cb,
  638 + 'req': req,
  639 + 'res': res,
  640 + 'options': {},
  641 + 'excludeToken': true,
  642 + 'useUrl': true
  643 + });
  644 + function _cb(data, response) {
  645 + logger.debug("back data:", data);
  646 + if (response.statusCode < 300) {
  647 + res.send({ 'action': 'ok' });
  648 + } else {
  649 + res.send(data);
  650 + }
  651 + };
  652 + }
  653 +
  654 + function acceptOffer(req, res) {
  655 + rest.get({
  656 + 'baseUrl': 'hrUrl',
  657 + 'url': req.body.url, //传一个参数
  658 + 'params': {},
  659 + 'callback': _cb,
  660 + 'req': req,
  661 + 'res': res,
  662 + 'options': {},
  663 + 'excludeToken': true,
  664 + 'useUrl': true
  665 + });
  666 + function _cb(data, response) {
  667 + logger.debug("back data:", data);
  668 + if (response.statusCode < 300) {
  669 + res.send({ 'action': 'ok' });
  670 + } else {
  671 + res.send(data);
  672 + }
  673 + };
  674 + }
  675 +
  676 + function imTokens(req, res) {
  677 + rest.post({
  678 + 'url': 'auth/im_tokens',
  679 + 'params': req.body,
  680 + 'callback': _cb,
  681 + 'req': req,
  682 + 'res': res,
  683 + 'options': {}
  684 + });
  685 + function _cb(data, response) {
  686 + logger.debug("back data:", data);
  687 + res.send(data);
  688 + };
  689 + }
  690 +
  691 + function listChannels(req, res, next) {
  692 + rest.get({
  693 + 'baseUrl': 'chatUrl',
  694 + 'url': 'channels?page_size=10&page=0&status=active',
  695 + 'params': req.body,
  696 + 'callback': _cb,
  697 + 'req': req,
  698 + 'res': res,
  699 + 'options': {}
  700 + })
  701 + function _cb(data, response) {
  702 + logger.debug("back data:", data);
  703 + res.send(data);
  704 + };
  705 + }
  706 +
  707 + function filemeta(req, res, next) {
  708 + var fullPath = settings.restful.url + 'filemeta' + settings.restful.version + '/object-redirect';
  709 + fullPath = fullPath + "?" + "bucket=" + req.query.bucket + "&object=" + encodeURIComponent(req.query.object);
  710 + console.info('fullPath::::::', fullPath);
  711 + var options = {
  712 + 'service_catalog': '',
  713 + 'url': fullPath,
  714 + 'useUrl': true,
  715 + 'params': req.body,
  716 + 'callback': _cb,
  717 + 'req': req,
  718 + 'res': res,
  719 + 'options': {}
  720 + };
  721 + rest.get(options);
  722 + function _cb(data, response) {
  723 + if (data && data.download_url) {
  724 + if (req.query.type && 'json' == req.query.type) {
  725 + res.send(data);
  726 + } else {
  727 + var url = data.download_url;
  728 + let path = url.split('?')[0];
  729 + let pathArray = path.split('/');
  730 + let result = [];
  731 + for (var i = 0; i < pathArray.length; i++) {
  732 + if (i == pathArray.length - 1) {
  733 + result.push(encodeURIComponent(pathArray[i]));
  734 + } else {
  735 + result.push(pathArray[i]);
  736 + }
  737 + }
  738 + let result1 = result.join('/');
  739 + if (url.indexOf('?') !== -1) {
  740 + result1 += '?' + url.split('?')[1];
  741 + }
  742 + if (req.query.result_callback) {
  743 + res.send(data);
  744 + } else {
  745 + res.redirect(301, result1);
  746 + }
  747 + }
  748 + } else {
  749 + res.send(data);
  750 + }
  751 + }
  752 + }
  753 +
  754 +
  755 + function getCustomerQrcode(req, res, next) {
  756 + var fullPath = settings.restful.url + 'crm' + settings.restful.version + '/customers/' + req.query.id + '/qrcode';
  757 + var options = {
  758 + 'service_catalog': '',
  759 + 'url': fullPath,
  760 + 'useUrl': true,
  761 + 'params': req.body,
  762 + 'callback': _cb,
  763 + 'req': req,
  764 + 'res': res,
  765 + 'options': {}
  766 + };
  767 + rest.get(options);
  768 + function _cb(data, response) {
  769 + if (data && data.url_path) {
  770 + res.redirect(301, data.url_path);
  771 + } else {
  772 + res.send(data);
  773 + }
  774 + }
  775 + }
  776 +
  777 + function getPositionQrcode(req, res, next) {
  778 + var fullPath = settings.restful.url + 'recruit' + settings.restful.version + '/positions/' + req.query.id + '/qrcode';
  779 + var options = {
  780 + 'service_catalog': '',
  781 + 'url': fullPath,
  782 + 'useUrl': true,
  783 + 'params': req.body,
  784 + 'callback': _cb,
  785 + 'req': req,
  786 + 'res': res,
  787 + 'options': {}
  788 + };
  789 + rest.get(options);
  790 + function _cb(data, response) {
  791 + if (data && data.url_path) {
  792 + res.redirect(301, data.url_path);
  793 + } else {
  794 + res.send(data);
  795 + }
  796 + }
  797 + }
  798 +
  799 + function getOSSConfig(req, res, next) {
  800 + var fullPath = settings.restful.url + 'filemeta' + settings.restful.version + '/config';
  801 + var options = {
  802 + 'service_catalog': '',
  803 + 'url': fullPath,
  804 + 'useUrl': true,
  805 + 'params': req.body,
  806 + 'callback': _cb,
  807 + 'req': req,
  808 + 'res': res,
  809 + 'options': {}
  810 + };
  811 + rest.get(options);
  812 + function _cb(data, response) {
  813 + if (data && data.bucket) {
  814 + req.session.passport.user.user_info.oss = data;
  815 + req.session.save(function (err) {
  816 + res.send({ "code": 200, "message": "oss配置加载成功" });
  817 + });
  818 + } else {
  819 + res.send({ "code": 200, "message": "oss配置加载失败" });
  820 + }
  821 + }
  822 + }
  823 +
  824 + function weidianTempLate(req, res, next) {
  825 + const { params } = req;
  826 + var fullPath = settings.restful.url + 'socialwork/internal/minishop/' + params.id;
  827 + var options = {
  828 + 'service_catalog': '',
  829 + 'url': fullPath,
  830 + 'useUrl': true,
  831 + 'params': req.body,
  832 + 'callback': _cb,
  833 + 'req': req,
  834 + 'res': res,
  835 + 'options': {},
  836 + 'excludeToken': true,
  837 + };
  838 + rest.get(options);
  839 + function _cb(data, response) {
  840 + logger.debug("back data:", data);
  841 + if (response.statusCode < 300) {
  842 + const { shop_logo = [], shop_name = '', shop_comment = '' } = data;
  843 + let imgUrl = '';
  844 + if (shop_logo.length > 0) {
  845 + imgUrl = 'http://oss.workai.com.cn/public/' + shop_logo[0].object;
  846 + }
  847 + res.render('template/weiDian', {
  848 + imgUrl: imgUrl,
  849 + shop_name: shop_name,
  850 + shop_comment: shop_comment,
  851 + })
  852 + } else {
  853 + res.render('template/weiDian')
  854 + }
  855 + };
  856 +
  857 + }
  858 +
  859 +
  860 + function workaiSecurityOAuth(req, res, next) {
  861 + var params = req.query;
  862 + if (params.authorization_code) {
  863 + var passport = {
  864 + user: {
  865 + refreshToken: "",
  866 + token: "",
  867 + service_catalog: {},
  868 + user_info: {},
  869 + err: null
  870 + }
  871 + };
  872 + async.waterfall([
  873 + function (callback) {//第三方登录
  874 + var tempParams = {
  875 + "grant_type": 'authorization_code_v1',
  876 + "code": params.authorization_code
  877 + };
  878 + // var tempParams={
  879 + // "grant_type":"password",
  880 + // "username":"18510929499",
  881 + // "scope":"global_access:tenant_admin",
  882 + // "password":"a123456"
  883 + // };
  884 + logger.debug("Third login", settings.restful.url + 'uaa/v1/auth/tokens', tempParams);
  885 + rest.restful.postJson(settings.restful.url + 'uaa/v1/auth/tokens', tempParams, {
  886 + headers: rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req)
  887 + })
  888 + .on('success', function (data, response) {
  889 + logger.debug("Third login json data:", data);
  890 + if (data.access_token) {
  891 + var scopes = data.scope.split(",");
  892 + passport.user.token = data.access_token;
  893 + passport.user.refreshToken = data.refresh_token;
  894 + passport.user.user_info = data.user || {};
  895 + passport.user.tenant_info = data.tenant;
  896 + passport.user.customer_info = data.customer;
  897 + passport.user.user_info.perms = data.perms;
  898 + passport.user.type = data.user.type;
  899 + passport.user.real_auth_status = data.user.real_auth_status;
  900 + passport.user.credential_status = data.user.credential_status;
  901 + passport.user.user_info.scope = scopes[0];
  902 + callback(null, data)
  903 + } else {
  904 + var err = new Error('Third login err');
  905 + passport.user.err = data.message;
  906 + callback(err, data);
  907 + }
  908 + rest.proxyLog(data,response,req,{headers:rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req),'data':tempParams,url:settings.restful.url + 'uaa/v1/auth/tokens'})
  909 + }).on('error', function (err, response) {
  910 + logger.debug("Third login error", err);
  911 + var err = new Error('Third login err');
  912 + callback(err, response);
  913 + rest.proxyLog(err,response,req,{headers:rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req),'data':tempParams,url:settings.restful.url + 'uaa/v1/auth/tokens'})
  914 + }).on('fail', function (data, response) {
  915 + logger.debug("Third login fail", data);
  916 + var err = new Error('Third login err');
  917 + callback(data, response);
  918 + rest.proxyLog(data,response,req,{headers:rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req),'data':tempParams,url:settings.restful.url + 'uaa/v1/auth/tokens'})
  919 + });
  920 + }, function (data, callback) { //获取机构列表
  921 + var tempHead = {};
  922 + var ip = req.ip.match(/\d+\.\d+\.\d+\.\d+/)[0];
  923 + var user_agent = req.headers['user-agent'] || '';
  924 + tempHead['SXClientIP'] = ip;
  925 + tempHead['User-Agent'] = user_agent;
  926 + logger.debug("Third login tenants", settings.restful.url + 'uaa/v1/tenants?all=true', { accessToken: data.access_token, headers: tempHead });
  927 + rest.restful.get(settings.restful.url + 'uaa/v1/tenants?all=true', { accessToken: data.access_token, headers: rest.addHeaders(tempHead,req) })
  928 + .on('success', function (data1, response) {
  929 + logger.debug("Third login tenants list:", data1);
  930 + if (data1 && data1.items && data1.items.length > 0) {
  931 + callback(null, data1.items)
  932 + } else {
  933 + var err = new Error('Third login tenants list err');
  934 + passport.user.err = data.message;
  935 + callback(err, data);
  936 + }
  937 + rest.proxyLog(data1,response,req,{headers:rest.addHeaders(tempHead,req),'data':{},url:settings.restful.url + 'uaa/v1/tenants?all=true'})
  938 + }).on('error', function (err, response) {
  939 + var err = new Error('Third login tenants list err');
  940 + callback(err, response);
  941 + rest.proxyLog(err,response,req,{headers:rest.addHeaders(tempHead,req),'data':{},url:settings.restful.url + 'uaa/v1/tenants?all=true'})
  942 + }).on('fail', function (data, response) {
  943 + var err = new Error('Third login tenants list fail');
  944 + callback(data, response);
  945 + rest.proxyLog(data,response,req,{headers:rest.addHeaders(tempHead,req),'data':{},url:settings.restful.url + 'uaa/v1/tenants?all=true'})
  946 + });
  947 + }, function (data, callback) { //刷新token
  948 + if (data && data.length == 1) {
  949 + var params = {
  950 + grant_type: 'refresh_token',
  951 + scope: 'global_access:tenant_admin,tenant:' + data[0].id,
  952 + refresh_token: passport.user.refreshToken
  953 + }
  954 + passport.user.token = '';
  955 + logger.debug("Third login tokens", settings.restful.url + 'uaa/v1/auth/tokens', params);
  956 + rest.restful.postJson(settings.restful.url + 'uaa/v1/auth/tokens', params, {
  957 + headers: rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req)
  958 + })
  959 + .on('success', function (data2, response) {
  960 + logger.debug("Third login json data2:", data2);
  961 + if (data2.access_token) {
  962 + var scopes = data2.scope.split(",");
  963 + passport.user.token = data2.access_token;
  964 + passport.user.refreshToken = data2.refresh_token;
  965 + passport.user.user_info = data2.user || {};
  966 + passport.user.tenant_info = data2.tenant;
  967 + passport.user.customer_info = data2.customer;
  968 + passport.user.user_info.perms = data2.perms;
  969 + passport.user.type = data2.user.type;
  970 + passport.user.real_auth_status = data2.user.real_auth_status;
  971 + passport.user.credential_status = data2.user.credential_status;
  972 + passport.user.user_info.scope = scopes[0];
  973 + passport.user.user_info.tenant = data2.tenant;
  974 + passport.user.user_info.user = {
  975 + credential_status: data2.credential_status,
  976 + id: data2.id,
  977 + is_root: data2.is_root,
  978 + mobile: data2.mobile,
  979 + name: data2.name,
  980 + real_auth_status: data2.real_auth_status,
  981 + status: data2.status,
  982 + type: data2.type,
  983 + wx_open_id: data2.wx_open_id
  984 + };
  985 + callback(null, data2)
  986 + } else {
  987 + var err = new Error('Third login err');
  988 + passport.user.err = data2.message;
  989 + callback(err, data2);
  990 + }
  991 + rest.proxyLog(data2,response,req,{headers: rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req),'data':params,url:settings.restful.url + 'uaa/v1/auth/tokens'})
  992 + }).on('error', function (err, response) {
  993 + logger.debug("Third login error", err);
  994 + var err = new Error('Third login err');
  995 + callback(err, response);
  996 + rest.proxyLog(err,response,req,{headers: rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req),'data':params,url:settings.restful.url + 'uaa/v1/auth/tokens'})
  997 + }).on('fail', function (data2, response) {
  998 + logger.debug("Third login fail", data2);
  999 + var err = new Error('Third login err');
  1000 + callback(data2, response);
  1001 + rest.proxyLog(data2,response,req,{headers: rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req),'data':params,url:settings.restful.url + 'uaa/v1/auth/tokens'})
  1002 + });
  1003 + } else if (data && data.length > 1) {// #/login/choose-tenant
  1004 + callback(null, data)
  1005 + } else {
  1006 + var err = new Error('Third login tenants list item error');
  1007 + callback(err, data);
  1008 + }
  1009 + }], function (err, result) {
  1010 + if (err) {//登陆失败跳转失败页
  1011 + res.render('loginerr', { 'err': err });
  1012 + } else if (result instanceof Array && result.length > 1) {//登陆成功跳转选择机构页
  1013 + req.session.passport = passport;
  1014 + req.session.save(function (err) {
  1015 + res.redirect(301, settings.prefix + '#login/choose-tenant');
  1016 + });
  1017 + } else {
  1018 + req.session.passport = passport;
  1019 + req.session.save(function (err) {
  1020 + rest.get({
  1021 + 'baseUrl': 'url',
  1022 + 'url': settings.restful.url + 'uaa' + settings.restful.version + '/perms/detail',
  1023 + 'useUrl': true,
  1024 + 'params': {},
  1025 + 'callback': _scb,
  1026 + 'req': req,
  1027 + 'res': res,
  1028 + 'options': {}
  1029 + });
  1030 + });
  1031 + function _scb(data1, response) {
  1032 + if (response.statusCode < 300 && data1.items) {
  1033 + req.session.passport.user.user_info.perms = data1.items;
  1034 + req.session.save(function (err) {
  1035 + if (params.redirect_page) {
  1036 + res.redirect(301, settings.prefix + '#' + params.redirect_page); //登陆成功跳转首页
  1037 + } else {
  1038 + res.redirect(301, settings.prefix + '#container/home'); //登陆成功跳转首页
  1039 + }
  1040 + })
  1041 + } else {
  1042 + if (params.redirect_page) {
  1043 + res.redirect(301, settings.prefix + '#' + params.redirect_page); //登陆成功跳转首页
  1044 + } else {
  1045 + res.redirect(301, settings.prefix + '#container/home'); //登陆成功跳转首页
  1046 + }
  1047 + }
  1048 + }
  1049 + }
  1050 + });
  1051 + }
  1052 +
  1053 + }
  1054 +
  1055 + function getTastLink(req, res, next) {
  1056 + var url = crypto.createHash('md5').update(req.body.id).digest('hex');
  1057 + if (settings.prefix && settings.prefix.length > 1) {
  1058 + res.send(req.protocol + '://' + req.get('host') + settings.prefix.substring(0, settings.prefix.length - 1) + "/socialwork/freedom-jobs/emps/" + req.body.id + "/" + url);
  1059 + } else {
  1060 + res.send({ 'url': req.protocol + '://' + req.get('host') + "/socialwork/freedom-jobs/emps/" + req.body.id + "/" + url });
  1061 + }
  1062 + }
  1063 +
  1064 + function freedomJobsEmp(req, res, next) {
  1065 + var id = req.params.id;
  1066 + var verification = req.params.verification;
  1067 + // var url = crypto.createHash('md5').update(id).digest('hex');
  1068 + if (false) {//验证未通过verification != url
  1069 + if (settings.prefix && settings.prefix.length > 1) {
  1070 + res.redirect(settings.prefix.substring(0, settings.prefix.length - 1));
  1071 + } else {
  1072 + res.redirect('/');
  1073 + }
  1074 + } else {//验证通过跳转,获取token存到session里
  1075 + var passport = {
  1076 + user: {
  1077 + refreshToken: "",
  1078 + token: "",
  1079 + service_catalog: {},
  1080 + user_info: {},
  1081 + err: null
  1082 + }
  1083 + };
  1084 + var tempParams = {
  1085 + "grant_type": "client_credential",
  1086 + "client_id": "340161778618994688",//多宝鱼环境
  1087 + "client_secret": "0f8c30aa3d15332652f62c3eaf22fdea"
  1088 + };
  1089 + rest.restful.postJson(settings.restful.url + 'uaa/v1/auth/tokens', tempParams, {
  1090 + headers:rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req)
  1091 + }).on('success', function (data, response) {
  1092 + if (data.access_token) {
  1093 + var scopes = data.scope.split(",");
  1094 + passport.user.token = data.access_token;
  1095 + passport.user.refreshToken = data.refresh_token;
  1096 + passport.user.user_info = data.user;
  1097 + passport.user.tenant_info = data.tenant;
  1098 + passport.user.customer_info = data.customer;
  1099 + passport.user.user_info.perms = data.perms;
  1100 + passport.user.type = data.user.type;
  1101 + passport.user.real_auth_status = data.user.real_auth_status;
  1102 + passport.user.credential_status = data.user.credential_status;
  1103 + passport.user.user_info.scope = scopes[0];
  1104 + req.session.passport = passport;
  1105 + req.session.save(function (err) {
  1106 + if (settings.prefix && settings.prefix.length > 1) {
  1107 + res.redirect(301, settings.prefix.substring(0, settings.prefix.length - 1) + '/#task_assign/' + id);
  1108 + } else {
  1109 + res.redirect(301, '/#task_assign/' + id);
  1110 + }
  1111 + });
  1112 + } else {
  1113 + var err = new Error('Third login err');
  1114 + passport.user.err = data.message;
  1115 + }
  1116 + rest.proxyLog(data,response,req,{headers: rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req),'data':tempParams,url:settings.restful.url + 'uaa/v1/auth/tokens'})
  1117 + }).on('error', function (err, response) {
  1118 + logger.debug("Third login error", err);
  1119 + var err = new Error('Third login err');
  1120 + callback(err, response);
  1121 + rest.proxyLog(err,response,req,{headers: rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req),'data':tempParams,url:settings.restful.url + 'uaa/v1/auth/tokens'})
  1122 + }).on('fail', function (data, response) {
  1123 + logger.debug("Third login fail", data);
  1124 + var err = new Error('Third login err');
  1125 + rest.proxyLog(err,response,req,{headers: rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req),'data':tempParams,url:settings.restful.url + 'uaa/v1/auth/tokens'})
  1126 + });
  1127 + }
  1128 +
  1129 + }
  1130 +
  1131 + function getShortToken(req, res, next) {
  1132 + var params = {
  1133 + grant_type: 'refresh_token',
  1134 + scope: req.session.passport.user.scope,
  1135 + refresh_token: req.session.passport.user.refreshToken
  1136 + }
  1137 + logger.debug("getShortToken:", params);
  1138 + rest.postJson({
  1139 + 'baseUrl': 'url',
  1140 + 'url': settings.restful.url + 'uaa' + settings.restful.version + '/auth/tokens',
  1141 + 'useUrl': true,
  1142 + 'params': params,
  1143 + 'callback': _cb,
  1144 + 'req': req,
  1145 + 'res': res,
  1146 + 'options': {},
  1147 + 'excludeToken': true
  1148 + })
  1149 + function _cb(data, response) {
  1150 + logger.debug("back data:", data);
  1151 + res.send({ "code": response.statusCode, "access_token": data.access_token });
  1152 + };
  1153 + }
  1154 +
  1155 + function loadYxlyToken(req, res) {
  1156 + let hroToken = '';
  1157 + if (req.session.passport && req.session.passport.user && req.session.passport.user && req.session.passport.user.token) {
  1158 + hroToken = req.session.passport.user.token;
  1159 + }
  1160 + let params = {
  1161 + way: 'tenant',
  1162 + tenantToken: hroToken,
  1163 + };
  1164 +
  1165 + rest.postJson({
  1166 + 'baseUrl': 'url',
  1167 + 'url': settings.excellentRestful.url + 'auth' + settings.excellentRestful.version + '/login',
  1168 + 'useUrl': true,
  1169 + 'params': params,
  1170 + 'callback': _cb,
  1171 + 'req': req,
  1172 + 'res': res,
  1173 + 'options': {},
  1174 + 'headers': {
  1175 + "Accept": "application/json",
  1176 + "Content-Type": "application/json",
  1177 + 'User-Agent': 'Request for Express',
  1178 + 'Authorization': 'Basic d29ya2FpOjEyMzQ1Ng=='
  1179 + },
  1180 + 'excludeToken': true
  1181 + });
  1182 +
  1183 + function _cb(result, response) {
  1184 +
  1185 + if (response.statusCode < 300 && result && result.data) {
  1186 + let key = `${req.session.passport.user.user_info.user.id}_yxly_token`;
  1187 + redis.set(key, result.data.access_token);
  1188 + logger.debug("loadYxlyToken......", key, result.data.access_token);
  1189 + } else {
  1190 + // res.send({ "code": 200, "message": "切换租户失败" });
  1191 + }
  1192 + }
  1193 + }
  1194 +
  1195 + function redirectContract(req, res) {
  1196 + logger.warn("00000000000......",req.path);
  1197 + let deviceArray = ['android', 'Android', 'iPhone', 'windows phone'];
  1198 + let userAgent = req.headers['user-agent'];
  1199 + logger.warn("user-agent......", userAgent);
  1200 +
  1201 + let isMobile = false;
  1202 + deviceArray.map((item, index) => {
  1203 + if (userAgent.indexOf(item) > 0) {
  1204 + isMobile = true;
  1205 + }
  1206 + })
  1207 +
  1208 + logger.warn("isMobile......", isMobile);
  1209 + logger.warn("req.session......", req.session);
  1210 +
  1211 + if (isMobile) {
  1212 + logger.warn("44444444......", settings.restful);
  1213 + logger.warn("req.query......", req.query);
  1214 +
  1215 + return res.redirect(301, `${settings.restful.redirectMobileUrl}?state=contracts&code=${req.query.code}&scope=${req.query.scope}`);
  1216 +
  1217 +
  1218 + } else {
  1219 +
  1220 + // return res.redirect(`/#/main/labor-contract/manage`);
  1221 + return res.redirect(`https://www.baidu.com`);
  1222 +
  1223 + // logger.warn("req.session......", req.session);
  1224 + // if(req.session.passport && req.session.passport.user && req.session.passport.user.user_info && req.session.passport.user.user_info.user) {
  1225 + // logger.warn("11111111......");
  1226 + // return res.redirect(`/#/main/labor-contract/manage`);
  1227 + // } else {
  1228 + // logger.warn("22222222......");
  1229 + // return res.redirect(`/#/`);
  1230 + // }
  1231 + }
  1232 + }
  1233 +
  1234 + return {
  1235 + refreshToken:refreshToken,
  1236 + index: index,
  1237 + indexPrefix,
  1238 + register: register,
  1239 + signIn: signIn,
  1240 + doLogin: doLogin,
  1241 + signOut: signOut,
  1242 + smsCodes: smsCodes,
  1243 + tenants: tenants,
  1244 + productDes: productDes,
  1245 + resetPass: resetPass,
  1246 + updatePassword: updatePassword,
  1247 + loadUserInfo: loadUserInfo,
  1248 + getUploaderToken: getUploaderToken,
  1249 + getObjectTokenByID,
  1250 + delOSSObject: delOSSObject,
  1251 + healthMonitor,
  1252 + smsVerification,
  1253 + updateUserRoles,
  1254 + getRoles,
  1255 + getUserRoles,
  1256 + getTenant,
  1257 + updateTenant,
  1258 + offer,
  1259 + onboardStatus,
  1260 + dowloadApp,
  1261 + mobileRegister,
  1262 + mobileRegisterSuccess,
  1263 + softwareLicense,
  1264 + recharge,
  1265 + changePassForRegister,
  1266 + changeTenant,
  1267 + sendRejectOffer,
  1268 + acceptOffer,
  1269 + imTokens,
  1270 + listChannels,
  1271 + filemeta,
  1272 + getCustomerQrcode,
  1273 + getPositionQrcode,
  1274 + getOSSConfig,
  1275 + weidianTempLate,
  1276 + workaiSecurityOAuth,
  1277 + getTastLink,
  1278 + freedomJobsEmp,
  1279 + getShortToken,
  1280 + loadYxlyToken,
  1281 + redirectContract,
  1282 + };
1236 1283 };
1237 1284
1238   -exports["@singleton"] = true;
1239   -exports["@require"] = ["igloo/logger", "utils/rest", "igloo/settings"];
  1285 +exports['@singleton'] = true;
  1286 +exports['@require'] = ['igloo/logger', 'utils/rest', 'utils/redis', 'igloo/settings'];
... ...
... ... @@ -13,7 +13,7 @@ exports=module.exports=function(logger,rest,settings){
13 13 var tempParam=param.split("=")
14 14 tempParam[1]=urlencode.decode(tempParam[1], 'utf8');
15 15 tempParam[1]=tempParam[1].replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
16   - console.log(tempParam[1]);
  16 + logger.debug(tempParam[1]);
17 17 if(i<(params.length-1)){
18 18 if(/[:&+/?%#=]/g.test(tempParam[1])){
19 19 temp.push(tempParam[0]+"="+encodeUrl(tempParam[1])+"&");
... ... @@ -65,7 +65,7 @@ exports=module.exports=function(logger,rest,settings){
65 65
66 66 function searchService(services,name){
67 67 if(services[name]){
68   - console.log(services[name]);
  68 + logger.debug(services[name]);
69 69 return false;
70 70 }else{
71 71 return true;
... ... @@ -124,7 +124,7 @@ exports=module.exports=function(logger,rest,settings){
124 124 rest.get(options);
125 125 }
126 126 function _cb(data,response){
127   - logger.info('back data:',data);
  127 + logger.debug('back data:',data);
128 128 if(response.statusCode<300&&!data){
129 129 res.send({
130 130 code:200,
... ... @@ -158,7 +158,7 @@ exports=module.exports=function(logger,rest,settings){
158 158 }
159 159 }
160 160 function _cb(data,response){
161   - logger.info('back data:',data);
  161 + logger.debug('back data:',data);
162 162 if(response.statusCode<300&&!data){
163 163 res.send({
164 164 code:200,
... ... @@ -192,7 +192,7 @@ exports=module.exports=function(logger,rest,settings){
192 192 }
193 193 }
194 194 function _cb(data,response){
195   - logger.info('back data:',data);
  195 + logger.debug('back data:',data);
196 196 if(response.statusCode<300&&!data){
197 197 res.send({
198 198 code:200,
... ... @@ -226,7 +226,7 @@ exports=module.exports=function(logger,rest,settings){
226 226 }
227 227 }
228 228 function _cb(data,response){
229   - logger.info('back data:',data);
  229 + logger.debug('back data:',data);
230 230 res.send(data);
231 231 }
232 232 }
... ... @@ -249,7 +249,7 @@ exports=module.exports=function(logger,rest,settings){
249 249 rest.get(options);
250 250 }
251 251 function _cb(data,response){
252   - logger.info('back data:',data);
  252 + logger.debug('back data:',data);
253 253 res.send(data);
254 254 }
255 255 }
... ... @@ -272,7 +272,7 @@ exports=module.exports=function(logger,rest,settings){
272 272 rest.del(options);
273 273 }
274 274 function _cb(data,response){
275   - logger.info('back data:',data);
  275 + logger.debug('back data:',data);
276 276 if(response.statusCode<300){
277 277 res.send({'action':'delete',"message":"删除成功"});
278 278 }else{
... ...
  1 +exports = module.exports = function (logger, settings) {
  2 + function getHost(req, res, next) {
  3 + logger.info('getHost');
  4 + const { hostConfig } = settings;
  5 + return res.send({
  6 + data: hostConfig,
  7 + });
  8 + }
  9 +
  10 + return {
  11 + getHost,
  12 + };
  13 + };
  14 +
  15 + exports["@singleton"] = true;
  16 + exports["@require"] = ["igloo/logger", "igloo/settings"];
  17 +
\ No newline at end of file
... ...
  1 +var urlencode = require('urlencode');
  2 +
  3 +exports = module.exports = function (logger, rest, redis, settings) {
  4 + function getOptions(url, type) {
  5 + var catalog = url.substring(1, url.indexOf('/', 1));
  6 + var pathUrl = url.substring(url.indexOf('/', 1));
  7 + var fullPath = '/' + catalog + settings.excellentRestful.version + pathUrl;
  8 + return {
  9 + 'host': settings.excellentRestful.host, //后台请求地址
  10 + 'port': settings.excellentRestful.port,
  11 + 'path': fullPath,
  12 + 'method': type,
  13 + 'agent': false,
  14 + 'headers': {
  15 + "Accept": "application/json",
  16 + "Content-Type": "application/json",
  17 + 'Proxy-User-Agent': 'Request for Express'
  18 + }
  19 + };
  20 + }
  21 +
  22 + async function addToken(options, req) {
  23 + if (req.session.passport && req.session.passport.user && req.session.passport.user && req.session.passport.user.user_info) {
  24 + const yxly_token = await redis.get(`${req.session.passport.user.user_info.user.id}_yxly_token`)
  25 + if (yxly_token) {
  26 + options.headers['Authorization'] = yxly_token ? `Bearer ${yxly_token}` : '';
  27 + }
  28 + }
  29 +
  30 + if (req.headers['device-id']) {
  31 + options.headers['Device-Id'] = req.headers['device-id']
  32 + }
  33 + if (req.ip) {
  34 + options.headers['Client-Ip'] = req.ip
  35 + }
  36 + if (req.headers['x-request-id']) {
  37 + options.headers['X-Request-Id'] = req.headers['x-request-id']
  38 + }
  39 + if(req.headers['user-agent'] ){
  40 + options.headers['User-Agent'] = req.headers['user-agent']
  41 + }
  42 +
  43 + return options;
  44 + }
  45 +
  46 + function addReqResOptions(options, req,res){
  47 + options['req']=req;
  48 + options['res']=res;
  49 + return options;
  50 + }
  51 +
  52 + function addParams(options, req) {
  53 + var postData = !req.body ? '' : JSON.stringify(req.body || {});
  54 + // options.headers['Content-Length'] = postData.length;
  55 + options.params = postData;
  56 + }
  57 +
  58 + function addContentLength(options) {
  59 + if (options.params) {
  60 + options.headers['Content-Length'] = options.params.length;
  61 + }
  62 + }
  63 +
  64 + function encodeUrl(url) {
  65 + return urlencode(url);
  66 + }
  67 +
  68 + function encodePamars(params) {
  69 + var temp = [];
  70 + for (var i = 0; i < params.length; i++) {
  71 + var param = params[i];
  72 + var tempParam = param.split("=")
  73 + tempParam[1] = urlencode.decode(tempParam[1], 'utf8');
  74 + tempParam[1] = tempParam[1].replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  75 +
  76 + if (i < (params.length - 1)) {
  77 + if (/[:&+/?%#=]/g.test(tempParam[1])) {
  78 + temp.push(tempParam[0] + "=" + encodeUrl(tempParam[1]) + "&");
  79 + } else {
  80 + temp.push(tempParam[0] + "=" + tempParam[1] + "&");
  81 + }
  82 + } else {
  83 + if (/[:&+/?%#=]/g.test(tempParam[1])) {
  84 + temp.push(tempParam[0] + "=" + encodeUrl(tempParam[1]));
  85 + } else {
  86 + temp.push(tempParam[0] + "=" + tempParam[1]);
  87 + }
  88 + }
  89 + }
  90 + return temp.join("");
  91 + }
  92 +
  93 + function handlePamars(url) {
  94 + var tempUrl = url;
  95 + // if(url.indexOf("?")!=-1){
  96 + // var temp=url.split("?");
  97 + // var params="";
  98 + // if(temp[1]&&temp[1].indexOf("&")!=-1){
  99 + // params=encodePamars(temp[1].split("&"));
  100 + // }else{
  101 + // params=encodePamars([temp[1]]);
  102 + // }
  103 + // return temp[0]+"?"+params;
  104 + // }else {
  105 + // return tempUrl;
  106 + // }
  107 + return tempUrl;
  108 + }
  109 +
  110 + function splitServiceFromUrl(url) {
  111 + var catalog = url.substring(1, url.indexOf('/', 1));
  112 + var pathUrl = url.substring(url.indexOf('/', 1));
  113 + var fullPath = settings.restful.url + catalog + settings.restful.version + pathUrl;
  114 + return fullPath
  115 + }
  116 +
  117 + function splitUrl(fullUrl) {
  118 + if (settings.prefix && settings.prefix.length > 1) {
  119 + fullUrl = fullUrl.substring(settings.prefix.length - 1);
  120 + }
  121 + var url = fullUrl.substring(fullUrl.indexOf('/', 1));
  122 + return url;
  123 + }
  124 +
  125 + function searchService(services, name) {
  126 + if (services[name]) {
  127 +
  128 + return false;
  129 + } else {
  130 + return true;
  131 + }
  132 + }
  133 +
  134 + function checkReq(req, res) {
  135 + var flag = true;
  136 + // if(flag&&req.headers&&!req.headers['service-catalog']){
  137 + // res.status(400);
  138 + // res.send({"errors":{},"message":"缺少必要请求参数,服务目录名称是必填项"});
  139 + // flag=false;
  140 + // }
  141 + // if(flag&&req.session.passport&&req.session.passport.user&&!req.session.passport.user.service_catalog){
  142 + // res.status(404);
  143 + // res.send({"errors":{},"message":"服务目录未加载,请重新登录"});
  144 + // flag=false;
  145 + // }
  146 + // if(flag&&searchService(req.session.passport.user.service_catalog,req.headers['service-catalog'])){
  147 + // res.status(404);
  148 + // res.send({"errors":{},"message":"服务目录未查询到请求服务,请确认参数正确"});
  149 + // flag=false;
  150 + // }
  151 + return flag;
  152 + }
  153 +
  154 + function checkJson(req) {
  155 + if (req.headers && req.headers['content-type'] == 'application/json') {
  156 + return true;
  157 + } else {
  158 + return false;
  159 + }
  160 + }
  161 +
  162 + async function get(req, res, next) {
  163 + var url = splitUrl(req.originalUrl);
  164 + var options = getOptions(url, 'GET');
  165 + await addToken(options, req);
  166 + addReqResOptions(options, req,res);
  167 + function _success(data, response) {
  168 + if (response.statusCode >= 400 || !data) {
  169 + logger.debug(options, data);
  170 + res.status(response.statusCode);
  171 + res.send(data);
  172 + } else {
  173 + res.send(data);
  174 + }
  175 + }
  176 + function _fail(err) {
  177 + logger.debug(options, err);
  178 + res.send(err);
  179 + }
  180 + rest.restClient(options, _success, _fail);
  181 + }
  182 +
  183 + async function post(req, res, next) {
  184 + var url = splitUrl(req.originalUrl);
  185 + var options = getOptions(url, 'POST');
  186 + await addToken(options, req);
  187 + addReqResOptions(options, req,res);
  188 + addParams(options, req);
  189 + function _success(data, response) {
  190 + if (response.statusCode >= 400) {
  191 + logger.debug(options, data);
  192 + res.status(response.statusCode);
  193 + res.send(data);
  194 + } else if (!data || 'null' == data || "null\n" == data || '{}' == data) {
  195 + res.send({
  196 + code: 200,
  197 + message: '操作成功!'
  198 + });
  199 + } else {
  200 + res.send(data);
  201 + }
  202 + }
  203 + function _fail(err) {
  204 + logger.debug(options, err);
  205 + res.send(err);
  206 + }
  207 + rest.restClient(options, _success, _fail);
  208 + }
  209 +
  210 + async function put(req, res, next) {
  211 + var url = splitUrl(req.originalUrl);
  212 + var options = getOptions(url, 'PUT');
  213 + await addToken(options, req);
  214 + addReqResOptions(options, req,res);
  215 + addParams(options, req);
  216 + function _success(data, response) {
  217 + if (response.statusCode >= 400) {
  218 + logger.debug(options, data);
  219 + res.status(response.statusCode);
  220 + res.send(data);
  221 + } else if (!data || 'null' == data || "null\n" == data || '{}' == data) {
  222 + res.send({
  223 + code: 200,
  224 + message: '操作成功!'
  225 + });
  226 + } else {
  227 + res.send(data);
  228 + }
  229 + }
  230 + function _fail(err) {
  231 + logger.debug(options, err);
  232 + res.send(err);
  233 + }
  234 + rest.restClient(options, _success, _fail);
  235 + }
  236 +
  237 + async function patch(req, res, next) {
  238 + var url = splitUrl(req.originalUrl);
  239 + var options = getOptions(url, 'PATCH');
  240 + await addToken(options, req);
  241 + addReqResOptions(options, req,res);
  242 + addParams(options, req);
  243 + function _success(data, response) {
  244 + if (response.statusCode >= 400) {
  245 + logger.debug(options, data);
  246 + res.send(data);
  247 + } else if (!data) {
  248 + res.send({
  249 + code: 200,
  250 + message: '操作成功!'
  251 + });
  252 + } else {
  253 + res.send(data);
  254 + }
  255 + }
  256 + function _fail(err) {
  257 + logger.debug(options, err);
  258 + res.send(err);
  259 + }
  260 + rest.restClient(options, _success, _fail);
  261 + }
  262 +
  263 + async function head(req, res, next) {
  264 + var url = splitUrl(req.originalUrl);
  265 + var options = getOptions(url, 'HEAD');
  266 + await addToken(options, req);
  267 + addReqResOptions(options, req,res);
  268 + addParams(options, req);
  269 + function _success(data, response) {
  270 + if (response.statusCode >= 400) {
  271 + logger.debug(options, data);
  272 + res.send(data);
  273 + } else if (!data) {
  274 + res.send({
  275 + code: 200,
  276 + message: '操作成功!'
  277 + });
  278 + } else {
  279 + res.send(data);
  280 + }
  281 + }
  282 + function _fail(err) {
  283 + logger.debug(options, err);
  284 + res.send(err);
  285 + }
  286 + rest.restClient(options, _success, _fail);
  287 + }
  288 +
  289 + async function del(req, res, next) {
  290 + var url = splitUrl(req.originalUrl);
  291 + var options = getOptions(url, 'DELETE');
  292 + await addToken(options, req);
  293 + addReqResOptions(options, req,res);
  294 + addParams(options, req);
  295 + addContentLength(options);
  296 + function _success(data, response) {
  297 + if (response.statusCode >= 400) {
  298 + logger.debug(options, data);
  299 + res.status(response.statusCode);
  300 + res.send(data);
  301 + } else if (!data || (data && !data.message)) {
  302 + res.send({
  303 + code: 200,
  304 + action: "delete",
  305 + message: '删除成功'
  306 + });
  307 + } else {
  308 + res.send(data);
  309 + }
  310 + }
  311 + function _fail(err) {
  312 + logger.debug(options, err);
  313 + res.send(err);
  314 + }
  315 + rest.restClient(options, _success, _fail);
  316 + }
  317 +
  318 + return {
  319 + 'get': get,
  320 + 'post': post,
  321 + 'put': put,
  322 + 'patch': patch,
  323 + 'head': head,
  324 + 'delete': del
  325 + };
  326 +};
  327 +
  328 +exports['@singleton'] = true;
  329 +exports['@require'] = ['igloo/logger', 'utils/rest', 'utils/redis', 'igloo/settings'];
... ...
... ... @@ -11,7 +11,6 @@ exports=module.exports=function(logger,rest,settings){
11 11 var tempParam=param.split("=")
12 12 tempParam[1]=urlencode.decode(tempParam[1], 'utf8');
13 13 tempParam[1]=tempParam[1].replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
14   - console.log(tempParam[1]);
15 14 if(i<(params.length-1)){
16 15 if(/[:&+/?%#=]/g.test(tempParam[1])){
17 16 temp.push(tempParam[0]+"="+encodeUrl(tempParam[1])+"&");
... ... @@ -66,7 +65,6 @@ exports=module.exports=function(logger,rest,settings){
66 65
67 66 function searchService(services,name){
68 67 if(services[name]){
69   - console.log(services[name]);
70 68 return false;
71 69 }else{
72 70 return true;
... ... @@ -119,7 +117,7 @@ exports=module.exports=function(logger,rest,settings){
119 117 rest.get(options);
120 118 }
121 119 function _cb(data,response){
122   - logger.info('back data:',data);
  120 + logger.debug('back data:',data);
123 121 if(response.statusCode<300&&!data){
124 122 res.send({
125 123 code:200,
... ... @@ -152,7 +150,7 @@ exports=module.exports=function(logger,rest,settings){
152 150 }
153 151 }
154 152 function _cb(data,response){
155   - logger.info('back data:',data);
  153 + logger.debug('back data:',data);
156 154 if(response.statusCode<300&&!data){
157 155 res.send({
158 156 code:200,
... ... @@ -185,7 +183,7 @@ exports=module.exports=function(logger,rest,settings){
185 183 }
186 184 }
187 185 function _cb(data,response){
188   - logger.info('back data:',data);
  186 + logger.debug('back data:',data);
189 187 if(response.statusCode<300&&!data){
190 188 res.send({
191 189 code:200,
... ... @@ -218,7 +216,7 @@ exports=module.exports=function(logger,rest,settings){
218 216 }
219 217 }
220 218 function _cb(data,response){
221   - logger.info('back data:',data);
  219 + logger.debug('back data:',data);
222 220 res.send(data);
223 221 }
224 222 }
... ... @@ -240,7 +238,7 @@ exports=module.exports=function(logger,rest,settings){
240 238 rest.get(options);
241 239 }
242 240 function _cb(data,response){
243   - logger.info('back data:',data);
  241 + logger.debug('back data:',data);
244 242 res.send(data);
245 243 }
246 244 }
... ... @@ -262,7 +260,7 @@ exports=module.exports=function(logger,rest,settings){
262 260 rest.del(options);
263 261 }
264 262 function _cb(data,response){
265   - logger.info('back data:',data);
  263 + logger.debug('back data:',data);
266 264 if(response.statusCode<300){
267 265 res.send({'action':'delete',"message":"删除成功"});
268 266 }else{
... ...
... ... @@ -15,32 +15,26 @@ exports=module.exports=function(logger,rest,settings){
15 15 }
16 16
17 17 function get(req,res,next){
18   - console.log(req.path);
19 18 res.send(getJson(req.path,'get'));
20 19 }
21 20
22 21 function post(req,res,next){
23   - console.log(req.path);
24 22 res.send(getJson(req.path,'post'));
25 23 }
26 24
27 25 function put(req,res,next){
28   - console.log(req.path);
29 26 res.send(getJson(req.path,'put'));
30 27 }
31 28
32 29 function patch(req,res,next){
33   - console.log(req.path);
34 30 res.send(getJson(req.path,'patch'));
35 31 }
36 32
37 33 function head(req,res,next){
38   - console.log(req.path);
39 34 res.send(getJson(req.path,'head'));
40 35 }
41 36
42 37 function del(req,res,next){
43   - console.log(req.path);
44 38 res.send(getJson(req.path,'del'));
45 39 }
46 40
... ...
... ... @@ -4,7 +4,7 @@ exports=module.exports=function(logger,rest,settings){
4 4 var api_service_endpoint = 'http://47.98.198.227:59000/v1';
5 5
6 6 function index(req,res,next){
7   - logger.info(req.user);
  7 + logger.debug(req.user);
8 8 res.render('robotMobile',{title:'外呼机器人'});
9 9 }
10 10
... ... @@ -30,7 +30,6 @@ exports=module.exports=function(logger,rest,settings){
30 30 'excludeToken':true
31 31 });
32 32 function _cb(data,response){
33   - console.log(data);
34 33 res.send(data);
35 34 }
36 35 // res.send({
... ... @@ -59,7 +58,6 @@ exports=module.exports=function(logger,rest,settings){
59 58 'excludeToken':true
60 59 });
61 60 function _cb(data,response){
62   - console.log(data);
63 61 res.send(data);
64 62 }
65 63 }
... ...
... ... @@ -13,10 +13,10 @@ exports = module.exports = function(IoC, settings) {
13 13 app.set('env', settings.server.env);
14 14
15 15 // set the default views directory
16   - // app.set('views', settings.views.dir);
  16 + app.set('views', settings.views.dir);
17 17
18 18 // set the default view engine
19   - // app.set('view engine', settings.views.engine);
  19 + app.set('view engine', settings.views.engine);
20 20
21 21
22 22
... ... @@ -30,7 +30,7 @@ exports = module.exports = function(IoC, settings) {
30 30 if (settings.server.env === 'production') {
31 31
32 32 // enable view caching
33   - // app.enable('view cache');
  33 + app.enable('view cache');
34 34
35 35 // compress response data with gzip/deflate
36 36 // this overwrites res.write and res.end functions
... ...
... ... @@ -4,11 +4,12 @@
4 4
5 5 var serveFavicon = require('serve-favicon');
6 6 var path = require('path');
7   -var winstonRequestLogger = require('winston-request-logger');
  7 +var serveStatic = require('serve-static');
  8 +// var winstonRequestLogger = require('winston-request-logger');
  9 +var requestLogger = require('../../utils/requestLogger');
8 10 var methodOverride = require('method-override');
9 11 var bodyParser = require('body-parser');
10 12 var responseTime = require('response-time');
11   -const express = require('express')
12 13 // var busboy = require('connect-busboy');
13 14
14 15
... ... @@ -25,7 +26,8 @@ exports = module.exports = function (IoC, logger, settings, policies) {
25 26
26 27 // static server (always keep this first)
27 28 // <http://goo.gl/j2BEl5>
28   - app.use('/', express.static('public'));
  29 + app.use(serveStatic(settings.publicDir, settings.staticServer));
  30 +
29 31 // adds X-Response-Time header
30 32 app.use(responseTime({
31 33 digits: 5
... ... @@ -111,10 +113,12 @@ exports = module.exports = function (IoC, logger, settings, policies) {
111 113
112 114 // winston request logger before everything else
113 115 // but only if it was enabled in settings
114   - if (settings.logger.requests) {
115   - app.use(winstonRequestLogger.create(logger));
116   - }
  116 + // if (settings.logger.requests) {
  117 + // app.use(winstonRequestLogger.create(logger));
  118 + // }
117 119
  120 + // app.use(requestLogger(logger,settings));
  121 +
118 122 // parse request bodies
119 123 // support _method (PUT in forms etc)
120 124 app.use(
... ...
... ... @@ -33,7 +33,8 @@
33 33 "urlencode": "^1.1.0",
34 34 "uuid": "^7.0.1",
35 35 "validator": "^5.1.0",
36   - "winston-request-logger": "^1.0.7"
  36 + "winston-request-logger": "^1.0.7",
  37 + "redis": "^4.0.3"
37 38 },
38 39 "dependencies": {}
39 40 }
... ...
此 diff 太大无法显示。
  1 +/*
  2 + * @Descripttion:
  3 + * @version: 0.0.0
  4 + * @Author: genglw
  5 + * @Date: 2022-01-21 15:31:14
  6 + * @LastEditors: genglw
  7 + * @LastEditTime: 2022-02-10 20:37:04
  8 + */
1 9 var express = require('express');
2 10
3 11 exports = module.exports = function (IoC, policies, settings) {
... ... @@ -42,6 +50,7 @@ exports = module.exports = function (IoC, policies, settings) {
42 50 );
43 51
44 52 app.use(settings.prefix + 'api', router);
  53 +
45 54 };
46 55
47 56 exports['@require'] = ['$container', 'policies', 'igloo/settings'];
... ...
1   -var express = require("express");
2   -var payRoll = require("../json/payRoll.json");
  1 +var express = require('express');
  2 +var payRoll = require('../json/payRoll.json');
3 3
4 4 exports = module.exports = function (IoC, policies, settings) {
5   - var app = this;
6   - var router = express.Router();
7   - var router2 = express.Router();
8   - var controller = IoC.create("controllers/auth");
9   -
10   - if (settings.prefix.length > 0) {
11   - // router.get("/index", controller.index);
12   - router.get("/signOut", controller.signOut);
13   - }
14   -
15   - router.get("/img/*", controller.getImg);
16   -
17   - router2.get("/", controller.indexPrefix);
18   -
19   - router.get("/productDes", controller.productDes);
20   -
21   - router.get("/register", controller.register);
22   -
23   - router.get("/mobileRegister", controller.mobileRegister);
24   -
25   - router.get("/mobileRegisterSuccess", controller.mobileRegisterSuccess);
26   -
27   - router.get("/signIn", controller.signIn);
28   -
29   - router.post("/doLogin", controller.doLogin);
30   -
31   - router2.get("/signOut", controller.signOut);
32   -
33   - router.post("/smsCodes", controller.smsCodes);
34   -
35   - router.post("/tenants", controller.tenants);
36   -
37   - router.post("/resetPass", policies.ensureLoggedOut(), controller.resetPass);
38   -
39   - router.post(
40   - "/updatePassword",
41   - policies.ensureLoggedOut(),
42   - controller.updatePassword
43   - );
44   -
45   - router.post(
46   - "/loadUserInfo",
47   - policies.ensureLoggedOut(),
48   - controller.loadUserInfo
49   - );
50   -
51   - router.post(
52   - "/getUploaderToken",
53   - policies.ensureLoggedOut(),
54   - controller.getUploaderToken
55   - );
56   -
57   - router.post(
58   - "/delOSSObject",
59   - policies.ensureLoggedOut(),
60   - controller.delOSSObject
61   - );
62   -
63   - router.post("/smsVerification", controller.smsVerification);
64   -
65   - router.post("/getObjectTokenByID", controller.getObjectTokenByID);
66   -
67   - // router.get(
68   - // '/healthMonitor',
69   - // controller.healthMonitor
70   - // )
71   -
72   - // router.head(
73   - // '/healthMonitor',
74   - // controller.healthMonitor
75   - // )
76   -
77   - router.post(
78   - "/getUserRoles",
79   - policies.ensureLoggedOut(),
80   - controller.getUserRoles
81   - );
82   -
83   - router.post("/getRoles", policies.ensureLoggedOut(), controller.getRoles);
84   -
85   - router.post(
86   - "/updateUserRoles",
87   - policies.ensureLoggedOut(),
88   - controller.updateUserRoles
89   - );
90   -
91   - router.post("/getTenant", policies.ensureLoggedOut(), controller.getTenant);
92   -
93   - router.post(
94   - "/updateTenant",
95   - policies.ensureLoggedOut(),
96   - controller.updateTenant
97   - );
98   -
99   - router.get("/offer/:requestId", controller.offer);
100   -
101   - router.post(
102   - "/onboardStatus",
103   - policies.ensureLoggedOut(),
104   - controller.onboardStatus
105   - );
106   -
107   - router.get("/downloadApp", controller.dowloadApp);
108   -
109   - router.get("/info/policy", controller.softwareLicense);
110   -
111   - router.get("/payRoll", function (req, res, next) {
112   - res.send(payRoll);
113   - });
114   -
115   - router.get("/recharge", controller.recharge);
116   -
117   - router.post("/changePassForRegister", controller.changePassForRegister);
118   -
119   - router.post(
120   - "/changeTenant",
121   - policies.ensureLoggedOut(),
122   - controller.changeTenant
123   - );
124   -
125   - router.post("/hr/sendRejectOffer", controller.sendRejectOffer);
126   -
127   - router.post("/hr/acceptOffer", controller.acceptOffer);
128   -
129   - router.post("/imTokens", policies.ensureLoggedOut(), controller.imTokens);
130   -
131   - router.post(
132   - "/listChannels",
133   - policies.ensureLoggedOut(),
134   - controller.listChannels
135   - );
136   -
137   - router.post(
138   - "/getTastLink",
139   - policies.ensureLoggedOut(),
140   - controller.getTastLink
141   - );
142   -
143   - router.get("/filemeta", policies.ensureLoggedOut(), controller.filemeta);
144   -
145   - router.get(
146   - "/getCustomerQrcode",
147   - policies.ensureLoggedOut(),
148   - controller.getCustomerQrcode
149   - );
150   -
151   - router.get(
152   - "/getPositionQrcode",
153   - policies.ensureLoggedOut(),
154   - controller.getPositionQrcode
155   - );
156   - router.get(
157   - //微店模板路由
158   - "/minishop/:id",
159   - controller.weidianTempLate
160   - );
161   -
162   - router.get("/wso-workai", controller.workaiSecurityOAuth);
163   -
164   - router.get(
165   - "/socialwork/freedom-jobs/emps/:id/:verification",
166   - controller.freedomJobsEmp
167   - );
168   -
169   - router.get("/socialwork/freedom-jobs/emps/:id", controller.freedomJobsEmp);
170   -
171   - router.get("/getShortToken", controller.getShortToken);
172   -
173   - router.get("/gainianrenli/*",controller.getImg)
174   - router.get("/waifu_img/*",controller.getImg)
175   - router.get("/my_img/*",controller.getImg)
176   - router.get("/invoice_file_icon/*",controller.getImg)
177   - router.get("/gainianrenli/*",controller.getImg)
178   - router.get("/claim_icons/*",controller.getImg)
179   -
180   - app.use("/", router);
181   -
182   - app.use("/index", router2);
  5 + var app = this;
  6 + var router = express.Router();
  7 + var router2 = express.Router();
  8 + var controller = IoC.create('controllers/auth');
  9 + if (settings.prefix.length > 0) {
  10 + router.get(
  11 + '/',
  12 + controller.index
  13 + );
  14 + router.get(
  15 + '/signOut',
  16 + controller.signOut
  17 + );
  18 + }
  19 +
  20 + router2.get(
  21 + '/',
  22 + controller.indexPrefix
  23 + );
  24 +
  25 + router.get(
  26 + '/productDes',
  27 + controller.productDes
  28 + );
  29 +
  30 + router.get(
  31 + '/register',
  32 + controller.register
  33 + );
  34 +
  35 + router.get(
  36 + '/mobileRegister',
  37 + controller.mobileRegister
  38 + );
  39 +
  40 + router.get(
  41 + '/mobileRegisterSuccess',
  42 + controller.mobileRegisterSuccess
  43 + );
  44 +
  45 + router.get(
  46 + '/signIn',
  47 + controller.signIn
  48 + );
  49 +
  50 + router.post(
  51 + '/doLogin',
  52 + controller.doLogin
  53 + );
  54 +
  55 + router.get(
  56 + '/refreshToken',
  57 + controller.refreshToken
  58 + );
  59 +
  60 +
  61 + router2.get(
  62 + '/signOut',
  63 + controller.signOut
  64 + );
  65 +
  66 + router.post(
  67 + '/smsCodes',
  68 + controller.smsCodes
  69 + );
  70 +
  71 + router.post(
  72 + '/tenants',
  73 + controller.tenants
  74 + );
  75 +
  76 + router.post(
  77 + '/resetPass',
  78 + policies.ensureLoggedOut(),
  79 + controller.resetPass
  80 + );
  81 +
  82 + router.post(
  83 + '/updatePassword',
  84 + policies.ensureLoggedOut(),
  85 + controller.updatePassword
  86 + );
  87 +
  88 +
  89 + router.post(
  90 + '/loadUserInfo',
  91 + policies.ensureLoggedOut(),
  92 + controller.loadUserInfo
  93 + );
  94 +
  95 + router.post(
  96 + '/getUploaderToken',
  97 + policies.ensureLoggedOut(),
  98 + controller.getUploaderToken
  99 + );
  100 +
  101 + router.post(
  102 + '/delOSSObject',
  103 + policies.ensureLoggedOut(),
  104 + controller.delOSSObject
  105 + );
  106 +
  107 + router.post(
  108 + '/smsVerification',
  109 + controller.smsVerification
  110 + )
  111 +
  112 + router.post(
  113 + '/getObjectTokenByID',
  114 + controller.getObjectTokenByID
  115 + )
  116 +
  117 + // router.get(
  118 + // '/healthMonitor',
  119 + // controller.healthMonitor
  120 + // )
  121 +
  122 + // router.head(
  123 + // '/healthMonitor',
  124 + // controller.healthMonitor
  125 + // )
  126 +
  127 + router.post(
  128 + '/getUserRoles',
  129 + policies.ensureLoggedOut(),
  130 + controller.getUserRoles
  131 + );
  132 +
  133 + router.post(
  134 + '/getRoles',
  135 + policies.ensureLoggedOut(),
  136 + controller.getRoles
  137 + );
  138 +
  139 + router.post(
  140 + '/updateUserRoles',
  141 + policies.ensureLoggedOut(),
  142 + controller.updateUserRoles
  143 + );
  144 +
  145 + router.post(
  146 + '/getTenant',
  147 + policies.ensureLoggedOut(),
  148 + controller.getTenant
  149 + );
  150 +
  151 + router.post(
  152 + '/updateTenant',
  153 + policies.ensureLoggedOut(),
  154 + controller.updateTenant
  155 + );
  156 +
  157 + router.get(
  158 + '/offer/:requestId',
  159 + controller.offer
  160 + );
  161 +
  162 + router.post(
  163 + '/onboardStatus',
  164 + policies.ensureLoggedOut(),
  165 + controller.onboardStatus
  166 + );
  167 +
  168 + router.get(
  169 + '/downloadApp',
  170 + controller.dowloadApp
  171 + );
  172 +
  173 + router.get(
  174 + '/info/policy',
  175 + controller.softwareLicense
  176 + );
  177 +
  178 + router.get('/payRoll', function (req, res, next) {
  179 + res.send(payRoll);
  180 + });
  181 +
  182 + router.get(
  183 + '/recharge',
  184 + controller.recharge
  185 + );
  186 +
  187 + router.post(
  188 + '/changePassForRegister',
  189 + controller.changePassForRegister
  190 + );
  191 +
  192 + router.post(
  193 + '/changeTenant',
  194 + policies.ensureLoggedOut(),
  195 + controller.changeTenant
  196 + );
  197 +
  198 + router.post(
  199 + '/hr/sendRejectOffer',
  200 + controller.sendRejectOffer
  201 + );
  202 +
  203 + router.post(
  204 + '/hr/acceptOffer',
  205 + controller.acceptOffer
  206 + );
  207 +
  208 + router.post(
  209 + '/imTokens',
  210 + policies.ensureLoggedOut(),
  211 + controller.imTokens
  212 + );
  213 +
  214 + router.post(
  215 + '/listChannels',
  216 + policies.ensureLoggedOut(),
  217 + controller.listChannels
  218 + );
  219 +
  220 + router.post(
  221 + '/getTastLink',
  222 + policies.ensureLoggedOut(),
  223 + controller.getTastLink
  224 + );
  225 +
  226 + router.get(
  227 + '/filemeta',
  228 + policies.ensureLoggedOut(),
  229 + controller.filemeta
  230 + );
  231 +
  232 + router.get(
  233 + '/getCustomerQrcode',
  234 + policies.ensureLoggedOut(),
  235 + controller.getCustomerQrcode
  236 + );
  237 +
  238 + router.get(
  239 + '/getPositionQrcode',
  240 + policies.ensureLoggedOut(),
  241 + controller.getPositionQrcode
  242 + );
  243 + router.get( //微店模板路由
  244 + '/minishop/:id',
  245 + controller.weidianTempLate
  246 + );
  247 +
  248 + router.get(
  249 + '/wso-workai',
  250 + controller.workaiSecurityOAuth
  251 + );
  252 +
  253 + router.get(
  254 + '/socialwork/freedom-jobs/emps/:id/:verification',
  255 + controller.freedomJobsEmp
  256 + );
  257 +
  258 + router.get(
  259 + '/socialwork/freedom-jobs/emps/:id',
  260 + controller.freedomJobsEmp
  261 + );
  262 +
  263 + router.get(
  264 + '/getShortToken',
  265 + controller.getShortToken
  266 + );
  267 +
  268 + router.post(
  269 + '/loadYxlyToken',
  270 + policies.ensureLoggedOut(),
  271 + controller.loadYxlyToken
  272 + );
  273 +
  274 + router.get(
  275 + '/redirectContract',
  276 + controller.redirectContract
  277 + )
  278 +
  279 + settings.prefix.length > 1 ?
  280 + app.use(settings.prefix.substring(0, settings.prefix.length - 1), router) :
  281 + app.use('/', router);
  282 +
  283 +
  284 + app.use('/', router2);
183 285 };
184 286
185   -exports["@require"] = ["$container", "policies", "igloo/settings"];
186   -exports["@singleton"] = true;
  287 +exports['@require'] = ['$container', 'policies', 'igloo/settings'];
  288 +exports['@singleton'] = true;
... ...
  1 +/*
  2 + * @Descripttion:
  3 + * @version: 0.0.0
  4 + * @Author: genglw
  5 + * @Date: 2022-01-21 15:31:14
  6 + * @LastEditors: genglw
  7 + * @LastEditTime: 2022-02-10 20:46:00
  8 + */
1 9
2 10 // app - routes
3 11
... ... @@ -25,6 +33,12 @@ exports = module.exports = function(IoC, settings) {
25 33 //robot
26 34 app.phase(bootable.di.routes('./routes/robot.js'));
27 35
  36 + //excellent
  37 + app.phase(bootable.di.routes('./routes/excellent.js'));
  38 +
  39 + app.phase(bootable.di.routes('./routes/config.js'));
  40 +
  41 +
28 42 // error handler (always keep this last)
29 43 app.phase(function() {
30 44 var errorHandler = IoC.create('igloo/error-handler');
... ...
  1 +var express = require('express');
  2 +var payRoll = require('../json/payRoll.json');
  3 +
  4 +exports = module.exports = function (IoC, policies, settings) {
  5 + var app = this;
  6 + var router = express.Router();
  7 + var controller = IoC.create('controllers/config');
  8 + router.get(
  9 + '/getHost',
  10 + controller.getHost
  11 + );
  12 + app.use(settings.prefix + 'config', router);
  13 +
  14 +}
  15 +
  16 +exports['@require'] = ['$container', 'policies', 'igloo/settings'];
  17 +exports['@singleton'] = true;
\ No newline at end of file
... ...
  1 +/*
  2 + * @Descripttion:
  3 + * @version: 0.0.0
  4 + * @Author: genglw
  5 + * @Date: 2022-01-21 15:31:14
  6 + * @LastEditors: genglw
  7 + * @LastEditTime: 2022-02-10 20:34:55
  8 + */
  9 +var express = require('express');
  10 +
  11 +exports = module.exports = function (IoC, policies, settings) {
  12 + var app = this;
  13 + var router = express.Router();
  14 + var controller = IoC.create('controllers/excellent');
  15 +
  16 + router.get(
  17 + '/*',
  18 + policies.ensureLoggedOut(),
  19 + controller.get
  20 + );
  21 +
  22 + router.post(
  23 + '/*',
  24 + policies.ensureLoggedOut(),
  25 + controller.post
  26 + );
  27 +
  28 + router.put(
  29 + '/*',
  30 + policies.ensureLoggedOut(),
  31 + controller.put
  32 + );
  33 +
  34 + router.patch(
  35 + '/*',
  36 + policies.ensureLoggedOut(),
  37 + controller.patch
  38 + );
  39 +
  40 + router.head(
  41 + '/*',
  42 + policies.ensureLoggedOut(),
  43 + controller.head
  44 + );
  45 +
  46 + router.delete(
  47 + '/*',
  48 + policies.ensureLoggedOut(),
  49 + controller.delete
  50 + );
  51 +
  52 + app.use(settings.prefix + 'excellent', router);
  53 +
  54 +};
  55 +
  56 +exports['@require'] = ['$container', 'policies', 'igloo/settings'];
  57 +exports['@singleton'] = true;
... ...
  1 +/*
  2 + * @Descripttion:
  3 + * @version: 0.0.0
  4 + * @Author: genglw
  5 + * @Date: 2022-01-21 15:31:14
  6 + * @LastEditors: genglw
  7 + * @LastEditTime: 2022-02-12 16:57:36
  8 + */
1 9 var async = require('async');
2 10
3 11 exports = module.exports = function (logger, rest) {
... ... @@ -6,13 +14,14 @@ exports = module.exports = function (logger, rest) {
6 14 var user = {
7 15 refreshToken: "",
8 16 token: "",
  17 + yxly_token: "",
9 18 service_catalog: {},
10 19 user_info: {},
11 20 err: null
12 21 };
13 22 async.waterfall([
14 23 function (callback) {//get temp token
15   - logger.info("get temp token");
  24 + logger.debug("get temp token");
16 25 var tempParams = {
17 26 "grant_type": req.body.grant_type,
18 27 "username": req.body.username,
... ... @@ -23,14 +32,15 @@ exports = module.exports = function (logger, rest) {
23 32 if (req.body.smscode)
24 33 tempParams['sms_code'] = req.body.smscode;
25 34
26   - logger.info("url:" + rest.getBaseUrl('auth/tokens', 'uaa'));
27   - logger.info("params", tempParams);
28   - console.log(tempParams)
29   - rest.restful.postJson(rest.getBaseUrl('auth/tokens', 'uaa'), tempParams, {
30   - headers: { 'Content-Type': 'application/json', "Accept": "application/json" }
  35 + logger.debug("url:" + rest.getBaseUrl('auth/tokens', 'uaa'));
  36 + logger.debug("params", tempParams);
  37 + var url = rest.getBaseUrl('auth/tokens', 'uaa');
  38 + var headers = rest.addHeaders({ 'Content-Type': 'application/json', "Accept": "application/json" },req);
  39 + rest.restful.postJson(url, tempParams, {
  40 + headers: headers
31 41 })
32 42 .on('success', function (data, response) {
33   - logger.info("tokens-success", data);
  43 + logger.debug("tokens-success", data);
34 44 if (data.access_token) {
35 45 user.token = data.access_token;
36 46 user.refreshToken = data.refresh_token;
... ... @@ -48,17 +58,19 @@ exports = module.exports = function (logger, rest) {
48 58 user.err = data.message;
49 59 callback(err, data);
50 60 }
  61 + rest.proxyLog(data,response,req,{headers,'data':tempParams,url})
51 62 }).on('error', function (err, response) {
52   - // logger.info("tokens-error",data);
  63 + // logger.debug("tokens-error",data);
53 64 var err = new Error('name or pass err');
  65 + rest.proxyLog(err,response,req,{headers,'data':tempParams,url})
54 66 callback(err, response);
55 67 }).on('fail', function (data, response) {
56   - logger.info("tokens-fail", data);
  68 + logger.debug("tokens-fail", data);
57 69 var err = new Error('name or pass err');
  70 + rest.proxyLog(data,response,req,{headers,'data':tempParams,url})
58 71 callback(data, response);
59 72 });
60 73 }], function (err, result) {
61   - logger.info(err);
62 74 if (err) {
63 75 return done(null, false, err);
64 76 } else {
... ... @@ -68,7 +80,7 @@ exports = module.exports = function (logger, rest) {
68 80 }
69 81
70 82 function serializeUser(user, done) {
71   - logger.info("passport.serializeUser");
  83 + logger.debug("passport.serializeUser");
72 84 done(null, user);
73 85 }
74 86
... ... @@ -79,7 +91,7 @@ exports = module.exports = function (logger, rest) {
79 91 info: {},
80 92 err: null
81 93 };
82   - console.info("passport.deserializeUser");
  94 + logger.debug("passport.deserializeUser");
83 95 done(null, user);
84 96 }
85 97
... ...
  1 +/*
  2 + * @Descripttion:
  3 + * @version: 0.0.0
  4 + * @Author: genglw
  5 + * @Date: 2022-02-12 20:34:11
  6 + * @LastEditors: genglw
  7 + * @LastEditTime: 2022-02-15 11:09:45
  8 + */
  9 +var redis = require('redis');
  10 +
  11 +exports = module.exports = function (logger, settings) {
  12 +
  13 + async function set(key, value) {
  14 + const client = redis.createClient({
  15 + url: `redis://${settings.redis.host}:${settings.redis.port}`,
  16 + password: settings.redis.pass,
  17 + });
  18 +
  19 + client.on('error', (err) => logger.info('Redis Client Error', err));
  20 +
  21 + await client.connect();
  22 + await client.set(key, value);
  23 + await client.quit();
  24 + }
  25 +
  26 + async function get(key) {
  27 + const client = redis.createClient({
  28 + url: `redis://${settings.redis.host}:${settings.redis.port}`,
  29 + password: settings.redis.pass,
  30 + });
  31 +
  32 + client.on('error', (err) => logger.info('Redis Client Error', err));
  33 +
  34 + await client.connect();
  35 + const value = await client.get(key);
  36 + await client.quit();
  37 +
  38 + return value;
  39 + }
  40 +
  41 + return {
  42 + set: set,
  43 + get: get,
  44 + };
  45 +};
  46 +
  47 +
  48 +
  49 +
  50 +exports['@singleton'] = true;
  51 +exports['@require'] = ['igloo/logger', 'igloo/settings'];
... ...
  1 +var moment = require('moment');
  2 +
  3 +
  4 +exports = module.exports = function (logger,settings) {
  5 +
  6 +
  7 + return function (req, res, next) {
  8 + var requestEnd = res.end
  9 + , requestedUrl = req.originalUrl
  10 + , startTime = new Date();
  11 + var level = 'error';
  12 + if(settings&&settings.output&&settings.output.level){
  13 + level=settings.output.level;
  14 + }
  15 +
  16 + // Proxy the real end function
  17 + res.end = function (chunk, encoding) {
  18 +
  19 + var data = {
  20 + 'date': moment(startTime).format(),
  21 + 'statusCode': res.statusCode,
  22 + 'method': req.method,
  23 + 'responseTime': (new Date() - startTime),
  24 + 'deviceId':req.headers['device-id']||'',
  25 + 'xRequestId':req.headers['x-request-id']||'',
  26 + 'url': requestedUrl,
  27 + 'ip': req.headers['client-ip'] || req.ip || req.connection.remoteAddress,
  28 + 'userAgent': req.headers['user-agent']
  29 + };
  30 +
  31 + // Do the work expected
  32 + res.end = requestEnd;
  33 + res.end(chunk, encoding);
  34 +
  35 + if(res.statusCode>=400){//响应错误
  36 + logger.error(data);
  37 + }else if('debug'==level){
  38 + logger.debug(data);
  39 + }else{
  40 + logger.info(data);
  41 + }
  42 + };
  43 +
  44 + next();
  45 + };
  46 +};
\ No newline at end of file
... ...
... ... @@ -3,8 +3,27 @@ var async = require('async');
3 3 var uuid = require('uuid/v4');
4 4 var restq = require('restler-q');
5 5 var http = require("http");
6   -var qs = require("qs");
  6 +var moment = require('moment');
7 7
  8 +function addRequestIdHeaders(headers, req) {
  9 + if (req.headers['device-id']) {
  10 + headers['Device-Id'] = req.headers['device-id']
  11 + }
  12 + if (req.ip) {
  13 + headers['Client-Ip'] = req.ip
  14 + }
  15 + if (req.headers['x-request-id']) {
  16 + headers['X-Request-Id'] = req.headers['x-request-id']
  17 + }
  18 + if (req.headers['user-agent']) {
  19 + headers['User-Agent'] = req.headers['user-agent']
  20 + }
  21 + headers['Accept'] = 'application/json';
  22 + headers['Content-Type'] = 'application/json';
  23 + headers['Proxy-User-Agent'] = 'Request for Express';
  24 +
  25 + return headers;
  26 +}
8 27
9 28 function RestHelper(logger, settings) {
10 29 this.logger = logger;
... ... @@ -18,7 +37,7 @@ RestHelper.prototype = {
18 37 return base;
19 38 },
20 39 preLog: function (tempUrl, tempParams) {
21   -
  40 +
22 41 },
23 42 checkJson: function (type) {
24 43 if (type === 'patchJson' || type === 'putJson' || type === 'postJson' || type === 'json') {
... ... @@ -105,11 +124,11 @@ RestHelper.prototype = {
105 124 tempHead['Client-Ip'] = ip;
106 125 var tempParams = {
107 126 data: tempData,
108   - headers: tempHead,
  127 + headers: addRequestIdHeaders(tempHead, req),
109 128 timeout: 1000 * 60 * 10
110 129 };
111 130 context.options.headers = tempHead;
112   - // self.logger.info('req.session.passport.user.token:',req.session.passport.user.token);
  131 + // self.logger.debug('req.session.passport.user.token:',req.session.passport.user.token);
113 132 if (type === 'json') {
114 133 tempParams = context.params || {};
115 134 tempOptions = context.options || {};
... ... @@ -150,14 +169,14 @@ RestHelper.prototype = {
150 169 return uuid();
151 170 },
152 171 error: function (err, respones, req, res) {
153   - this.logger.info('this have a err! Maby connection aborted,parse,encoding,decoding failed or some other unhandled errors');
154   - this.logger.error(err);
  172 + this.logger.debug('this have a err! Maby connection aborted,parse,encoding,decoding failed or some other unhandled errors');
  173 + this.logger.debug(err);
155 174
156 175 },
157 176 fail: function (data, respones, req, res) {
158   - this.logger.info('request is fail!');
159   - this.logger.info(respones.statusCode);
160   - this.logger.error(data);
  177 + this.logger.debug('request is fail!');
  178 + this.logger.debug(respones.statusCode);
  179 + this.logger.debug(data);
161 180 res.resultMsg.push(data);
162 181 }
163 182 };
... ... @@ -166,25 +185,41 @@ RestHelper.prototype = {
166 185
167 186 exports = module.exports = function (logger, settings) {
168 187 var helper = new RestHelper(logger, settings);
  188 +
  189 +
169 190 function _getUrl(url, baseUrl) {
170 191 return helper.getUrl(url, baseUrl);
171 192 }
172 193
173   - function _preLog(tempUrl, tempParams) {
174   - helper.preLog(tempUrl, tempParams);
175   - }
176   -
177   - function _error(err, respones) {
178   - logger.info('this have a err! Maby connection aborted,parse,encoding,decoding failed or some other unhandled errors');
179   - logger.error(err);
180   - return
181   - }
  194 + function _proxyLog(result, response, req, param) {
  195 + var url = param.url || param.path || '';
  196 + var params = param.data || '';
  197 + var headers = param.headers || {};
  198 + var method = req.method;
  199 + var host = param.host || '';
  200 + var port = param.port || '';
  201 + var statusCode = response.statusCode || '';
  202 + var user = {};
  203 + if (param.data && param.data.data) {
  204 + params = param.data.data
  205 + }
  206 + if (!param.headers && param.data && param.data.headers) {
  207 + headers = param.data.headers;
  208 + }
182 209
183   - function _fail(data, respones) {
184   - logger.info('request is fail!');
185   - logger.info(respones.statusCode);
186   - logger.info(data);
187   - return
  210 + if (req && req.session && req.session.passport && req.session.passport.user && req.session.passport.user.user_info && req.session.passport.user.user_info.user) {
  211 + user.name = req.session.passport.user.user_info.user.name
  212 + user.mobile = req.session.passport.user.user_info.user.mobile
  213 + }
  214 + if (statusCode >= 400) {
  215 + logger.error({ method, url, host, port, statusCode, params, ...headers, ...user, result, timestamp: moment().format() })
  216 + } else if (settings && settings.output && settings.output.level && 'debug' == settings.output.level) {
  217 + logger.debug({ method, url, host, port, statusCode, params, ...headers, ...user, result, timestamp: moment().format() })
  218 + } else {
  219 + var tempLogObj = { method, url, host, port, statusCode, params, ...headers, ...user, timestamp: moment().format() };
  220 + delete tempLogObj['Authorization'];
  221 + logger.info(tempLogObj)
  222 + }
188 223 }
189 224
190 225 function restClient(options, success, fail) {
... ... @@ -197,10 +232,12 @@ exports = module.exports = function (logger, settings) {
197 232 });
198 233 res.on('end', function () {
199 234 success(_data, res);
  235 + _proxyLog(_data, res, options.req, { ...options, data: postData })
200 236 });
201 237 });
202 238 httpRequest.on('error', function (e) {
203 239 fail(e);
  240 + _proxyLog(e, {}, options.req, { ...options, data: postData })
204 241 });
205 242 httpRequest.write(postData);
206 243 httpRequest.end();
... ... @@ -214,9 +251,12 @@ exports = module.exports = function (logger, settings) {
214 251 if (response.statusCode === 401) {
215 252 helper.addTask('get', param, data, response);
216 253 } else {
217   - _fail(data, response);
218 254 context.callback(data, response);
219 255 }
  256 + _proxyLog(data, response, context.req, param)
  257 + })
  258 + .on('complete', function (result, response) {
  259 + _proxyLog(result, response, context.req, param)
220 260 });
221 261 }
222 262
... ... @@ -228,9 +268,12 @@ exports = module.exports = function (logger, settings) {
228 268 if (response.statusCode === 401) {
229 269 helper.addTask('post', param, data, response);
230 270 } else {
231   - _fail(data, response);
232 271 context.callback(data, response);
233 272 }
  273 + _proxyLog(data, response, context.req, param)
  274 + })
  275 + .on('complete', function (result, response) {
  276 + _proxyLog(result, response, context.req, param)
234 277 });
235 278 }
236 279 function put(context) {
... ... @@ -241,9 +284,12 @@ exports = module.exports = function (logger, settings) {
241 284 if (response.statusCode === 401) {
242 285 helper.addTask('put', param, data, response);
243 286 } else {
244   - _fail(data, response);
245 287 context.callback(data, response);
246 288 }
  289 + _proxyLog(data, response, context.req, param)
  290 + })
  291 + .on('complete', function (result, response) {
  292 + _proxyLog(result, response, context.req, param)
247 293 });
248 294 }
249 295 function del(context) {
... ... @@ -256,9 +302,12 @@ exports = module.exports = function (logger, settings) {
256 302 if (response.statusCode === 401) {
257 303 helper.addTask('del', param, data, response);
258 304 } else {
259   - _fail(data, response);
260 305 context.callback(data, response);
261 306 }
  307 + _proxyLog(data, response, context.req, param)
  308 + })
  309 + .on('complete', function (result, response) {
  310 + _proxyLog(result, response, context.req, param)
262 311 });
263 312 }
264 313
... ... @@ -270,9 +319,12 @@ exports = module.exports = function (logger, settings) {
270 319 if (response.statusCode === 401) {
271 320 helper.addTask('patch', param, data, response);
272 321 } else {
273   - _fail(data, response);
274 322 context.callback(data, response);
275 323 }
  324 + _proxyLog(data, response, context.req, param)
  325 + })
  326 + .on('complete', function (result, response) {
  327 + _proxyLog(result, response, context.req, param)
276 328 });
277 329 }
278 330
... ... @@ -284,9 +336,12 @@ exports = module.exports = function (logger, settings) {
284 336 if (response.statusCode === 401) {
285 337 helper.addTask('json', param, data, response);
286 338 } else {
287   - _fail(data, response);
288 339 context.callback(data, response);
289 340 }
  341 + _proxyLog(data, response, context.req, param)
  342 + })
  343 + .on('complete', function (result, response) {
  344 + _proxyLog(result, response, context.req, param)
290 345 });
291 346 }
292 347 function postJson(context) {
... ... @@ -297,9 +352,12 @@ exports = module.exports = function (logger, settings) {
297 352 if (response.statusCode === 401) {
298 353 helper.addTask('postJson', param, data, response);
299 354 } else {
300   - _fail(data, response);
301 355 context.callback(data, response);
302 356 }
  357 + _proxyLog(data, response, context.req, param)
  358 + })
  359 + .on('complete', function (result, response) {
  360 + _proxyLog(result, response, context.req, param)
303 361 });
304 362 }
305 363
... ... @@ -308,8 +366,11 @@ exports = module.exports = function (logger, settings) {
308 366 rest.postJson(param.url, param.data, param.options)
309 367 .on('success', context.callback)
310 368 .on('fail', function (data, response) {
311   - _fail(data, response);
312 369 context.callback(data, response);
  370 + _proxyLog(data, response, context.req, param)
  371 + })
  372 + .on('complete', function (result, response) {
  373 + _proxyLog(result, response, context.req, param)
313 374 });
314 375 }
315 376
... ... @@ -321,9 +382,12 @@ exports = module.exports = function (logger, settings) {
321 382 if (response.statusCode === 401) {
322 383 helper.addTask('putJson', param, data, response);
323 384 } else {
324   - _fail(data, response);
325 385 context.callback(data, response);
326 386 }
  387 + _proxyLog(data, response, context.req, param)
  388 + })
  389 + .on('complete', function (result, response) {
  390 + _proxyLog(result, response, context.req, param)
327 391 });
328 392 }
329 393
... ... @@ -335,9 +399,12 @@ exports = module.exports = function (logger, settings) {
335 399 if (response.statusCode === 401) {
336 400 helper.addTask('patchJson', param, data, response);
337 401 } else {
338   - _fail(data, response);
339 402 context.callback(data, response);
340 403 }
  404 + _proxyLog(data, response, context.req, param)
  405 + })
  406 + .on('complete', function (result, response) {
  407 + _proxyLog(result, response, context.req, param)
341 408 });
342 409 }
343 410
... ... @@ -352,7 +419,7 @@ exports = module.exports = function (logger, settings) {
352 419 if (!context.excludeToken) {
353 420 tempOptions.accessToken = req.session.passport.user.token;
354 421 }
355   - _preLog(_getUrl(context.url, context.baseUrl), tempParams);
  422 +
356 423 rest[context.method](_getUrl(context.url, context.baseUrl), tempParams, tempOptions)
357 424 .on('success', function (data, response) {
358 425 callback(null, data);
... ... @@ -366,6 +433,10 @@ exports = module.exports = function (logger, settings) {
366 433 } else {
367 434 callback(null, data);
368 435 }
  436 + _proxyLog(data, response, context.req, param)
  437 + })
  438 + .on('complete', function (result, response) {
  439 + _proxyLog(result, response, context.req, param)
369 440 });
370 441 }
371 442 };
... ... @@ -392,6 +463,10 @@ exports = module.exports = function (logger, settings) {
392 463 });
393 464 }
394 465
  466 + function addHeaders(headers, req) {
  467 + return addRequestIdHeaders(headers, req);
  468 + }
  469 +
395 470 return {
396 471 get: get,
397 472 post: post,
... ... @@ -409,7 +484,9 @@ exports = module.exports = function (logger, settings) {
409 484 map: asyncMap,
410 485 getFormFields: getFormFields,
411 486 initOssToken: initOssToken,
412   - restClient: restClient
  487 + restClient: restClient,
  488 + addHeaders: addHeaders,
  489 + proxyLog: _proxyLog,
413 490 };
414 491 };
415 492
... ...
注册登录 后发表评论