Browse Source

直播后台服务

liuyu 4 years ago
parent
commit
b324a34c63
84 changed files with 27877 additions and 0 deletions
  1. 29 0
      .autod.conf.js
  2. 1 0
      .eslintignore
  3. 3 0
      .eslintrc
  4. 12 0
      .travis.yml
  5. 3 0
      .vscode/settings.json
  6. 37 0
      app/controller/.chat.js
  7. 34 0
      app/controller/.contact.js
  8. 37 0
      app/controller/.lookrecord.js
  9. 37 0
      app/controller/.lookuser.js
  10. 36 0
      app/controller/.news.js
  11. 46 0
      app/controller/.question.js
  12. 42 0
      app/controller/.role.js
  13. 48 0
      app/controller/.room.js
  14. 85 0
      app/controller/.roomuser.js
  15. 45 0
      app/controller/.uploadquestion.js
  16. 61 0
      app/controller/.user.js
  17. 17 0
      app/controller/chat.js
  18. 17 0
      app/controller/contact.js
  19. 12 0
      app/controller/home.js
  20. 40 0
      app/controller/login.js
  21. 18 0
      app/controller/lookrecord.js
  22. 48 0
      app/controller/lookuser.js
  23. 17 0
      app/controller/news.js
  24. 19 0
      app/controller/question.js
  25. 53 0
      app/controller/questionnaire.js
  26. 18 0
      app/controller/role.js
  27. 223 0
      app/controller/room.js
  28. 22 0
      app/controller/roomuser.js
  29. 29 0
      app/controller/uploadquestion.js
  30. 66 0
      app/controller/user.js
  31. 160 0
      app/controller/weixin.js
  32. 67 0
      app/controller/wxpay.js
  33. 21 0
      app/model/chat.js
  34. 18 0
      app/model/contact.js
  35. 21 0
      app/model/lookrecord.js
  36. 28 0
      app/model/lookuser.js
  37. 21 0
      app/model/news.js
  38. 26 0
      app/model/question.js
  39. 38 0
      app/model/questionnaire.js
  40. 21 0
      app/model/role.js
  41. 46 0
      app/model/room.js
  42. 34 0
      app/model/roomuser.js
  43. 29 0
      app/model/uploadquestion.js
  44. 26 0
      app/model/user.js
  45. 99 0
      app/router.js
  46. 40 0
      app/service/chat.js
  47. 18 0
      app/service/contact.js
  48. 138 0
      app/service/login.js
  49. 24 0
      app/service/lookrecord.js
  50. 151 0
      app/service/lookuser.js
  51. 18 0
      app/service/news.js
  52. 18 0
      app/service/question.js
  53. 76 0
      app/service/questionnaire.js
  54. 17 0
      app/service/role.js
  55. 210 0
      app/service/room.js
  56. 133 0
      app/service/roomuser.js
  57. 66 0
      app/service/uploadquestion.js
  58. 143 0
      app/service/user.js
  59. 227 0
      app/service/weixin.js
  60. 101 0
      app/service/wxpay.js
  61. 14 0
      appveyor.yml
  62. 115 0
      config/config.default.js
  63. 35 0
      config/config.local.js
  64. 34 0
      config/config.prod.js
  65. 7 0
      config/config.secret.js
  66. 16 0
      config/plugin.js
  67. 17 0
      ecosystem.config.js
  68. 5 0
      jsconfig.json
  69. 249 0
      logs/service-onlive/common-error.log
  70. 1155 0
      logs/service-onlive/egg-agent.log
  71. 600 0
      logs/service-onlive/egg-schedule.log
  72. 3673 0
      logs/service-onlive/egg-web.log
  73. 667 0
      logs/service-onlive/service-onlive-web.log
  74. 13001 0
      package-lock.json
  75. 63 0
      package.json
  76. 598 0
      run/agent_config.json
  77. 390 0
      run/agent_config_meta.json
  78. 474 0
      run/agent_timing_9896.json
  79. 662 0
      run/application_config.json
  80. 390 0
      run/application_config_meta.json
  81. 682 0
      run/application_timing_2396.json
  82. 1811 0
      run/router.json
  83. 9 0
      server.js
  84. 20 0
      test/app/controller/home.test.js

+ 29 - 0
.autod.conf.js

@@ -0,0 +1,29 @@
+'use strict';
+
+module.exports = {
+  write: true,
+  prefix: '^',
+  plugin: 'autod-egg',
+  test: [
+    'test',
+    'benchmark',
+  ],
+  dep: [
+    'egg',
+    'egg-scripts',
+  ],
+  devdep: [
+    'egg-ci',
+    'egg-bin',
+    'egg-mock',
+    'autod',
+    'autod-egg',
+    'eslint',
+    'eslint-config-egg',
+  ],
+  exclude: [
+    './test/fixtures',
+    './dist',
+  ],
+};
+

+ 1 - 0
.eslintignore

@@ -0,0 +1 @@
+coverage

+ 3 - 0
.eslintrc

@@ -0,0 +1,3 @@
+{
+  "extends": "eslint-config-egg"
+}

+ 12 - 0
.travis.yml

@@ -0,0 +1,12 @@
+
+language: node_js
+node_js:
+  - '10'
+before_install:
+  - npm i npminstall -g
+install:
+  - npminstall
+script:
+  - npm run ci
+after_script:
+  - npminstall codecov && codecov

+ 3 - 0
.vscode/settings.json

@@ -0,0 +1,3 @@
+{
+    "eggHelper.serverPort": 35684
+}

+ 37 - 0
app/controller/.chat.js

@@ -0,0 +1,37 @@
+module.exports = {
+  create: {
+    requestBody: ["roomid", "type", "!content", "!sendid","sendname","sendtime"],
+  },
+  destroy: {
+    params: ["!id"],
+    service: "delete",
+  },
+  update: {
+    params: ["!id"],
+    requestBody: ["roomid", "type", "content", "sendid","sendname","sendtime"],
+  },
+  show: {
+    parameters: {
+      params: ["!id"],
+    },
+    service: "fetch",
+  },
+  index: {
+    parameters: {
+      query: {
+        roomid: "roomid",
+        type: "type",
+        content: "content",
+        sendid: "sendid",
+        sendid: "sendname",
+      },
+    },
+    service: "query",
+    options: {
+      query: ["skip", "limit"],
+      sort: ["meta.createdAt"],
+      asc: true,
+      count: true,
+    },
+  },
+};

+ 34 - 0
app/controller/.contact.js

@@ -0,0 +1,34 @@
+module.exports = {
+  create: {
+    requestBody: ["title", "content", "publish_time"],
+  },
+  destroy: {
+    params: ["!id"],
+    service: "delete",
+  },
+  update: {
+    params: ["!id"],
+    requestBody: ["title", "content", "publish_time"],
+  },
+  show: {
+    parameters: {
+      params: ["!id"],
+    },
+    service: "fetch",
+  },
+  index: {
+    parameters: {
+      query: {
+        title: "title",
+        publish_time: "publish_time",
+      },
+    },
+    service: "query",
+    options: {
+      query: ["skip", "limit"],
+      sort: ["meta.createdAt"],
+      asc: true,
+      count: true,
+    },
+  },
+};

+ 37 - 0
app/controller/.lookrecord.js

@@ -0,0 +1,37 @@
+module.exports = {
+  create: {
+    requestBody: ["roomid", "roomname", "userid","username","createtime","type"],
+  },
+  destroy: {
+    params: ["!id"],
+    service: "delete",
+  },
+  update: {
+    params: ["!id"],
+    requestBody: ["roomid", "roomname", "userid","username","createtime","type"],
+  },
+  show: {
+    parameters: {
+      params: ["!id"],
+    },
+    service: "fetch",
+  },
+  index: {
+    parameters: {
+      query: {
+        roomid: "roomid",
+        roomname: "roomname",
+        userid: "userid",
+        username: "username",
+        type: "type",
+      },
+    },
+    service: "query",
+    options: {
+      query: ["skip", "limit"],
+      sort: ["meta.createdAt"],
+      desc: true,
+      count: true,
+    },
+  },
+};

+ 37 - 0
app/controller/.lookuser.js

@@ -0,0 +1,37 @@
+module.exports = {
+  create: {
+    requestBody: ["roomid", "roomname", "userid","username","phone","switchrole","isxf","createtime","hosname","deptname","level","major","isonline"],
+  },
+  destroy: {
+    params: ["!id"],
+    service: "delete",
+  },
+  update: {
+    params: ["!id"],
+    requestBody: ["roomid", "roomname", "userid","username","phone","switchrole","isxf","createtime","hosname","deptname","level","major","isonline"],
+  },
+  show: {
+    parameters: {
+      params: ["!id"],
+    },
+    service: "fetch",
+  },
+  index: {
+    parameters: {
+      query: {
+        roomid: "roomid",
+        roomname: "roomname",
+        userid: "userid",
+        username: "username",
+        isonline: "isonline",
+      },
+    },
+    service: "query",
+    options: {
+      query: ["skip", "limit"],
+      sort: ["meta.createdAt"],
+      desc: true,
+      count: true,
+    },
+  },
+};

+ 36 - 0
app/controller/.news.js

@@ -0,0 +1,36 @@
+module.exports = {
+  create: {
+    requestBody: ["title", "content", "publish_time","status","filedir","type"],
+  },
+  destroy: {
+    params: ["!id"],
+    service: "delete",
+  },
+  update: {
+    params: ["!id"],
+    requestBody: ["title", "content", "publish_time","status","filedir","type"],
+  },
+  show: {
+    parameters: {
+      params: ["!id"],
+    },
+    service: "fetch",
+  },
+  index: {
+    parameters: {
+      query: {
+        title: "title",
+        publish_time: "publish_time",
+        status: "status",
+        type: "type"
+      },
+    },
+    service: "query",
+    options: {
+      query: ["skip", "limit"],
+      sort: ["publish_time"],
+      desc: true,
+      count: true,
+    },
+  },
+};

+ 46 - 0
app/controller/.question.js

@@ -0,0 +1,46 @@
+module.exports = {
+  create: {
+    requestBody: [
+      '!type',
+      '!topic',
+      'status',
+      'option'
+    ]
+  },
+  destroy: {
+    params: ['!id'],
+    service: 'delete'
+  },
+  update: {
+    params: ['!id'],
+    requestBody: [
+      'type',
+      'topic',
+      'status',
+      'option'
+    ]
+  },
+  show: {
+    parameters: {
+      params: ['!id']
+    },
+    service: 'fetch'
+  },
+  index: {
+    parameters: {
+      query: {
+        type:'type',
+        topic:'topic',
+        status :'status',
+        option :'option'
+      }
+    },
+    service: 'query',
+    options: {
+      query: ['skip', 'limit'],
+      sort: ['meta.createdAt'],
+      desc: true,
+      count: true
+    }
+  },
+};

+ 42 - 0
app/controller/.role.js

@@ -0,0 +1,42 @@
+module.exports = {
+  create: {
+    requestBody: [
+      'code',
+      '!role_name',
+      'url'
+    ]
+  },
+  destroy: {
+    params: ['!id'],
+    service: 'delete'
+  },
+  update: {
+    params: ['!id'],
+    requestBody: [
+      'code',
+      '!role_name',
+      'url'
+    ]
+  },
+  show: {
+    parameters: {
+      params: ['!id']
+    },
+    service: 'fetch'
+  },
+  index: {
+    parameters: {
+      query: {
+        role_name:'%role_name%',
+        url:'code'
+      }
+    },
+    service: 'query',
+    options: {
+      query: ['skip', 'limit'],
+      sort: ['meta.createdAt'],
+      desc: true,
+      count: true
+    }
+  },
+};

+ 48 - 0
app/controller/.room.js

@@ -0,0 +1,48 @@
+module.exports = {
+  create: {
+    requestBody: ["title","name", "type", "filedir", "url", "anchorid","username","status","content","starttime","endtime","adverts","isadvert","stream_id","ishis","file_id","queid","isque","otheid","shmaiid","zjr","switchzjr","price"],
+  },
+  destroy: {
+    params: ["!id"],
+    service: "delete",
+  },
+  update: {
+    params: ["!id"],
+    requestBody: ["title","name", "type", "filedir", "url", "anchorid","username","status","content","starttime","endtime","adverts","isadvert","stream_id","ishis","file_id","queid","isque","otheid","shmaiid","zjr","switchzjr","price"],
+  },
+  show: {
+    parameters: {
+      params: ["!id"],
+    },
+    service: "fetch",
+  },
+  index: {
+    parameters: {
+      query: {
+        name: "name",
+        type: "type",
+        title: "title",
+        filedir: "filedir",
+        url: "url",
+        status: "status",
+        anchorid: "anchorid",
+        starttime: "starttime",
+        endtime: "endtime",
+        stream_id: "stream_id",
+        ishis: "ishis",
+        queid: "queid",
+        isque: "isque",
+        shmaiid: "shmaiid",
+        switchzjr: "switchzjr",
+        price: "price"
+      },
+    },
+    service: "query",
+    options: {
+      query: ["skip", "limit"],
+      sort: ["meta.createdAt"],
+      desc: true,
+      count: true,
+    },
+  },
+};

+ 85 - 0
app/controller/.roomuser.js

@@ -0,0 +1,85 @@
+module.exports = {
+  create: {
+    requestBody: [
+      "name",
+      "!phone",
+      "openid",
+      'passwd',
+      "role",
+      "hosname",
+      "deptname",
+      "level",
+      "title",
+      "remark",
+      "age",
+      "gender",
+      "idnumber",
+      "major",
+      "isjc",
+      "isxf",
+      "address",
+      "switchrole",
+    ],
+  },
+  destroy: {
+    params: ["!id"],
+    service: "delete",
+  },
+  update: {
+    params: ["!id"],
+    requestBody: [
+      "name",
+      "phone",
+      "openid",
+      "role",
+      "hosname",
+      "deptname",
+      "level",
+      "title",
+      "remark",
+      "age",
+      "gender",
+      "idnumber",
+      "major",
+      "isjc",
+      "isxf",
+      "address",
+      "switchrole",
+    ],
+  },
+  show: {
+    parameters: {
+      params: ["!id"],
+    },
+    service: "fetch",
+  },
+  index: {
+    parameters: {
+      query: {
+        name: "name",
+        phone: "phone",
+        openid: "openid",
+        role: "role",
+        hosname: "hosname",
+        deptname: "deptname",
+        level: "level",
+        title: "title",
+        remark: "remark",
+        age:"age",
+        gender:"gender",
+        idnumber:"idnumber",
+        major:"major",
+        isjc:"isjc",
+        isxf:"isxf",
+        address:"address",
+      },
+    },
+    service: "query",
+    options: {
+      query: ["skip", "limit"],
+      sort: ["meta.createdAt"],
+      desc: true,
+      count: true,
+    },
+  },
+};

+ 45 - 0
app/controller/.uploadquestion.js

@@ -0,0 +1,45 @@
+module.exports = {
+  create: {
+    requestBody: [
+      "roomid",
+      "!userid",
+      "!questionnaireid",
+      "answers",
+    ],
+  },
+  destroy: {
+    params: ["!id"],
+    service: "delete",
+  },
+  update: {
+    params: ["!id"],
+    requestBody: [
+      "roomid",
+      "userid",
+      "questionnaireid",
+      "answers",
+    ],
+  },
+  show: {
+    parameters: {
+      params: ["!id"],
+    },
+    service: "fetch",
+  },
+  index: {
+    parameters: {
+      query: {
+        roomid: "roomid",
+        userid: "userid",
+        questionnaireid:"questionnaireid"
+      },
+    },
+    service: "query",
+    options: {
+      query: ["skip", "limit"],
+      sort: ["meta.createdAt"],
+      desc: true,
+      count: true,
+    },
+  },
+};

+ 61 - 0
app/controller/.user.js

@@ -0,0 +1,61 @@
+module.exports = {
+  create: {
+    requestBody: [
+      "name",
+      "!phone",
+      "passwd",
+      "openid",
+      "uid",
+      "role",
+      "menus",
+      "deptname",
+      "remark",
+    ],
+  },
+  destroy: {
+    params: ["!id"],
+    service: "delete",
+  },
+  update: {
+    params: ["!id"],
+    requestBody: [
+      "name",
+      "phone",
+      "passwd",
+      "openid",
+      "uid",
+      "role",
+      "menus",
+      "deptname",
+      "remark",
+    ],
+  },
+  show: {
+    parameters: {
+      params: ["!id"],
+    },
+    service: "fetch",
+  },
+  index: {
+    parameters: {
+      query: {
+        name: "name",
+        phone: "phone",
+        passwd: "passwd",
+        openid: "openid",
+        uid: "uid",
+        role: "role",
+        menus: "menus",
+        deptname: "deptname",
+        remark: "remark",
+      },
+    },
+    service: "query",
+    options: {
+      query: ["skip", "limit"],
+      sort: ["meta.createdAt"],
+      desc: true,
+      count: true,
+    },
+  },
+};

+ 17 - 0
app/controller/chat.js

@@ -0,0 +1,17 @@
+'use strict';
+
+const _ = require('lodash');
+const meta = require('./.chat.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+class ChatController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.chat;
+  }
+
+}
+
+module.exports = CrudController(ChatController, meta);

+ 17 - 0
app/controller/contact.js

@@ -0,0 +1,17 @@
+'use strict';
+
+const _ = require('lodash');
+const meta = require('./.contact.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+class ContactController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.contact;
+  }
+
+}
+
+module.exports = CrudController(ContactController, meta);

+ 12 - 0
app/controller/home.js

@@ -0,0 +1,12 @@
+'use strict';
+
+const Controller = require('egg').Controller;
+
+class HomeController extends Controller {
+  async index() {
+    const { ctx } = this;
+    ctx.body = 'hi, egg';
+  }
+}
+
+module.exports = HomeController;

+ 40 - 0
app/controller/login.js

@@ -0,0 +1,40 @@
+'use strict';
+
+const _ = require('lodash');
+const Controller = require('egg').Controller;
+
+// 登录管理
+class LoginController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.login;
+  }
+
+  async login() {
+    const res = await this.service.login(this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
+  async token() {
+    const res = await this.service.token(this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
+  async destroy() {
+    const res = await this.service.destroy(this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
+  async wxlogin() {
+    const res = await this.service.wxlogin(this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
+  async trtclogin() {
+    const res = await this.service.trtclogin(this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+}
+
+module.exports = LoginController;

+ 18 - 0
app/controller/lookrecord.js

@@ -0,0 +1,18 @@
+'use strict';
+
+const _ = require('lodash');
+const meta = require('./.lookrecord.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+// 管理
+class LookrecordController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.lookrecord;
+  }
+
+}
+
+module.exports = CrudController(LookrecordController, meta);

+ 48 - 0
app/controller/lookuser.js

@@ -0,0 +1,48 @@
+'use strict';
+
+const _ = require('lodash');
+const meta = require('./.lookuser.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+// 管理
+class LookuserController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.lookuser;
+  }
+
+  async update() {
+    const res = await this.service.update(this.ctx.params, this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
+  async roomcount() {
+    const data = await this.service.roomcount(this.ctx.query);
+    this.ctx.ok({ ...data });
+  }
+
+  async swichrole() {
+    const res = await this.service.userswichrole(this.ctx.query);
+    this.ctx.ok({ data: res });
+  }
+
+  async updatexf() {
+    const res = await this.service.updatexf(this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
+  async updateonline() {
+    const res = await this.service.updateonline(this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
+  async index() {
+    const data = await this.service.query(this.ctx.query);
+    this.ctx.ok({ ...data });
+  }
+
+}
+
+module.exports = CrudController(LookuserController, meta);

+ 17 - 0
app/controller/news.js

@@ -0,0 +1,17 @@
+'use strict';
+
+const _ = require('lodash');
+const meta = require('./.news.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+class NewsController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.news;
+  }
+
+}
+
+module.exports = CrudController(NewsController, meta);

+ 19 - 0
app/controller/question.js

@@ -0,0 +1,19 @@
+'use strict';
+
+const _ = require('lodash');
+const Controller = require('egg').Controller;
+const meta = require('./.question.js');
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+// 科目管理
+class QusetionController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.question;
+  }
+
+
+}
+
+module.exports = CrudController(QusetionController, meta);

+ 53 - 0
app/controller/questionnaire.js

@@ -0,0 +1,53 @@
+'use strict';
+
+const _ = require('lodash');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+// 科目管理
+class QuestionnaireController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.questionnaire;
+  }
+
+  // POST
+  // 新建问卷
+  async create() {
+    const res = await this.service.create(this.ctx.request.body);
+    this.ctx.ok({ msg: 'created', data: res });
+  }
+
+  // POST
+  // 根据id删除问卷
+  async delete() {
+    const { id } = this.ctx.params;
+    await this.service.delete({ id });
+    this.ctx.ok({ msg: 'deleted' });
+  }
+
+  // POST
+  // 根据id更新信息
+  async update() {
+    await this.service.update(this.ctx.params, this.ctx.request.body);
+    this.ctx.ok({ msg: 'accepted' });
+  }
+
+  // GET
+  // 查询
+  async query() {
+    const res = await this.service.query(this.ctx.query);
+    this.ctx.ok({ ...res });
+  }
+
+  // GET
+  // 查询详情
+  async show() {
+    const res = await this.service.show(this.ctx.params);
+    this.ctx.ok({ msg: 'queried', data: res });
+  }
+
+}
+
+module.exports = QuestionnaireController;

+ 18 - 0
app/controller/role.js

@@ -0,0 +1,18 @@
+'use strict';
+
+const _ = require('lodash');
+const meta = require('./.role.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+// 管理
+class RoleController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.role;
+  }
+
+}
+
+module.exports = CrudController(RoleController, meta);

+ 223 - 0
app/controller/room.js

@@ -0,0 +1,223 @@
+'use strict';
+
+const _ = require('lodash');
+const meta = require('./.room.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+const tencentcloud = require('tencentcloud-sdk-nodejs');
+
+class RoomController extends Controller {
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.room;
+  }
+
+  async findroomname() {
+    const res = await this.service.findroomname(this.ctx.query);
+    this.ctx.ok({ data: res });
+  }
+
+  async index() {
+    const data = await this.service.query(this.ctx.query);
+    this.ctx.ok({ ...data });
+  }
+
+  async startrecord() {
+    const data = await this.service.startrecord(this.ctx.request.body);
+    this.ctx.ok({ ...data });
+  }
+
+  async starttranscode() {
+    // 调用录制接口
+    // 取得公共参数头
+    const SecretId = 'AKIDCAtWu3GhY9VbQzJgfOq4QVJq8AxWi3Sa';
+    const SecretKey = '3sRknnwoOhlY4JH2Wjf6VeYCdnhKr88z';
+    // 导入对应产品模块的client models。
+    const TrtcClient = tencentcloud.trtc.v20190722.Client;
+    const models = tencentcloud.trtc.v20190722.Models;
+
+    const Credential = tencentcloud.common.Credential;
+    const ClientProfile = tencentcloud.common.ClientProfile;
+    const HttpProfile = tencentcloud.common.HttpProfile;
+
+    const cred = new Credential(SecretId, SecretKey);
+    const httpProfile = new HttpProfile();
+    httpProfile.endpoint = 'trtc.tencentcloudapi.com';
+    const clientProfile = new ClientProfile();
+    clientProfile.httpProfile = httpProfile;
+    const client = new TrtcClient(cred, 'ap-beijing', clientProfile);
+
+    const req = new models.StartMCUMixTranscodeRequest();
+
+    const params = {};
+    params.SdkAppId = this.app.config.sdkappid;
+    params.RoomId = this.ctx.query.roomname;
+    const OutputParams_ = {};
+    OutputParams_.StreamId = this.app.config.sdkappid + '_' + this.ctx.query.roomid + '_mix';
+    OutputParams_.PureAudioStream = 0;
+    OutputParams_.RecordId = this.app.config.sdkappid + '_' + this.ctx.query.roomid;
+    OutputParams_.RecordAudioOnly = 0;
+    params.OutputParams = OutputParams_;
+    const EncodeParams_ = {};
+    EncodeParams_.VideoWidth = 1280;
+    EncodeParams_.VideoHeight = 720;
+    EncodeParams_.VideoBitrate = 1560;
+    EncodeParams_.VideoFramerate = 15;
+    EncodeParams_.VideoGop = 2;
+    EncodeParams_.BackgroundColor = 0;
+    EncodeParams_.AudioSampleRate = 48000;
+    EncodeParams_.AudioBitrate = 64;
+    EncodeParams_.AudioChannels = 2;
+    params.EncodeParams = EncodeParams_;
+    const LayoutParams_ = {};
+    LayoutParams_.Template = 2;
+    LayoutParams_.MainVideoUserId = this.ctx.query.shareid;
+    LayoutParams_.MainVideoStreamType = 1;
+    params.LayoutParams = LayoutParams_;
+    console.log(params);
+    console.log(JSON.stringify(params));
+    req.from_json_string(JSON.stringify(params));
+    client.StartMCUMixTranscode(req, function(errMsg, response) {
+      if (errMsg) {
+        console.log(errMsg);
+        return;
+      }
+      console.log(response.to_json_string());
+    });
+    this.ctx.ok({ });
+  }
+
+  async stoptranscode() {
+    // 调用录制接口
+    // 取得公共参数头
+    const SecretId = 'AKIDCAtWu3GhY9VbQzJgfOq4QVJq8AxWi3Sa';
+    const SecretKey = '3sRknnwoOhlY4JH2Wjf6VeYCdnhKr88z';
+    // 导入对应产品模块的client models。
+    const TrtcClient = tencentcloud.trtc.v20190722.Client;
+    const models = tencentcloud.trtc.v20190722.Models;
+
+    const Credential = tencentcloud.common.Credential;
+    const ClientProfile = tencentcloud.common.ClientProfile;
+    const HttpProfile = tencentcloud.common.HttpProfile;
+
+    const cred = new Credential(SecretId, SecretKey);
+    const httpProfile = new HttpProfile();
+    httpProfile.endpoint = 'trtc.tencentcloudapi.com';
+    const clientProfile = new ClientProfile();
+    clientProfile.httpProfile = httpProfile;
+    const client = new TrtcClient(cred, 'ap-beijing', clientProfile);
+    const req = new models.StopMCUMixTranscodeRequest();
+    const params = {};
+    params.SdkAppId = this.app.config.sdkappid;
+    params.RoomId = this.ctx.query.roomname;
+    req.from_json_string(JSON.stringify(params));
+    client.StopMCUMixTranscode(req, function(errMsg, response) {
+      if (errMsg) {
+        console.log(errMsg);
+        return;
+      }
+      console.log(response.to_json_string());
+    });
+    this.ctx.ok({ });
+  }
+
+  async deletefile() {
+    // 调用录制接口
+    // 取得公共参数头
+    const SecretId = 'AKIDCAtWu3GhY9VbQzJgfOq4QVJq8AxWi3Sa';
+    const SecretKey = '3sRknnwoOhlY4JH2Wjf6VeYCdnhKr88z';
+    // 导入对应产品模块的client models。
+    const VodClient = tencentcloud.vod.v20180717.Client;
+    const models = tencentcloud.vod.v20180717.Models;
+
+    const Credential = tencentcloud.common.Credential;
+    const ClientProfile = tencentcloud.common.ClientProfile;
+    const HttpProfile = tencentcloud.common.HttpProfile;
+
+    const cred = new Credential(SecretId, SecretKey);
+    const httpProfile = new HttpProfile();
+    httpProfile.endpoint = 'vod.tencentcloudapi.com';
+    const clientProfile = new ClientProfile();
+    clientProfile.httpProfile = httpProfile;
+    const client = new VodClient(cred, 'ap-beijing', clientProfile);
+    const req = new models.DeleteMediaRequest();
+    const params = { FileId: this.ctx.query.fileid };
+    req.from_json_string(JSON.stringify(params));
+    client.DeleteMedia(req, function(errMsg, response) {
+      if (errMsg) {
+        console.log(errMsg);
+        return;
+      }
+      console.log(response.to_json_string());
+    });
+    this.ctx.ok({ });
+  }
+
+  async roomquest() {
+    const data = await this.service.roomquest(this.ctx.request.body);
+    this.ctx.ok({ data });
+  }
+
+  async updateanchor() {
+    const data = await this.service.updateanchor(this.ctx.request.body);
+    this.ctx.ok({ data });
+  }
+
+  async roomquestclose() {
+    const data = await this.service.roomquestclose(this.ctx.request.body);
+    this.ctx.ok({ data });
+  }
+
+  async updateshmai() {
+    const data = await this.service.updateshmai(this.ctx.request.body);
+    this.ctx.ok({ data });
+  }
+
+  async switchzjr() {
+    const data = await this.service.switchzjr(this.ctx.request.body);
+    this.ctx.ok({ data });
+  }
+
+  async switchzb() {
+    const data = await this.service.switchzb(this.ctx.request.body);
+    this.ctx.ok({ data });
+  }
+
+  // 解散房间
+  async dismissroom() {
+    // 调用解散房间接口
+    // 取得公共参数头
+    const SecretId = 'AKIDCAtWu3GhY9VbQzJgfOq4QVJq8AxWi3Sa';
+    const SecretKey = '3sRknnwoOhlY4JH2Wjf6VeYCdnhKr88z';
+    // 导入对应产品模块的client models。
+    const TrtcClient = tencentcloud.trtc.v20190722.Client;
+    const models = tencentcloud.trtc.v20190722.Models;
+
+    const Credential = tencentcloud.common.Credential;
+    const ClientProfile = tencentcloud.common.ClientProfile;
+    const HttpProfile = tencentcloud.common.HttpProfile;
+
+    const cred = new Credential(SecretId, SecretKey);
+    const httpProfile = new HttpProfile();
+    httpProfile.endpoint = 'trtc.tencentcloudapi.com';
+    const clientProfile = new ClientProfile();
+    clientProfile.httpProfile = httpProfile;
+    const client = new TrtcClient(cred, 'ap-beijing', clientProfile);
+    const req = new models.DismissRoomRequest();
+
+    const params = {};
+    params.SdkAppId = this.app.config.sdkappid;
+    params.RoomId = this.ctx.query.roomname;
+    req.from_json_string(JSON.stringify(params));
+    client.DismissRoom(req, function(errMsg, response) {
+      if (errMsg) {
+        console.log(errMsg);
+      }
+      console.log(response.to_json_string());
+    });
+    this.ctx.ok({ });
+  }
+
+}
+
+module.exports = CrudController(RoomController, meta);

+ 22 - 0
app/controller/roomuser.js

@@ -0,0 +1,22 @@
+'use strict';
+
+const _ = require('lodash');
+const meta = require('./.roomuser.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+class RoomuserController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.roomuser;
+  }
+
+  async register() {
+    const res = await this.service.register(this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
+}
+
+module.exports = CrudController(RoomuserController, meta);

+ 29 - 0
app/controller/uploadquestion.js

@@ -0,0 +1,29 @@
+'use strict';
+
+const _ = require('lodash');
+const meta = require('./.uploadquestion.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+
+// 学生上传问卷管理
+class UploadquestionController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.uploadquestion;
+  }
+
+  // 完成度查询
+  async completion() {
+    const res = await this.service.completion(this.ctx.query);
+    this.ctx.ok({ ...res });
+  }
+
+  async index() {
+    const res = await this.service.query(this.ctx.query);
+    this.ctx.ok({ ...res });
+  }
+
+}
+
+module.exports = CrudController(UploadquestionController, meta);

+ 66 - 0
app/controller/user.js

@@ -0,0 +1,66 @@
+'use strict';
+
+const _ = require('lodash');
+const meta = require('./.user.js');
+const Controller = require('egg').Controller;
+const { CrudController } = require('naf-framework-mongoose/lib/controller');
+const TLSSigAPIv2 = require('tls-sig-api-v2');
+const qiniu = require('qiniu');
+
+class UserController extends Controller {
+
+  constructor(ctx) {
+    super(ctx);
+    this.service = this.ctx.service.user;
+  }
+
+  async uppasswd() {
+    const res = await this.service.uppasswd(this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
+  async querymenus() {
+    const res = await this.service.querymenus(this.ctx.query);
+    this.ctx.ok({ data: res });
+  }
+
+  async updatebyuid() {
+    const res = await this.service.updatebyuid(this.ctx.params, this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
+  async bind() {
+    const res = await this.service.bind(this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
+  async gensign() {
+    const api = new TLSSigAPIv2.Api(this.app.config.sdkappid, this.app.config.secretkey);
+    const res = api.genSig(this.ctx.request.body.userid, 86400 * 180);
+    console.log('sig ' + res);
+    // sig = api.genSigWithUserbuf(this.ctx.request.body.userid, 86400 * 180, this.ctx.request.body.name);
+    // console.log('sig with userbuf ' + sig);
+    this.ctx.ok({ data: res });
+  }
+
+  async gensignqili() {
+    const ak = 'CNOr-D4vAG3bNP3uXfwsL_n2FMXFm5C-MUof3goK';
+    const sk = 'GL5k-Hc-MPM1ZPlRPYfNhMgN-pPGRTuua8gTc2Pj';
+
+    const credentials = new qiniu.Credentials(ak, sk);
+    const roomToken = await qiniu.room.getRoomToken({
+      appId: 'f3m2e54ms',
+      roomName: this.ctx.request.body.roomname,
+      userId: this.ctx.request.body.userid,
+      expireAt: Date.now() + (1000 * 60 * 60 * 3), // token 的过期时间默认为当前时间之后 3 小时
+      permission: 'user',
+    }, credentials);
+    console.log('sig ' + roomToken);
+    // sig = api.genSigWithUserbuf(this.ctx.request.body.userid, 86400 * 180, this.ctx.request.body.name);
+    // console.log('sig with userbuf ' + sig);
+    this.ctx.ok({ data: roomToken });
+  }
+
+}
+
+module.exports = CrudController(UserController, meta);

+ 160 - 0
app/controller/weixin.js

@@ -0,0 +1,160 @@
+'use strict';
+
+const assert = require('assert');
+const _ = require('lodash');
+const uuid = require('uuid');
+const urljoin = require('url-join');
+const Controller = require('egg').Controller;
+
+/**
+ * 微信认证,获得openid和用户信息,生成微信Jwt
+ */
+class WeixinController extends Controller {
+  /**
+   * 认证流程
+   * 1. 缓存原始请求地址,生成state和认证回调地址
+   * 2. 通过wxapi认证,获得认证code
+   * 3. 通过code获得openid,通过openid,查询绑定用户,创建jwt
+   * 4. jwt写入redis,返回认证code
+   * 5. 通过code获取jwt
+   */
+  // GET 请求认证
+  // response_type:
+  //       code - url带上code参数重定向到原始地址
+  //       store - 默认,认证结果写入sessionStore,然后重定向回请求页面(要求请求页面和认证服务在同一域名下)
+  //       token - url带上token参数重定向到原始地址
+  async auth() {
+    const { redirect_uri, code, test, type, response_type = 'store', uid, qrcode } = this.ctx.query;
+    if (test) {
+      return await this.authTest();
+    }
+    console.log('code----' + code);
+    if (code) {
+      return await this.authBack(this.ctx.query);
+    }
+
+    this.ctx.logger.debug(`[auth] reditect_uri - ${redirect_uri}`);
+    // assert(redirect_uri, '回调地址不能为空');
+
+    // TODO: 保存原始请求地址
+    // const { config } = this.app;
+    // console.log('ctx.host: ', this.ctx.host);
+    // console.log('config.hostHeaders: ', config.hostHeaders);
+    // TODO: 保存原始请求地址
+    const state = uuid();
+    const key = `visit:auth:state:${state}`;
+    const val = JSON.stringify({ redirect_uri, type, uid, qrcode });
+    await this.app.redis.set(key, val, 'EX', 600);
+
+    // TODO: 生成回调地址
+    const { wxapi, authUrl = this.ctx.path } = this.app.config;
+    const backUrl = encodeURI(`${this.app.config.baseUrl}${this.config.authUrl}/`);
+    const to_uri = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${wxapi.appid}&response_type=code&scope=snsapi_base&redirect_uri=${backUrl}&state=${state}&connect_redirect=1#wechat_redirect`;
+    console.log('url-->' + to_uri);
+    this.ctx.redirect(to_uri);
+  }
+
+  // GET 认证回调
+  async authBack({ code, state }) {
+    // const { code, state, type, redirecturi } = this.ctx.query;
+    console.log(this.ctx.query);
+    this.ctx.logger.debug(`[auth-back] code - ${code}, state - ${state}`);
+    assert(code, 'code不能为空');
+    assert(state, 'state不能为空');
+    console.log('code-->' + code);
+
+    const { weixin } = this.ctx.service;
+    let openid;
+    try {
+      ({ openid } = await weixin.fetch(code));
+    } catch (err) {
+      await this.ctx.render('error.njk', { title: err.message, message: err.details });
+      return;
+    }
+    console.log('openid--->' + openid);
+    if (openid) {
+      const key = `visit:auth:state:${state}`;
+      const val = await this.app.redis.get(key);
+      const { redirect_uri, type, uid, qrcode } = JSON.parse(val);
+      console.log('redirect_uri-->' + redirect_uri);
+      const user = await this.ctx.service.user.findByOpenid(openid);
+      if (type === '0') {
+        // 通过openid取得用户信息
+        if (user) {
+          const token = await this.ctx.service.login.createJwt(user);
+          const to_uri = urljoin(redirect_uri, `?token=${token}`);
+          // TODO: 重定性页面
+          console.log('to_uri000-->' + to_uri);
+          this.ctx.redirect(to_uri);
+
+        } else {
+          console.log('rrr0000--->' + redirect_uri);
+          const touri = `${this.app.config.baseUrl}/livemobile/registered`;
+          const to_uri = urljoin(touri, `?openid=${openid}`);
+          // TODO: 重定性页面
+          console.log('rrr111--->' + to_uri);
+          this.ctx.redirect(to_uri);
+        }
+      } else if (type === '1') {
+        if (user) {
+          const token = await this.ctx.service.login.createJwt(user);
+          const touri = `${this.app.config.baseUrl}/livemobile/onlive/roomInfo`;
+          const to_uri = urljoin(touri, `?token=${token}&id=${qrcode}&type=${type}`);
+          // TODO: 重定性页面
+          console.log('to_uri000-->' + to_uri);
+          this.ctx.redirect(to_uri);
+
+        } else {
+          const touri = `${this.app.config.baseUrl}/livemobile/onlive/roomdetail`;
+          const to_uri = urljoin(touri, `?openid=${openid}&id=${qrcode}&type=${type}`);
+          // TODO: 重定性页面
+          console.log('1111---?' + to_uri);
+          this.ctx.redirect(to_uri);
+        }
+      }
+    }
+
+  }
+
+  // GET 用户授权内部测试接口
+  async authTest() {
+    const { redirect_uri, type, uid, qrcode, openid } = this.ctx.query;
+    this.ctx.logger.debug(`[auth-test] reditect_uri - ${redirect_uri}, openid - ${openid}`);
+    assert(redirect_uri, '回调地址不能为空');
+    assert(openid, 'openid不能为空');
+    if (openid) {
+      console.log('redirect_uri-->' + redirect_uri);
+      const user = await this.ctx.service.user.findByOpenid(openid);
+      if (type === '0') {
+        // 通过openid取得用户信息
+        if (user) {
+          const token = await this.ctx.service.login.createJwt(user);
+          const to_uri = urljoin(redirect_uri, `?token=${token}`);
+          // TODO: 重定性页面
+          console.log('to_uri000-->' + to_uri);
+          this.ctx.redirect(to_uri);
+
+        } else {
+          console.log('rrr0000--->' + redirect_uri);
+          const touri = `${this.app.config.baseUrl}/livemobile/registered`;
+          const to_uri = urljoin(touri, `?openid=${openid}`);
+          // TODO: 重定性页面
+          this.ctx.redirect(to_uri);
+        }
+      } else if (type === '1') {
+        const to_uri = urljoin(redirect_uri, `?openid=${openid}&uid=${uid}&type=${type}&qrcode=${qrcode}`);
+        // TODO: 重定性页面
+        console.log('1111---?' + to_uri);
+        this.ctx.redirect(to_uri);
+      } else if (type === '2') {
+        const to_uri = urljoin(redirect_uri, `?openid=${openid}&type=${type}`);
+        // TODO: 重定性页面
+        console.log('222---?' + to_uri);
+        this.ctx.redirect(to_uri);
+      }
+    }
+
+  }
+}
+
+module.exports = WeixinController;

+ 67 - 0
app/controller/wxpay.js

@@ -0,0 +1,67 @@
+'use strict';
+
+const assert = require('assert');
+const _ = require('lodash');
+const Controller = require('egg').Controller;
+
+/**
+ * 微信支付
+ */
+class WxPayController extends Controller {
+  /**
+   * 微信支付取得sign等参数
+   */
+  async wxpaysign() {
+    const { orderno, money, content, openid } = this.ctx.request.body;
+    assert(orderno, 'orderno不能为空');
+    assert(openid, 'openid不能为空');
+    assert(money, 'money不能为空');
+    const { wxapi } = this.app.config;
+    const mch_id = wxapi.mchid;
+    const nonce_str = await this.service.wxpay.createNonceStr();
+    const timestamp = await this.service.wxpay.createTimeStamp();
+    const body = content;
+    const out_trade_no = orderno;
+    const total_fee = await this.service.wxpay.getmoney(money);
+    const spbill_create_ip = this.ctx.ip;
+    const notify_url = wxapi.wxurl;
+    const trade_type = 'JSAPI';
+    const sign = await this.service.wxpay.paysignjsapi(wxapi.appid, body, mch_id, nonce_str, notify_url, out_trade_no, spbill_create_ip, total_fee, trade_type, wxapi.mchkey, openid);
+    console.log('sign==', sign);
+    let formData = '<xml>';
+    formData += '<appid>' + wxapi.appid + '</appid>'; // appid
+    formData += '<body><![CDATA[' + body + ']]></body>';
+    formData += '<mch_id>' + mch_id + '</mch_id>'; // 商户号
+    formData += '<nonce_str>' + nonce_str + '</nonce_str>'; // 随机字符串,不长于32位。
+    formData += '<notify_url>' + notify_url + '</notify_url>';
+    formData += '<out_trade_no>' + out_trade_no + '</out_trade_no>';
+    formData += '<spbill_create_ip>' + spbill_create_ip + '</spbill_create_ip>';
+    formData += '<total_fee>' + total_fee + '</total_fee>';
+    formData += '<trade_type>' + trade_type + '</trade_type>';
+    formData += '<sign>' + sign + '</sign>';
+    formData += '<openid>' + openid + '</openid>';
+    formData += '</xml>';
+    console.log('formData===', formData);
+
+    const payurl = wxapi.payurl;
+    const paydata = await this.ctx.curl(payurl, {
+      method: 'post',
+      data: formData,
+    });
+    const prepay_id = await this.service.wxpay.getXMLNodeValue(paydata.data.toString('UTF-8'));
+    console.log('解析后的prepay_id==', prepay_id);
+    // 将预支付订单和其他信息一起签名后返回给前端
+    const finalsign = await this.service.wxpay.paysignjsapifinal(wxapi.appid, mch_id, prepay_id, nonce_str, timestamp, wxapi.mchkey);
+    const res = { appId: wxapi.appid, partnerId: wxapi.mchid, prepayId: prepay_id, nonceStr: nonce_str, timeStamp: timestamp, package: 'prepay_id=' + prepay_id, sign: finalsign };
+    this.ctx.ok({ data: res });
+  }
+
+  async wxpaysignback() {
+    const { ctx } = this;
+    console.log();
+    ctx.body = 'hi, egg';
+  }
+
+}
+
+module.exports = WxPayController;

+ 21 - 0
app/model/chat.js

@@ -0,0 +1,21 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+const ChatSchema = {
+  roomid: { type: String, required: false, maxLength: 200 }, // 房间名称
+  type: { type: String, required: false, maxLength: 64 }, // 类型0、直播1、会议
+  content: { type: String, required: false, maxLength: 200 }, // 封面图片
+  sendid: { type: String, required: false, maxLength: 200 }, // 发送人id
+  sendname: { type: String, required: false, maxLength: 200 }, // 发送人
+  sendtime: { type: String, required: false, maxLength: 200 }, // 发送时间
+};
+
+const schema = new Schema(ChatSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Chat', schema, 'chat');
+};

+ 18 - 0
app/model/contact.js

@@ -0,0 +1,18 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+const ContactSchema = {
+  title: { type: String, required: false, maxLength: 200 }, // 标题
+  content: { type: String, required: false }, // 内容
+  publish_time: { type: String, required: false, maxLength: 200 }, // 发布时间
+};
+
+const schema = new Schema(ContactSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Contact', schema, 'contact');
+};

+ 21 - 0
app/model/lookrecord.js

@@ -0,0 +1,21 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+const LookrecordSchema = {
+  roomid: { type: String, required: false, maxLength: 200 }, // 房间名称
+  roomname: { type: String, required: false, maxLength: 200 }, // 房间号
+  userid: { type: String, required: false, maxLength: 200 }, // 观看用户id
+  username: { type: String, required: false, maxLength: 200 }, // 观看用户名称
+  createtime: { type: String, required: false, maxLength: 200 }, // 创建时间
+  type: { type: String, required: false, maxLength: 200 }, // 0、进入 1、退出
+};
+
+const schema = new Schema(LookrecordSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Lookrecord', schema, 'lookrecord');
+};

+ 28 - 0
app/model/lookuser.js

@@ -0,0 +1,28 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+const LookuserSchema = {
+  roomid: { type: String, required: false, maxLength: 200 }, // 房间名称
+  roomname: { type: String, required: false, maxLength: 200 }, // 房间号
+  userid: { type: String, required: false, maxLength: 200 }, // 观看用户id
+  username: { type: String, required: false, maxLength: 200 }, // 观看用户名称
+  phone: { type: String, required: false, maxLength: 200 }, // 手机号
+  switchrole: { type: String, required: false }, // 直播身份  ‘anchor’ 主播  ‘audience’ 观众
+  createtime: { type: String, required: false, maxLength: 200 }, // 创建时间
+  isxf: { type: String, required: false, maxLength: 200 }, // 申请学分
+  hosname: { type: String, required: false }, // 医院名称
+  deptname: { type: String, required: false }, // 机构名称
+  level: { type: String, required: false }, // 职务
+  major: { type: String, required: false }, // 专业
+  isonline: { type: String, required: false, maxLength: 200, default: '0' }, // 是否在线0、不在线 1、在线
+};
+
+const schema = new Schema(LookuserSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Lookuser', schema, 'lookuser');
+};

+ 21 - 0
app/model/news.js

@@ -0,0 +1,21 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+const NewsSchema = {
+  title: { type: String, required: false, maxLength: 200 }, // 标题
+  content: { type: String, required: false }, // 内容
+  filedir: { type: String, required: false }, // 封面图片
+  publish_time: { type: String, required: false, maxLength: 200 }, // 发布时间
+  type: { type: String, required: false, maxLength: 200 }, // 类型 0、会议简介 1、会议日程2、主办方介绍、3、协办方介绍4、专家介绍5、继续再教育申请表6、温馨提示
+  status: { type: String, required: false, maxLength: 200, default: '0' }, // 0、开启1、禁用
+};
+
+const schema = new Schema(NewsSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('News', schema, 'news');
+};

+ 26 - 0
app/model/question.js

@@ -0,0 +1,26 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+// 选项详情
+const optionInfo = new Schema({
+  number: { type: String, required: false, maxLength: 200 }, // 序号
+  opname: { type: String, required: false, maxLength: 200 }, // 名称
+});
+
+// 问卷题库表
+const questionSchema = {
+  type: { type: String, required: true, maxLength: 200 }, // 类型,0-单选,1-多选,2-问答
+  topic: { type: String, required: true, maxLength: 500 }, // 题目
+  status: { type: String, required: false, maxLength: 200 }, // 状态,0-弃用,1-正常
+  option: { type: [ optionInfo ], select: true }, // 选项
+};
+
+const schema = new Schema(questionSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Question', schema, 'question');
+};

+ 38 - 0
app/model/questionnaire.js

@@ -0,0 +1,38 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+
+// 选项详情
+const optionInfo = new Schema({
+  number: { type: String, required: false, maxLength: 200 }, // 序号
+  opname: { type: String, required: false, maxLength: 200 }, // 名称
+});
+
+// 问卷题
+const questionInfo = {
+  type: { type: String, required: true, maxLength: 200 }, // 类型,0-单选,1-多选,2-问答
+  topic: { type: String, required: true, maxLength: 500 }, // 题目
+  status: { type: String, required: false, maxLength: 200 }, // 状态,0-弃用,1-正常
+  option: { type: [ optionInfo ], select: true }, // 选项
+};
+
+// 问卷表
+const QuestionnaireSchema = {
+  name: { type: String, required: true, maxLength: 200 }, // 问卷名称
+  num: { type: String, required: false, maxLength: 200 }, // 序号
+  type: { type: String, required: false, maxLength: 200 }, // 类型,0-常用问卷,1-非常用问卷,2-教师问卷
+  status: { type: String, required: true, maxLength: 200, default: '0' }, // 状态,0-草稿,1-发布,2-禁用
+  question: { type: [ questionInfo ], required: false, select: true }, // 问卷
+};
+
+
+const schema = new Schema(QuestionnaireSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.index({ type: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Questionnaire', schema, 'questionnaire');
+};

+ 21 - 0
app/model/role.js

@@ -0,0 +1,21 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+// 权限表
+const RoleSchema = {
+  code: { type: String, required: false, maxLength: 200 }, // 权限CODE
+  role_name: { type: String, required: true, maxLength: 64 }, // 权限名称
+  url: { type: String, required: false }, // 权限路由
+};
+
+
+const schema = new Schema(RoleSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.index({ code: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Role', schema, 'role');
+};

+ 46 - 0
app/model/room.js

@@ -0,0 +1,46 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+// 房间广告位
+const AdvertInfo = {
+  title: { type: String, required: false }, // 广告标题
+  imgdir: { type: String, required: false }, // 图片地址
+  imgurl: { type: String, required: false }, // 图片链接地址
+};
+
+const RoomSchema = {
+  name: { type: String, required: false, maxLength: 200 }, // 房间名称
+  title: { type: String, required: false, maxLength: 200 }, // 标题
+  type: { type: String, required: false, maxLength: 64 }, // 类型0、直播1、会议
+  filedir: { type: String, required: false, maxLength: 200 }, // 封面图片
+  url: { type: String, required: false, maxLength: 200 }, // 视频地址
+  stream_id: { type: String, required: false }, // 视频回放文件id
+  ishis: { type: String, required: false, maxLength: 64, default: '0' }, // 状态0、正常1、历史
+  requestId: { type: String, required: false }, // 请求id
+  file_id: { type: String, required: false }, // 文件id
+  content: { type: String, required: false }, // 直播简介
+  anchorid: { type: String, required: false, maxLength: 200 }, // 主播id
+  otheid: { type: String, required: false, maxLength: 200 }, // 主讲id
+  shmaiid: { type: String, required: false, maxLength: 200 }, // 上麦id
+  username: { type: String, required: false, maxLength: 200 }, // 主播名称
+  starttime: { type: String, required: false }, // 开始时间
+  endtime: { type: String, required: false }, // 结束时间
+  status: { type: String, required: false, maxLength: 64, default: '0' }, // 状态0、开启1、关闭
+  isadvert: { type: Boolean, required: false, default: false }, // 是否有广告位0、开启1、关闭
+  adverts: { type: [ AdvertInfo ], required: false, select: true }, // 广告位
+  queid: { type: String, required: false, maxLength: 200 }, // 问卷id
+  isque: { type: String, required: false, maxLength: 64, default: '0' }, // 状态0、无1、有
+  switchzjr: { type: String, required: false, maxLength: 200 }, // 选择主讲人
+  zjr: { type: Array, required: false, select: true }, // 主讲人列表
+  price: { type: String, required: false, default: '0' }, // 金额
+};
+
+const schema = new Schema(RoomSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Room', schema, 'room');
+};

+ 34 - 0
app/model/roomuser.js

@@ -0,0 +1,34 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+const RoomUserSchema = {
+  name: { type: String, required: false, maxLength: 200 }, // 名称
+  phone: { type: String, required: true, maxLength: 64 }, // 手机
+  passwd: { type: String, select: false }, // 注册密码
+  openid: { type: String, required: false }, // 微信openid
+  age: { type: String, required: false, maxLength: 64 }, // 年龄
+  gender: { type: String, required: false, maxLength: 64 }, // 性别
+  idnumber: { type: String, required: false, maxLength: 64 }, // 身份证号
+  major: { type: String, required: false }, // 专业
+  isjc: { type: Boolean, required: false }, // 是否基层
+  isxf: { type: String, required: false }, // 是否授予学分
+  address: { type: String, required: false, maxLength: 200 }, // 单位所在地
+  role: { type: String, required: false }, // 3-主播 4、房间用户
+  hosname: { type: String, required: false }, // 医院名称
+  deptname: { type: String, required: false }, // 机构名称
+  level: { type: String, required: false }, // 职务
+  title: { type: String, required: false }, // 个人简介
+  remark: { type: String, required: false }, // 备注
+  switchrole: { type: String, required: false }, // 直播身份  ‘anchor’ 主播  ‘audience’ 观众
+};
+
+
+const schema = new Schema(RoomUserSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Roomuser', schema, 'room_user');
+};

+ 29 - 0
app/model/uploadquestion.js

@@ -0,0 +1,29 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+
+// 答案详情
+const answerInfo = new Schema({
+  questionid: { type: String, required: false, maxLength: 200 }, // 问题id
+  answer: { type: String, required: false, maxLength: 200 }, // 答案
+});
+
+// 学生上传问卷表
+const UploadquestionSchema = {
+  roomid: { type: String, required: true, maxLength: 200 }, // 计划id
+  userid: { type: String, required: true, maxLength: 200 }, // 学生id
+  questionnaireid: { type: String, required: false, maxLength: 200 }, // 问卷id
+  answers: { type: [ answerInfo ], select: true }, // 选项
+};
+
+
+const schema = new Schema(UploadquestionSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.index({ roomid: 1 });
+schema.index({ userid: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('Uploadquestion', schema, 'uploadquestion');
+};

+ 26 - 0
app/model/user.js

@@ -0,0 +1,26 @@
+'use strict';
+const Schema = require('mongoose').Schema;
+const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
+const { Secret } = require('naf-framework-mongoose/lib/model/schema');
+
+const UserSchema = {
+  name: { type: String, required: false, maxLength: 200 }, // 名称
+  phone: { type: String, required: true, maxLength: 64 }, // 手机
+  passwd: { type: Secret, select: false }, // 注册密码
+  openid: { type: String, required: false }, // 微信openid
+  uid: { type: String, required: false }, // 用户信息id
+  role: { type: String, required: false }, // 1-管理员,2-子管理员,3-主播4、房间用户
+  menus: { type: [ String ], required: false }, // 菜单权限
+  deptname: { type: String, required: false }, // 机构名称
+  remark: { type: String, required: false }, // 备注
+};
+
+
+const schema = new Schema(UserSchema, { toJSON: { virtuals: true } });
+schema.index({ id: 1 });
+schema.plugin(metaPlugin);
+
+module.exports = app => {
+  const { mongoose } = app;
+  return mongoose.model('User', schema, 'user');
+};

+ 99 - 0
app/router.js

@@ -0,0 +1,99 @@
+'use strict';
+
+/**
+ * @param {Egg.Application} app - egg application
+ */
+module.exports = app => {
+  const { router, controller } = app;
+  router.get('/', controller.home.index);
+  // 用户表设置路由
+  router.resources('user', '/api/onlive/user', controller.user); // index、create、show、destroy
+  router.post('user', '/api/onlive/user/update/:id', controller.user.update);
+  router.post('user', '/api/onlive/user/uppasswd', controller.user.uppasswd);
+  router.post('/api/onlive/user/updatebyuid/:id', controller.user.updatebyuid);
+  router.post('/api/onlive/user/bind', controller.user.bind);
+  router.post('/api/onlive/user/gensign', controller.user.gensign);
+  router.post('/api/onlive/user/gensignqili', controller.user.gensignqili);
+  // 权限表设置路由
+  router.resources('role', '/api/onlive/role', controller.role); // index、create、show、destroy
+  router.post('role', '/api/onlive/role/update/:id', controller.role.update);
+
+  // 房间表设置路由
+  router.get('/api/onlive/room/starttranscode', controller.room.starttranscode);
+  router.get('/api/onlive/room/stoptranscode', controller.room.stoptranscode);
+  router.get('/api/onlive/room/deletefile', controller.room.deletefile);
+  router.get('/api/onlive/room/roomname', controller.room.findroomname);
+  router.post('/api/onlive/room/startrecord', controller.room.startrecord);
+  router.resources('room', '/api/onlive/room', controller.room); // index、create、show、destroy
+  router.post('room', '/api/onlive/room/update/:id', controller.room.update);
+  router.post('/api/onlive/room/roomquest', controller.room.roomquest);
+  router.post('/api/onlive/room/roomquestclose', controller.room.roomquestclose);
+  router.post('/api/onlive/room/updateanchor', controller.room.updateanchor);
+  router.post('/api/onlive/room/updateshmai', controller.room.updateshmai);
+  router.post('/api/onlive/room/switchzjr', controller.room.switchzjr);
+  router.post('/api/onlive/room/switchzb', controller.room.switchzb);
+  router.post('/api/onlive/room/dismissroom', controller.room.dismissroom);
+
+  // 聊天表设置路由
+  router.resources('chat', '/api/onlive/chat', controller.chat); // index、create、show、destroy
+  router.post('chat', '/api/onlive/chat/update/:id', controller.chat.update);
+
+  // 主播表设置路由
+  router.resources('roomuser', '/api/onlive/roomuser', controller.roomuser); // index、create、show、destroy
+  router.post('roomuser', '/api/onlive/roomuser/update/:id', controller.roomuser.update);
+
+  // 观看用户表设置路由
+  router.get('/api/onlive/lookuser/roomcount', controller.lookuser.roomcount);
+  router.get('/api/onlive/lookuser/swichrole', controller.lookuser.swichrole);
+  router.resources('lookuser', '/api/onlive/lookuser', controller.lookuser); // index、create、show、destroy
+  router.post('lookuser', '/api/onlive/lookuser/update/:id', controller.lookuser.update);
+  router.post('/api/onlive/lookuser/updatexf', controller.lookuser.updatexf);
+  router.post('/api/onlive/lookuser/updateonline', controller.lookuser.updateonline);
+
+  router.resources('lookrecord', '/api/onlive/lookrecord', controller.lookrecord); // index、create、show、destroy
+  router.post('lookrecord', '/api/onlive/lookrecord/update/:id', controller.lookrecord.update);
+
+  // 问卷题库表配置路由
+  router.resources('question', '/api/onlive/question', controller.question); // index、create、show、destroy
+  router.post('question', '/api/onlive/question/update/:id', controller.question.update);
+
+  // 问卷表配置路由
+  router.post('questionnaire', '/api/onlive/questionnaire', controller.questionnaire.create);
+  router.delete('questionnaire', '/api/onlive/questionnaire/:id', controller.questionnaire.delete);
+  router.post('questionnaire', '/api/onlive/questionnaire/update/:id', controller.questionnaire.update);
+  router.get('questionnaire', '/api/onlive/questionnaire', controller.questionnaire.query);
+  router.get('questionnaire', '/api/onlive/questionnaire/show/:id', controller.questionnaire.show);
+
+  // 学生上传问卷表设置路由
+  router.get('/api/onlive/uploadquestion/completion', controller.uploadquestion.completion); // 统计完成度
+  router.resources('uploadquestion', '/api/onlive/uploadquestion', controller.uploadquestion); // index、create、show、destroy
+  router.post('uploadquestion', '/api/onlive/uploadquestion/update/:id', controller.uploadquestion.update);
+
+  // 联系我们表配置路由
+  router.resources('contact', '/api/onlive/contact', controller.contact); // index、create、show、destroy
+  router.post('contact', '/api/onlive/contact/update/:id', controller.contact.update);
+
+  // 会议简介表配置路由
+  router.resources('news', '/api/onlive/news', controller.news); // index、create、show、destroy
+  router.post('news', '/api/onlive/news/update/:id', controller.news.update);
+
+  // 用户登录
+  router.post('/api/onlive/login', controller.login.login);
+  router.post('/api/onlive/trtclogin', controller.login.trtclogin);
+
+  // 根据token取得用户信息
+  router.post('/api/onlive/token', controller.login.token);
+  // 用户退出登录
+  router.post('/api/onlive/logout', controller.login.destroy);
+
+  // 微信报名注册
+  router.post('/api/onlive/register', controller.roomuser.register);
+
+  // 微信端访问地址
+  router.get('/api/onlive/auth', controller.weixin.auth); // 微信登录
+  // 微信端访问地址
+  router.get('/api/onlive/wxchattest', controller.weixin.authTest); // 微信登录测试
+
+  router.post('/api/onlive/wxpaysign', controller.wxpay.wxpaysign); // 取得支付签名
+  router.post('/api/onlive/wxpayback', controller.wxpay.wxpaysignback); // 取得支付签名
+};

+ 40 - 0
app/service/chat.js

@@ -0,0 +1,40 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const moment = require('moment');
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class ChatService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'chat');
+    this.model = this.ctx.model.Chat;
+  }
+
+  async create(data) {
+    const { sendid, content, roomid } = data;
+    assert(sendid, '缺少发言人信息');
+    assert(roomid, '缺少房间信息');
+    assert(content, '缺少发言内容');
+    data.sendtime = moment().format('YYYY-MM-DD HH:mm:ss');
+    const res = await this.model.create(data);
+    // TODO MQ
+    const { mq } = this.ctx;
+    if (mq) {
+      const exchange = 'public_chat_' + roomid;
+      const parm = {
+        durable: true,
+        headers: {
+          userid: sendid,
+        } };
+      await mq.fanout(exchange, roomid, JSON.stringify(res), parm);
+    }
+    return res;
+  }
+
+}
+
+module.exports = ChatService;

+ 18 - 0
app/service/contact.js

@@ -0,0 +1,18 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const moment = require('moment');
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class ContactService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'contact');
+    this.model = this.ctx.model.Contact;
+  }
+}
+
+module.exports = ContactService;

+ 138 - 0
app/service/login.js

@@ -0,0 +1,138 @@
+'use strict';
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+const jwt = require('jsonwebtoken');
+const uuid = require('uuid');
+
+class LoginService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'login');
+    this.model = this.ctx.model.User;
+    this.rmodel = this.ctx.model.Role;
+    this.umodel = this.ctx.model.Roomuser;
+    this.roommodel = this.ctx.model.Room;
+  }
+
+  // 用户登录
+  async login(data) {
+    const { phone, passwd, roomid } = data;
+    // 根据用户输入的手机号查询其他用户表中是否存在相应数据
+    const user = await this.model.findOne({ phone });
+    // 如果用户不存在抛出异常
+    if (!user) {
+      throw new BusinessError(ErrorCode.USER_NOT_EXIST);
+    }
+    const _user = await this.model.findOne({ phone }, '+passwd');
+    // 将用户输入的密码进行加密并与查询到的用户数据密码相比对
+    const pas = await this.createJwtPwd(passwd);
+    // 如果两个密码不一致抛出异常
+    if (pas !== _user.passwd.secret) {
+      throw new BusinessError(ErrorCode.BAD_PASSWORD);
+    }
+    if (_user.role === '4') {
+      throw new BusinessError(ErrorCode.ACCESS_DENIED);
+    }
+    let type = '0';
+    let roomid_ = '';
+    if (roomid) {
+      const room = await this.roommodel.findOne({ name: roomid });
+      if (!room) {
+        throw new BusinessError(ErrorCode.DATA_NOT_EXIST, '房间号不存在');
+      }
+      // 取出用户的类型,根据用户类型返回相应信息
+      const userzjr_ = _.find(room.zjr, function(o) { return o === _user.uid; });
+      if (!userzjr_) {
+        throw new BusinessError(ErrorCode.USER_NOT_EXIST, '房间号内没有您的直播信息');
+      }
+      roomid_ = room.id;
+      type = '1';
+    }
+
+    // 取出用户的类型,根据用户类型返回相应信息
+    const state = uuid();
+    const key = `free:auth:state:${state}`;
+    const _menus = [];
+    for (const elm of user.menus) {
+      const _menu = await this.rmodel.findById({ _id: ObjectId(elm) });
+      if (_menu) {
+        _menus.push({ id: elm, role_name: _menu.role_name, url: _menu.url });
+      }
+    }
+    user.menus = JSON.stringify(_menus);
+    const newdata = { ...JSON.parse(JSON.stringify(user)), type, roomid_, roomname: roomid };
+    const token = await this.createJwt(newdata);
+    await this.app.redis.set(key, token, 'EX', 60 * 60 * 24);
+    return { key };
+  }
+
+  // 创建登录Token
+  async createJwtPwd(password) {
+    const { secret, expiresIn, issuer } = this.config.jwt;
+    const token = await jwt.sign(password, secret);
+    return token;
+  }
+
+  // 创建登录Token
+  async createJwt({ id, name, uid, phone, role, menus, remark, openid, deptname, type, roomid, roomname }) {
+    const { secret, expiresIn = '1d', issuer = role } = this.config.jwt;
+    const subject = phone;
+    const res = { id, uid, name, phone, role, menus, openid, remark, deptname, type, roomid, roomname };
+    const token = await jwt.sign(res, secret, { expiresIn, issuer, subject });
+    return token;
+  }
+
+  // 取得redis内token信息
+  async token({ key }) {
+    assert(key, 'key不能为空');
+    const token = await this.app.redis.get(key);
+    if (!token) {
+      throw new BusinessError(ErrorCode.SERVICE_FAULT, 'token已经过期');
+    }
+    return { token };
+  }
+
+  // 删除操作
+  async destroy({ key }) {
+    const res = await this.app.redis.del(key);
+    console.log(res);
+    return res;
+  }
+
+  // 程序用户登录
+  async trtclogin(data) {
+    const { roomId, phone, passwd } = data;
+    const room = await this.roommodel.findOne({ name: roomId });
+    if (!room) {
+      throw new BusinessError(ErrorCode.DATA_NOT_EXIST);
+    }
+    // 根据用户输入的手机号查询其他用户表中是否存在相应数据
+    const user = await this.model.findOne({ phone });
+    // 如果用户不存在抛出异常
+    if (!user) {
+      throw new BusinessError(ErrorCode.USER_NOT_EXIST);
+    }
+    const _user = await this.model.findOne({ phone }, '+passwd');
+    // 将用户输入的密码进行加密并与查询到的用户数据密码相比对
+    const pas = await this.createJwtPwd(passwd);
+    // 如果两个密码不一致抛出异常
+    if (pas !== _user.passwd.secret) {
+      throw new BusinessError(ErrorCode.BAD_PASSWORD);
+    }
+    if (_user.role === '4') {
+      throw new BusinessError(ErrorCode.ACCESS_DENIED);
+    }
+    // 取出用户的类型,根据用户类型返回相应信息
+    const user_ = _.find(room.zjr, function(o) { return o === _user.uid; });
+    if (!user_) {
+      throw new BusinessError(ErrorCode.USER_NOT_EXIST);
+    }
+    return { uid: _user.uid };
+  }
+
+
+}
+module.exports = LoginService;

+ 24 - 0
app/service/lookrecord.js

@@ -0,0 +1,24 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const moment = require('moment');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class LookrecordService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'lookrecord');
+    this.model = this.ctx.model.Lookrecord;
+  }
+
+  async create(data) {
+    data.createtime = moment().format('YYYY-MM-DD HH:mm:ss');
+    const res = await this.model.create(data);
+    return res;
+  }
+}
+
+module.exports = LookrecordService;

+ 151 - 0
app/service/lookuser.js

@@ -0,0 +1,151 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const moment = require('moment');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class LookuserService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'lookuser');
+    this.model = this.ctx.model.Lookuser;
+    this.rmodel = this.ctx.model.Lookrecord;
+    this.umodel = this.ctx.model.Roomuser;
+  }
+
+  async create(data) {
+    const { roomname, userid } = data;
+    const lookuser = await this.model.findOne({ roomname, userid });
+    const time = moment().format('YYYY-MM-DD HH:mm:ss');
+    if (!lookuser) {
+      data.createtime = time;
+      await this.model.create(data);
+    }
+    const newdata = { roomid: data.roomid, roomname: data.roomname, userid, username: data.username, createtime: time, type: '0', isonline: '1' };
+    await this.rmodel.create(newdata);
+  }
+
+  async update({ id }, data) {
+    const { switchrole } = data;
+    const lookuser = await this.model.findById(id);
+    if (!lookuser) {
+      throw new BusinessError(ErrorCode.DATA_NOT_EXIST);
+    }
+    lookuser.switchrole = switchrole;
+    const res = await lookuser.save();
+    if (res) {
+      if (switchrole === 'anchor') {
+        const { mq } = this.ctx;
+        if (mq) {
+          const exchange = 'switch_role_' + res.userid;
+          const parm = {
+            durable: true,
+            headers: {
+              userid: res.userid,
+            } };
+          await mq.fanout(exchange, res.userid, JSON.stringify(res), parm);
+        }
+      } else {
+        const url = `http://127.0.0.1:6666/api/stomp/exitroom?uid=${res.userid}&roomid=${res.roomname}`;
+        await this.ctx.curl(url, {
+          method: 'get',
+          headers: {
+            'content-type': 'application/json',
+          },
+        });
+      }
+    }
+    return res;
+  }
+
+  async roomcount(data) {
+    const { roomname } = data;
+    const total = await this.model.count({ roomname });
+    const onlinetotal = await this.model.count({ roomname, isonline: '1' });
+    return { total, onlinetotal };
+  }
+
+  async userswichrole(data) {
+    const { roomid, userid } = data;
+    const res = await this.model.findOne({ roomid, userid });
+    return res;
+  }
+
+  async updatexf(data) {
+    const { roomid, isxf, userid, hosname, deptname, level, major } = data;
+    const lookuser = await this.model.findOne({ roomid, userid });
+    if (!lookuser) {
+      throw new BusinessError(ErrorCode.DATA_NOT_EXIST);
+    }
+    lookuser.isxf = isxf;
+    lookuser.hosname = hosname;
+    lookuser.deptname = deptname;
+    lookuser.level = level;
+    lookuser.major = major;
+    const res = await lookuser.save();
+    return res;
+  }
+
+  async query({ skip, limit, ...info }) {
+    const total = await this.model.count(info);
+    const lusers = await this.model
+      .find(info)
+      .skip(Number(skip))
+      .limit(Number(limit));
+    const data = [];
+    for (const _luser of lusers) {
+      const luser = _.cloneDeep(JSON.parse(JSON.stringify(_luser)));
+      const user = await this.umodel.findById(_luser.userid);
+      if (user) {
+        luser.idnumber = user.number;
+        luser.isjc = user.isjc;
+        luser.isxf = user.isxf;
+        luser.address = user.address;
+        luser.age = user.age;
+        luser.gender = user.gender;
+        if (user.hosname) {
+          luser.hosname = user.hosname;
+        }
+        if (user.deptname) {
+          luser.deptname = user.deptname;
+        }
+        if (user.level) {
+          luser.level = user.level;
+        }
+        if (user.major) {
+          luser.major = user.major;
+        }
+      }
+      const lrecords = await this.rmodel.find({ roomid: _luser.roomid, userid: _luser.userid }).sort({ createtime: -1 }).limit(1);
+      if (lrecords.length > 0) {
+        const lrecord = lrecords[0];
+        luser.exittime = lrecord.createtime;
+        const start_date = moment(luser.createtime, 'YYYY-MM-DD HH:mm:ss');
+        const end_date = moment(lrecord.createtime, 'YYYY-MM-DD HH:mm:ss');
+        // 秒
+        const seconds = end_date.diff(start_date, 'seconds');
+        // 分钟
+        const mintus = Math.ceil(seconds / 60);
+        luser.looktime = mintus;
+      }
+      data.push(luser);
+    }
+    return { data, total };
+  }
+
+  async updateonline(data) {
+    const { roomid, userid, isonline } = data;
+    const lookuser = await this.model.findOne({ roomid, userid });
+    if (!lookuser) {
+      throw new BusinessError(ErrorCode.DATA_NOT_EXIST);
+    }
+    lookuser.isonline = isonline;
+    const res = await lookuser.save();
+    return res;
+  }
+}
+
+module.exports = LookuserService;

+ 18 - 0
app/service/news.js

@@ -0,0 +1,18 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const moment = require('moment');
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class NewsService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'news');
+    this.model = this.ctx.model.News;
+  }
+}
+
+module.exports = NewsService;

+ 18 - 0
app/service/question.js

@@ -0,0 +1,18 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class QuestionService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'question');
+    this.model = this.ctx.model.Question;
+  }
+
+}
+
+module.exports = QuestionService;

+ 76 - 0
app/service/questionnaire.js

@@ -0,0 +1,76 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class QuestionnaireService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'qusetionnaire');
+    this.questionnairemodel = this.ctx.model.Questionnaire;
+    this.questionmodel = this.ctx.model.Question;
+  }
+
+  // 插入问卷
+  async create(data) {
+    const { name, question } = data;
+    assert(name, '问卷名称不能为空');
+    const quedata = [];
+    for (const elm of question) {
+      const ques = await this.questionmodel.findById(elm);
+      if (ques) {
+        quedata.push(ques);
+      }
+    }
+    data.question = quedata;
+    return await this.questionnairemodel.create(data);
+  }
+
+  // 根据id删除问卷
+  async delete({ id }) {
+    await this.questionnairemodel.findByIdAndDelete(id);
+    return 'deleted';
+  }
+
+  // 根据id更新问卷信息
+  async update({ id }, data) {
+    const { name, num, type, question, status } = data;
+    const questionnaire = await this.questionnairemodel.findById(id);
+    if (name) {
+      questionnaire.name = name;
+    }
+    if (num) {
+      questionnaire.num = num;
+    }
+    if (status) {
+      questionnaire.status = status;
+    }
+    if (type) {
+      questionnaire.type = type;
+    }
+    if (question) {
+      questionnaire.question = question;
+    }
+    return await questionnaire.save();
+  }
+
+  // 查询
+  async query({ skip, limit, ...num }) {
+    const total = await this.questionnairemodel.count(num);
+    const data = await this.questionnairemodel.find(num).skip(Number(skip)).limit(Number(limit));
+    const result = { total, data };
+    return result;
+  }
+
+  // 查询详情
+  async show({ id }) {
+    const questionnaire = await this.questionnairemodel.findById(id);
+    return questionnaire;
+  }
+
+}
+
+module.exports = QuestionnaireService;

+ 17 - 0
app/service/role.js

@@ -0,0 +1,17 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class RoleService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'role');
+    this.model = this.ctx.model.Role;
+  }
+}
+
+module.exports = RoleService;

+ 210 - 0
app/service/room.js

@@ -0,0 +1,210 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class RoomService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'room');
+    this.model = this.ctx.model.Room;
+    this.rumodel = this.ctx.model.Roomuser;
+    this.lookmodel = this.ctx.model.Lookuser;
+  }
+
+  async create(data) {
+    const { name } = data;
+    const room_ = await this.model.findOne({ name });
+    if (room_) {
+      throw new BusinessError('此房间已经存在,请重新输入');
+    }
+    const roomuser = await this.rumodel.findById(data.anchorid);
+    if (!roomuser) {
+      throw new BusinessError(ErrorCode.DATA_NOT_EXIST);
+    }
+    data.username = roomuser.name;
+    const res = await this.model.create(data);
+    return res;
+  }
+
+  async findroomname(data) {
+    const { roomname } = data;
+    const res = await this.model.findOne({ name: roomname });
+    return res;
+  }
+
+  async query({ skip, limit, ...info }) {
+    const total = await this.model.count(info);
+    const rooms = await this.model
+      .find(info)
+      .skip(Number(skip))
+      .limit(Number(limit));
+    const data = [];
+    for (const _room of rooms) {
+      const room = _.cloneDeep(JSON.parse(JSON.stringify(_room)));
+      const number = await this.lookmodel.count({ roomid: room._id });
+      room.number = number;
+      data.push(room);
+    }
+    return { data, total };
+  }
+
+  // 接收录播地址
+  async startrecord(data) {
+    // 接收录播参数
+    const { stream_id } = data;
+    console.log('视频回调--->' + data);
+    if (stream_id) {
+      const arr = stream_id.split('_');
+      const id = arr[1];
+      console.log('id--->' + id);
+      const res = await this.model.findById(id);
+      if (res) {
+        res.stream_id = stream_id;
+        res.url = data.video_url;
+        res.file_id = data.file_id;
+        res.ishis = '1';
+        await res.save();
+      }
+    }
+  }
+
+  async updaterequid(id, requestid) {
+    const res = await this.model.findById(id);
+    if (res) {
+      res.requestId = requestid;
+      await res.save();
+    }
+    return res;
+  }
+
+  async updateanchor(id, otheid) {
+    const res = await this.model.findById(id);
+    if (res) {
+      res.otheid = otheid;
+      const result = await res.save();
+      if (result) {
+        const { mq } = this.ctx;
+        if (mq) {
+          const exchange = 'othe_publish_' + result.id;
+          const parm = {
+            durable: true,
+            headers: {
+              userid: result.id,
+            } };
+          await mq.fanout(exchange, result.id, JSON.stringify(result), parm);
+        }
+      }
+    }
+    return res;
+  }
+
+  async roomquest(data) {
+    const res = await this.model.findById(data.roomid);
+    if (!res) {
+      throw new BusinessError(ErrorCode.DATA_NOT_EXIST);
+    }
+    res.queid = data.queid;
+    res.isque = '1';
+    const result = await res.save();
+    if (result) {
+      const { mq } = this.ctx;
+      if (mq) {
+        const exchange = 'quest_publish_' + res.id;
+        const parm = {
+          durable: true,
+          headers: {
+            userid: res.id,
+          } };
+        await mq.fanout(exchange, res.id, JSON.stringify(res), parm);
+      }
+    }
+    return result;
+  }
+
+  async roomquestclose(data) {
+    const res = await this.model.findById(data.roomid);
+    if (!res) {
+      throw new BusinessError(ErrorCode.DATA_NOT_EXIST);
+    }
+    res.isque = '0';
+    const result = await res.save();
+    return result;
+  }
+
+  async updateshmai({ id, shmaiid }) {
+    const res = await this.model.findById(id);
+    if (res) {
+      res.shmaiid = shmaiid;
+      const result = await res.save();
+      if (result) {
+        const { mq } = this.ctx;
+        if (mq) {
+          const exchange = 'switch_shmai_' + id;
+          const parm = {
+            durable: true,
+            headers: {
+              userid: res.id,
+            } };
+          await mq.fanout(exchange, res.id, JSON.stringify(res), parm);
+        }
+      }
+    }
+    return res;
+  }
+
+  async switchzjr({ id, switchzjr }) {
+    const resmodel = await this.model.findById(id);
+    if (resmodel) {
+      resmodel.switchzjr = switchzjr;
+      const result = await resmodel.save();
+      if (result) {
+        const { mq } = this.ctx;
+        if (mq) {
+          const exchange = 'switch_zjr_' + id;
+          const parm = {
+            durable: true,
+            headers: {
+              userid: result.id,
+            } };
+          await mq.fanout(exchange, result.id, JSON.stringify(result), parm);
+        }
+      }
+    }
+    return resmodel;
+  }
+
+  async switchzb({ id, uid }) {
+    const resmodel = await this.model.findById(id);
+    if (resmodel) {
+      const switchzjr = resmodel.switchzjr;
+      resmodel.switchzjr = '';
+      const result = await resmodel.save();
+      if (result) {
+        let iszc = '0';
+        if (uid === resmodel.anchorid) {
+          iszc = '0';
+        } else {
+          iszc = '1';
+        }
+        const newdata = { id: result.id, switchzjr, uid, iszc };
+        const { mq } = this.ctx;
+        if (mq) {
+          const exchange = 'switch_zb_' + id;
+          const parm = {
+            durable: true,
+            headers: {
+              userid: result.id,
+            } };
+          await mq.fanout(exchange, result.id, JSON.stringify(newdata), parm);
+        }
+      }
+    }
+    return resmodel;
+  }
+}
+
+module.exports = RoomService;

+ 133 - 0
app/service/roomuser.js

@@ -0,0 +1,133 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class RoomuserService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'room_user');
+    this.model = this.ctx.model.Roomuser;
+    this.umodel = this.ctx.model.User;
+  }
+
+  async create(data) {
+    const { name, passwd } = data;
+    assert(name, '用户名不能为空');
+    assert(passwd, '密码不能为空');
+    const { phone } = data;
+    const has_phone = await this.model.findOne({ phone });
+    if (has_phone) {
+      throw new BusinessError('此手机号已被注册,请更换手机号');
+    }
+    const res = await this.model.create(data);
+    if (res) {
+      const newdata = {
+        name,
+        phone: data.phone,
+        passwd,
+        uid: res.id,
+        role: data.role,
+        hosname: data.hosname,
+        deptname: data.deptname,
+        remark: data.remark,
+      };
+      await this.ctx.service.user.create(newdata);
+    }
+    return res;
+  }
+
+  async update({ id }, data) {
+    const user = await this.model.findById(id);
+    const { phone } = data;
+    const phoneList = await this.model.find({ phone });
+    const is_has = phoneList.find(f => f.id !== id);
+    if (is_has) throw new BusinessError('此手机号已被注册,请更换手机号');
+    if (data.name) {
+      user.name = data.name;
+    }
+    if (data.role) {
+      user.role = data.role;
+    }
+    if (data.hosname) {
+      user.hosname = data.hosname;
+    }
+    if (data.deptname) {
+      user.deptname = data.deptname;
+    }
+    if (data.level) {
+      user.level = data.level;
+    }
+    if (data.title) {
+      user.title = data.title;
+    }
+    if (data.remark) {
+      user.remark = data.remark;
+    }
+    if (data.openid) {
+      user.openid = data.openid;
+    }
+    if (data.age) {
+      user.age = data.age;
+    }
+    if (data.gender) {
+      user.gender = data.gender;
+    }
+    if (data.idnumber) {
+      user.idnumber = data.idnumber;
+    }
+    if (data.major) {
+      user.major = data.major;
+    }
+    if (data.isjc) {
+      user.isjc = data.isjc;
+    }
+    if (data.isxf) {
+      user.isxf = data.isxf;
+    }
+    if (data.address) {
+      user.address = data.address;
+    }
+    const res = await user.save();
+    if (res) {
+      const uu = await this.umodel.findOne({ uid: user.id });
+      uu.name = data.name;
+      uu.deptname = data.deptname;
+      await uu.save();
+    }
+    return res;
+  }
+
+  async register(data) {
+    const { name, phone, openid } = data;
+    assert(name, '用户名不能为空');
+    assert(phone, '电话号码不能为空');
+    assert(openid, '微信openid不能为空');
+    const has_phone = await this.model.findOne({ phone });
+    if (has_phone) {
+      throw new BusinessError('此手机号已被注册,请更换手机号');
+    }
+    const res = await this.model.create(data);
+    if (res) {
+      const newdata = {
+        name,
+        phone: data.phone,
+        passwd: '12345678',
+        uid: res.id,
+        role: data.role,
+        openid,
+        hosname: data.hosname,
+        deptname: data.deptname,
+        remark: data.remark,
+      };
+      await this.ctx.service.user.create(newdata);
+    }
+    return res;
+  }
+
+}
+
+module.exports = RoomuserService;

+ 66 - 0
app/service/uploadquestion.js

@@ -0,0 +1,66 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+
+class UploadquestionService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'uploadquestion');
+    this.model = this.ctx.model.Uploadquestion;
+    this.umodel = this.ctx.model.Roomuser;
+    this.rmodel = this.ctx.model.Room;
+    this.questionnairemodel = this.ctx.model.Questionnaire;
+    this.lumodel = this.ctx.model.Lookuser;
+  }
+
+  // 完成度查询
+  async completion(data) {
+    const { type, typeid, roomid, questionnaireid } = data;
+    assert(type, '缺少部分信息项');
+    const datas = [];
+    const answertotal = '';
+    const alltotal = '';
+    // 如果是期查询
+    if (type === '0') {
+      const rooms = await this.rmodel.find();
+      for (const room of rooms) {
+        let upcount = 0;
+        if (room.queid) {
+          upcount = await this.model.count({ roomid: room.id });
+        }
+        const lcount = await this.lumodel.count({ roomid: room.id });
+        const newdata = { id: room.id, roomname: room.name, upcount, lcount };
+        datas.push(newdata);
+      }
+    } else if (type === '1') {
+      const ques = await this.questionnairemodel.find({ status: '1' });
+      for (const elm of ques) {
+        const upcount = await this.model.count({ questionnaireid: elm.id });
+        const newdata = { id: elm.id, name: elm.name, upcount };
+        datas.push(newdata);
+      }
+    }
+    const newdata = { data: datas };
+    return newdata;
+  }
+
+  async query({ skip, limit, ...info }) {
+    const total = await this.model.count(info);
+    const res = await this.model.find(info).skip(Number(skip)).limit(Number(limit));
+    const data = [];
+    for (const _res of res) {
+      const elm = _.cloneDeep(JSON.parse(JSON.stringify(_res)));
+      const stu = await this.umodel.findById(elm.userid);
+      elm.username = stu.name;
+      data.push(elm);
+    }
+    return { data, total };
+  }
+
+}
+
+module.exports = UploadquestionService;

+ 143 - 0
app/service/user.js

@@ -0,0 +1,143 @@
+'use strict';
+
+
+const assert = require('assert');
+const _ = require('lodash');
+const { ObjectId } = require('mongoose').Types;
+const { CrudService } = require('naf-framework-mongoose/lib/service');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+const jwt = require('jsonwebtoken');
+
+class UserService extends CrudService {
+  constructor(ctx) {
+    super(ctx, 'user');
+    this.model = this.ctx.model.User;
+  }
+
+  // 重写创建方法
+  async create(data) {
+    const { name, phone, passwd } = data;
+    console.log(data);
+    assert(name && phone && passwd, '缺少部分信息项');
+    assert(/^\d{11}$/i.test(phone), 'phone无效');
+    const user = await this.model.findOne({ phone });
+    if (user) {
+      throw new BusinessError(ErrorCode.DATA_EXISTED);
+    }
+    const newdata = data;
+    const pas = await this.createJwtPwd(passwd);
+    newdata.passwd = { secret: pas };
+    const res = await this.model.create(newdata);
+    return res;
+  }
+
+  // 创建登录Token
+  async createJwtPwd(password) {
+    const { secret, expiresIn, issuer } = this.config.jwt;
+    const token = await jwt.sign(password, secret);
+    return token;
+  }
+
+  // 重写修改方法
+  async update({ id }, data) {
+    const { name, phone, passwd, openid, role, menus, remark, uid, deptname } = data;
+    const user = await this.model.findById(id, '+passwd');
+    if (name) {
+      user.name = name;
+    }
+    if (phone) {
+      user.phone = phone;
+    }
+    if (passwd) {
+      const newpasswd = await this.createJwtPwd(passwd);
+      user.passwd = { secret: newpasswd };
+    }
+    if (openid) {
+      user.openid = openid;
+    }
+    if (role) {
+      user.role = role;
+    }
+    if (menus) {
+      user.menus = menus;
+    }
+    if (uid) {
+      user.uid = uid;
+    }
+
+    if (deptname) {
+      user.deptname = deptname;
+    }
+    if (remark) {
+      user.remark = remark;
+    }
+    await user.save();
+  }
+
+  // 用户修改密码
+  async uppasswd(data) {
+    const { id, oldpasswd, newpasswd } = data;
+    assert(id && oldpasswd && newpasswd, '缺少部分信息项');
+    // 根据用户id查询其他用户表中是否存在相应数据
+    const user = await this.model.findById(id, '+passwd');
+    // 如果用户不存在抛出异常
+    if (!user) {
+      throw new BusinessError(ErrorCode.USER_NOT_EXIST);
+    }
+    // 将用户输入的密码进行加密并与查询到的用户数据密码相比对
+    const _oldpasswd = await this.createJwtPwd(oldpasswd);
+    // 如果两个密码不一致抛出异常
+    if (_oldpasswd !== user.passwd.secret) {
+      throw new BusinessError(ErrorCode.BAD_PASSWORD);
+    }
+    const _newpasswd = await this.createJwtPwd(newpasswd);
+    user.passwd = { secret: _newpasswd };
+    await user.save();
+  }
+
+  async querymenus({ id }) {
+    const user = await this.model.findById(id);
+    if (!user) {
+      throw new BusinessError(ErrorCode.USER_NOT_EXIST);
+    }
+    const _menus = [];
+    for (const elm of user.menus) {
+      const _menu = await this.rmodel.findById({ _id: ObjectId(elm) });
+      if (_menu) {
+        _menus.push({ id: elm, role_name: _menu.role_name, url: _menu.url });
+      }
+    }
+    return { id, menus: _menus };
+  }
+
+  // 按条件更新方法
+  async updatebyuid({ id }, data) {
+    const user = await this.model.findOne({ uid: id });
+    if (user) {
+      user.name = data.name;
+      user.deptname = data.deptname;
+    }
+    await user.save();
+  }
+
+  // 按条件更新方法
+  async bind(data) {
+    const user = await this.model.findById(data.uid);
+    if (!user) {
+      throw new BusinessError(ErrorCode.USER_NOT_EXIST);
+    }
+    if (user.openid) {
+      throw new BusinessError(ErrorCode.USER_EXIST);
+    }
+    user.openid = data.openid;
+    return await user.save();
+  }
+
+  async findByOpenid(openid) {
+    const user = await this.model.findOne({ openid });
+    return user;
+  }
+
+}
+
+module.exports = UserService;

+ 227 - 0
app/service/weixin.js

@@ -0,0 +1,227 @@
+'use strict';
+
+const assert = require('assert');
+const uuid = require('uuid');
+const _ = require('lodash');
+const { BusinessError, ErrorCode } = require('naf-core').Error;
+const jwt = require('jsonwebtoken');
+const { AxiosService } = require('naf-framework-mongoose/lib/service');
+
+class WeixinAuthService extends AxiosService {
+  constructor(ctx) {
+    super(ctx, {}, _.get(ctx.app.config, 'wxapi'));
+  }
+
+  // 通过认证码获得用户信息
+  async fetch(code) {
+    // TODO:参数检查和默认参数处理
+    assert(code);
+    const { wxapi } = this.app.config;
+
+    const reqUrl = 'https://api.weixin.qq.com/sns/oauth2/access_token';
+    const params = {
+      appid: wxapi.appid,
+      secret: wxapi.appSecret,
+      code,
+      grant_type: 'authorization_code',
+    };
+    const res = await this.httpGet(reqUrl, params);
+
+    if (res.errcode && res.errcode !== 0) {
+      this.ctx.logger.error(`[WeixinAuthService] fetch open by code fail, errcode: ${res.errcode}, errmsg: ${res.errmsg}`);
+      throw new BusinessError(ErrorCode.SERVICE_FAULT, '获得微信认证信息失败');
+    }
+    // const { openid } = res;
+    return res;
+  }
+
+  // 通过openid获得用户信息
+  async fetchUnionID(openid) {
+    // TODO:参数检查和默认参数处理
+    assert(openid);
+    const appid = 'wxdf3ed83c095be97a';
+    const grant_type = 'client_credential';
+    const secret = '748df7c2a75077a79ae0c971b1638244';
+    // TODO: 获得用户信息
+    const url = 'http://wx.cc-lotus.info/api.weixin.qq.com/cgi-bin/token?appid=' + appid + '&grant_type=' + grant_type + '&secret=' + secret;
+    const res = await this.ctx.curl(url, {
+      method: 'get',
+      headers: {
+        'content-type': 'application/json',
+      },
+      dataType: 'json',
+    });
+    // console.debug('res: ', res);
+    if (res.errcode && res.errcode !== 0) {
+      this.ctx.logger.error(`[WeixinAuthService] fetch userinfo by openid fail, errcode: ${res.errcode}, errmsg: ${res.errmsg}`);
+      throw new BusinessError(ErrorCode.SERVICE_FAULT, '获得微信用户信息失败');
+    }
+    const token = res.access_token;
+    console.log(token);
+    const urlun = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token=' + token + '&openid=' + openid + '&lang=zh_CN';
+    const result = await this.ctx.curl(urlun, {
+      method: 'get',
+      headers: {
+        'content-type': 'application/json',
+      },
+      dataType: 'json',
+    });
+    // console.debug('res: ', res);
+    if (result.errcode && result.errcode !== 0) {
+      this.ctx.logger.error(`[WeixinAuthService] fetch userinfo by openid fail, errcode: ${res.errcode}, errmsg: ${res.errmsg}`);
+      throw new BusinessError(ErrorCode.SERVICE_FAULT, '获得微信用户信息失败');
+    }
+    return result;
+  }
+
+  async createJwt({ openid, nickname, subscribe }) {
+    const { secret, expiresIn = '1d', issuer = 'weixin' } = this.config.jwt;
+    const subject = openid;
+    const userinfo = { nickname, subscribe };
+    const token = await jwt.sign(userinfo, secret, { expiresIn, issuer, subject });
+    return token;
+  }
+  /**
+   * 创建二维码
+   * 随机生成二维码,并保存在Redis中,状态初始为pending
+   * 状态描述:
+   * pending - 等待扫码
+   * consumed - 使用二维码登录完成
+   * scand:token - Jwt登录凭证
+   */
+  async createQrcode() {
+    const qrcode = uuid();
+    const key = `visit:qrcode:group:${qrcode}`;
+    await this.app.redis.set(key, 'pending', 'EX', 600);
+    return qrcode;
+  }
+
+  /**
+   * 创建二维码
+   * 生成群二维码
+   * 状态描述:
+   * pending - 等待扫码
+   * consumed - 使用二维码登录完成
+   * scand:token - Jwt登录凭证
+   */
+  async createQrcodeGroup({ groupid }) {
+    const { authUrl = this.ctx.path } = this.app.config;
+    let backUrl;
+    if (authUrl.startsWith('http')) {
+      backUrl = encodeURI(`${authUrl}?state=${groupid}`);
+    } else {
+      backUrl = encodeURI(`${this.ctx.protocol}://${this.ctx.host}${authUrl}?state=${groupid}`);
+    }
+    console.log(backUrl);
+    return backUrl;
+  }
+
+  /**
+   * 扫码登录确认
+   */
+  async scanQrcode({ qrcode, token }) {
+    assert(qrcode, 'qrcode不能为空');
+    assert(token, 'token不能为空');
+    const key = `smart:qrcode:login:${qrcode}`;
+    const status = await this.app.redis.get(key);
+    if (!status) {
+      throw new BusinessError(ErrorCode.SERVICE_FAULT, '二维码已过期');
+    }
+    if (status !== 'pending') {
+      throw new BusinessError(ErrorCode.SERVICE_FAULT, '二维码状态无效');
+    }
+
+    // 验证Token
+    const { secret } = this.config.jwt;
+    const decoded = jwt.verify(token, secret, { issuer: 'weixin' });
+    this.ctx.logger.debug(`[weixin] qrcode login - ${decoded}`);
+
+    // TODO: 修改二维码状态,登录凭证保存到redis
+    await this.app.redis.set(key, `scaned:${token}`, 'EX', 600);
+
+    // TODO: 发布扫码成功消息
+    const { mq } = this.ctx;
+    const ex = 'qrcode.login';
+    if (mq) {
+      await mq.topic(ex, qrcode, 'scaned', { durable: true });
+    } else {
+      this.ctx.logger.error('!!!!!!没有配置MQ插件!!!!!!');
+    }
+  }
+
+  // 使用二维码换取登录凭证
+  async qrcodeLogin(qrcode) {
+    assert(qrcode, 'qrcode不能为空');
+    const key = `smart:qrcode:login:${qrcode}`;
+    const val = await this.app.redis.get(key);
+    if (!val) {
+      throw new BusinessError(ErrorCode.SERVICE_FAULT, '二维码已过期');
+    }
+    const [ status, token ] = val.split(':', 2);
+    if (status !== 'scaned' || !token) {
+      throw new BusinessError(ErrorCode.SERVICE_FAULT, '二维码状态无效');
+    }
+
+    // TODO: 修改二维码状态
+    await this.app.redis.set(key, 'consumed', 'EX', 600);
+
+    return { token };
+  }
+
+  // 检查二维码状态
+  async checkQrcode(qrcode) {
+    assert(qrcode, 'qrcode不能为空');
+    const key = `smart:qrcode:login:${qrcode}`;
+    const val = await this.app.redis.get(key);
+    if (!val) {
+      throw new BusinessError(ErrorCode.SERVICE_FAULT, '二维码已过期');
+    }
+    const [ status ] = val.split(':', 2);
+    return { status };
+  }
+
+  // 发送微信模板消息
+  async sendTemplateMsg(templateid, openid, first, keyword1, keyword2, remark, tourl) {
+    const url = this.ctx.app.config.sendDirMq + this.ctx.app.config.appid;
+    let _url = '';
+    if (tourl) {
+      _url = this.ctx.app.config.baseUrl + '/api/auth?state=1&redirect_uri=' + this.ctx.app.config.baseUrl + '/classinfo/&type=template&objid=' + tourl;
+    }
+    const requestData = { // 发送模板消息的数据
+      touser: openid,
+      template_id: templateid,
+      url: _url,
+      data: {
+        first: {
+          value: first,
+          color: '#173177',
+        },
+        keyword1: {
+          value: keyword1,
+          color: '#1d1d1d',
+        },
+        keyword2: {
+          value: keyword2,
+          color: '#1d1d1d',
+        },
+        remark: {
+          value: remark,
+          color: '#173177',
+        },
+      },
+    };
+    console.log('templateid---' + templateid);
+    console.log('openid---' + openid);
+    console.log('requestData---' + JSON.stringify(requestData));
+    await this.ctx.curl(url, {
+      method: 'post',
+      headers: {
+        'content-type': 'application/json',
+      },
+      dataType: 'json',
+      data: JSON.stringify(requestData),
+    });
+  }
+}
+
+module.exports = WeixinAuthService;

+ 101 - 0
app/service/wxpay.js

@@ -0,0 +1,101 @@
+'use strict';
+
+const xmlreader = require('xmlreader');
+const Service = require('egg').Service;
+
+class WxPayService extends Service {
+
+  constructor(ctx) {
+    super(ctx);
+    this.abc = 'wxdf3ed83c095be97a';
+  }
+
+  // 把金额转为分
+  async getmoney(money) {
+    return parseFloat(money) * 100;
+  }
+
+  // 随机字符串产生函数
+  async createNonceStr() {
+    return Math.random().toString(36).substr(2, 15);
+  }
+
+  // 时间戳产生函数
+  async createTimeStamp() {
+    return parseInt(new Date().getTime() / 1000) + '';
+  }
+
+  // 签名加密算法
+  async paysignjsapi(appid, body, mch_id, nonce_str, notify_url, out_trade_no, spbill_create_ip, total_fee, trade_type, mchkey, openid) {
+    const ret = {
+      appid,
+      mch_id,
+      nonce_str,
+      body,
+      notify_url,
+      out_trade_no,
+      spbill_create_ip,
+      total_fee,
+      trade_type,
+      openid,
+    };
+    let string = await this.raw(ret);
+    const key = mchkey;
+    string = string + '&key=' + key;
+    const crypto = require('crypto');
+    return crypto.createHash('md5').update(string, 'utf8').digest('hex')
+      .toUpperCase();
+  }
+  // 签名加密算法,第二次的签名
+  async paysignjsapifinal(appid, mch_id, prepayid, noncestr, timestamp, mchkey) {
+    const ret = {
+      appId: appid,
+      timeStamp: timestamp,
+      nonceStr: noncestr,
+      package: 'prepay_id=' + prepayid,
+      signType: 'MD5',
+    };
+    let string = await this.raw(ret);
+    const key = mchkey;
+    string = string + '&key=' + key;
+    const crypto = require('crypto');
+    return crypto.createHash('md5').update(string, 'utf8').digest('hex')
+      .toUpperCase();
+  }
+  async getXMLNodeValue(xml) {
+    // var tmp = xml.split("<"+node_name+">");
+    // console.log('tmp',tmp);
+    // var _tmp = tmp[1].split("</"+node_name+">");
+    // console.log('_tmp',_tmp);
+    // return _tmp[0];
+    const parseObj = await new Promise(function(resolve) {
+      xmlreader.read(xml, function(errors, response) {
+        if (errors !== null) {
+          console.log(errors);
+          return;
+        }
+        const prepay_id = response.xml.prepay_id.text();
+        resolve(prepay_id);
+      });
+    });
+    return parseObj;
+  }
+
+  async raw(args) {
+    let keys = Object.keys(args);
+    keys = keys.sort();
+    const newArgs = {};
+    keys.forEach(function(key) {
+      newArgs[key] = args[key];
+    });
+    let string = '';
+    for (const k in newArgs) {
+      string += '&' + k + '=' + newArgs[k];
+    }
+    string = string.substr(1);
+    return string;
+  }
+
+}
+
+module.exports = WxPayService;

+ 14 - 0
appveyor.yml

@@ -0,0 +1,14 @@
+environment:
+  matrix:
+    - nodejs_version: '10'
+
+install:
+  - ps: Install-Product node $env:nodejs_version
+  - npm i npminstall && node_modules\.bin\npminstall
+
+test_script:
+  - node --version
+  - npm --version
+  - npm run test
+
+build: off

+ 115 - 0
config/config.default.js

@@ -0,0 +1,115 @@
+/* eslint valid-jsdoc: "off" */
+
+'use strict';
+
+const { jwt } = require('./config.secret');
+
+/**
+ * @param {Egg.EggAppInfo} appInfo app info
+ */
+module.exports = appInfo => {
+  /**
+   * built-in config
+   * @type {Egg.EggAppConfig}
+   **/
+  const config = exports = {};
+
+  // use for cookie sign key, should change to your own and keep security
+  config.keys = appInfo.name + '_1587024572540_7742';
+
+  // add your middleware config here
+  config.middleware = [];
+
+  // add your user config here
+  const userConfig = {
+    // myAppName: 'egg',
+  };
+
+  // add your config here
+  config.cluster = {
+    listen: {
+      port: 5555,
+    },
+  };
+
+  config.wxapi = {
+    appid: 'wxdf3ed83c095be97a', // 微信公众号APPID
+    appSecret: '748df7c2a75077a79ae0c971b1638244',
+    baseUrl: 'http://wx.cc-lotus.info', // 微信网关地址
+    mchid: '1505364491', // 商户ID
+    mchkey: '1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik9', // 商户key
+    wxurl: 'https://free.liaoningdoupo.com/api/onlive/wxpayback',
+    payurl: 'https://api.mch.weixin.qq.com/pay/unifiedorder',
+  };
+
+  config.proxy = true;
+  config.hostHeaders = 'x-forwarded-host';
+
+  // 服务器发布路径
+  config.baseUrl = 'https://free.liaoningdoupo.com';
+  // 认证回调地址
+  config.authUrl = '/api/onlive/auth';
+
+  // 直播appid与key
+  config.sdkappid = 1400414461;
+  config.secretkey = '9726ce6e54b766c88903218c189dbcd11e7030613c076ff21bc0cc56c8072f24';
+
+  config.mongoose = {
+    url: 'mongodb://localhost:27017/liveplatform',
+    options: {
+      user: 'admin',
+      pass: 'admin',
+      authSource: 'admin',
+      useNewUrlParser: true,
+      useCreateIndex: true,
+      useUnifiedTopology: true,
+    },
+  };
+
+  // redis config
+  config.redis = {
+    client: {
+      port: 6379, // Redis port
+      host: '127.0.0.1', // Redis host
+      password: 123456,
+      db: 0,
+    },
+  };
+
+  config.amqp = {
+    client: {
+      hostname: '127.0.0.1',
+      username: 'live',
+      password: 'live',
+      vhost: 'live',
+    },
+    app: true,
+    agent: true,
+  };
+
+  // 安全配置
+  config.security = {
+    csrf: {
+      // ignoreJSON: true, // 默认为 false,当设置为 true 时,将会放过所有 content-type 为 `application/json` 的请求
+      enable: false,
+    },
+  };
+  // // JWT config
+  config.jwt = {
+    ...jwt,
+    expiresIn: '1d',
+    issuer: 'jobs',
+  };
+
+  config.view = {
+    defaultViewEngine: 'nunjucks',
+    mapping: {
+      '.njk': 'nunjucks',
+    },
+  };
+
+  return {
+    ...config,
+    ...userConfig,
+  };
+};

+ 35 - 0
config/config.local.js

@@ -0,0 +1,35 @@
+'use strict';
+
+module.exports = () => {
+  const config = (exports = {});
+
+  config.logger = {
+    level: 'DEBUG',
+    consoleLevel: 'DEBUG',
+  };
+
+  config.mongoose = {
+    url: 'mongodb://localhost:27017/liveplatform',
+    options: {
+      user: 'demo',
+      pass: 'demo',
+      authSource: 'admin',
+      useNewUrlParser: true,
+      useCreateIndex: true,
+      useUnifiedTopology: true,
+    },
+  };
+
+  config.amqp = {
+    client: {
+      hostname: '127.0.0.1',
+      username: 'wy',
+      password: '1',
+      vhost: 'smart',
+    },
+    app: true,
+    agent: true,
+  };
+
+  return config;
+};

+ 34 - 0
config/config.prod.js

@@ -0,0 +1,34 @@
+'use strict';
+
+module.exports = () => {
+  const config = exports = {};
+
+  config.logger = {
+    // level: 'DEBUG',
+    // consoleLevel: 'DEBUG',
+  };
+
+  config.mongoose = {
+    url: 'mongodb://localhost:27017/liveplatform',
+    options: {
+      user: 'admin',
+      pass: 'admin',
+      authSource: 'admin',
+      useNewUrlParser: true,
+      useCreateIndex: true,
+      useUnifiedTopology: true,
+    },
+  };
+
+  // redis config
+  config.redis = {
+    client: {
+      port: 6379, // Redis port
+      host: '127.0.0.1', // Redis host
+      password: 123456,
+      db: 0,
+    },
+  };
+
+  return config;
+};

+ 7 - 0
config/config.secret.js

@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = {
+  jwt: {
+    secret: 'Ziyouyanfa!@#',
+  },
+};

+ 16 - 0
config/plugin.js

@@ -0,0 +1,16 @@
+'use strict';
+
+exports.multiTenancy = {
+  enable: false,
+};
+
+exports.redis = {
+  enable: true,
+  package: 'egg-redis',
+};
+
+/** @type Egg.EggPlugin */
+exports.amqp = {
+  enable: true,
+  package: 'egg-naf-amqp',
+};

+ 17 - 0
ecosystem.config.js

@@ -0,0 +1,17 @@
+'use strict';
+
+const app = 'service-onlive';
+module.exports = {
+  apps: [{
+    name: app, // 应用名称
+    script: './server.js', // 实际启动脚本
+    out: `./logs/${app}.log`,
+    error: `./logs/${app}.err`,
+    watch: [ // 监控变化的目录,一旦变化,自动重启
+      'app', 'config',
+    ],
+    env: {
+      NODE_ENV: 'production', // 环境参数,当前指定为生产环境
+    },
+  }],
+};

+ 5 - 0
jsconfig.json

@@ -0,0 +1,5 @@
+{
+  "include": [
+    "**/*"
+  ]
+}

+ 249 - 0
logs/service-onlive/common-error.log

@@ -0,0 +1,249 @@
+2020-06-08 13:14:09,517 ERROR 832 [-/127.0.0.1/-/196ms POST /api/onlive/roomuser] nodejs.ValidationError: User validation failed: passwd: Cast to Embedded failed for value "111" at path "passwd"
+    at model.Document.invalidate (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:2574:32)
+    at model.$set (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:1252:12)
+    at model._handleIndex (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:979:14)
+    at model.$set (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:920:22)
+    at model.Document (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:137:12)
+    at model.Model (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:106:12)
+    at new model (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:4702:15)
+    at toExecute.push.callback (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3075:22)
+    at toExecute.forEach (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3111:7)
+    at Array.forEach (<anonymous>)
+    at cb (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3110:15)
+    at Promise (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:5)
+    at new Promise (<anonymous>)
+    at promiseOrCallback (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\helpers\promiseOrCallback.js:30:10)
+    at Function.create (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3045:10)
+    at RoomuserService.create (D:\work_vue\zhzb\service-onlive\app\service\roomuser.js:37:25)
+errors: {"passwd":{"stringValue":"\"111\"","kind":"Embedded","value":"111","path":"passwd","reason":{"path":"passwd"}}}
+_message: "User validation failed"
+pid: 832
+hostname: WWITCTGXB9LYIHA
+
+2020-06-08 13:19:48,489 ERROR 12020 [-/127.0.0.1/-/91ms POST /api/onlive/roomuser] nodejs.ValidationError: User validation failed: passwd: Cast to Embedded failed for value "111" at path "passwd"
+    at model.Document.invalidate (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:2574:32)
+    at model.$set (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:1252:12)
+    at model._handleIndex (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:979:14)
+    at model.$set (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:920:22)
+    at model.Document (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:137:12)
+    at model.Model (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:106:12)
+    at new model (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:4702:15)
+    at toExecute.push.callback (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3075:22)
+    at toExecute.forEach (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3111:7)
+    at Array.forEach (<anonymous>)
+    at cb (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3110:15)
+    at Promise (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:5)
+    at new Promise (<anonymous>)
+    at promiseOrCallback (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\helpers\promiseOrCallback.js:30:10)
+    at Function.create (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3045:10)
+    at RoomuserService.create (D:\work_vue\zhzb\service-onlive\app\service\roomuser.js:37:25)
+errors: {"passwd":{"stringValue":"\"111\"","kind":"Embedded","value":"111","path":"passwd","reason":{"path":"passwd"}}}
+_message: "User validation failed"
+pid: 12020
+hostname: WWITCTGXB9LYIHA
+
+2020-07-02 09:47:30,783 ERROR 9288 [-/127.0.0.1/-/21ms GET /api/onlive/room/startrecord] nodejs.TypeError: Cannot read property 'split' of undefined
+    at RoomService.startrecord (D:\work_vue\zhzb\service-onlive\app\service\room.js:59:27)
+    at RoomController.startrecord (D:\work_vue\zhzb\service-onlive\app\controller\room.js:26:37)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\utils\index.js:44:21)
+    at Object.classControllerMiddleware (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\loader\mixin\controller.js:87:20)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\utils.js:12:21)
+    at wrappedController (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\egg_router.js:322:18)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at next (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:45:18)
+    at D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:190:18
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:36:12
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:195:33)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\egg-development\app\middleware\egg_loader_trace.js:9:56
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at i18n (D:\work_vue\zhzb\service-onlive\node_modules\egg-i18n\app\middleware\i18n.js:13:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at dta (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\dta.js:12:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at xframe (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\xframe.js:7:11)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+
+pid: 9288
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 14:58:18,111 ERROR 11004 [-/127.0.0.1/-/50ms POST /api/onlive/room/switchzjr] nodejs.TypeError: this.model.save is not a function
+    at RoomService.switchzjr (D:\work_vue\zhzb\service-onlive\app\service\room.js:160:34)
+    at RoomController.switchzjr (D:\work_vue\zhzb\service-onlive\app\controller\room.js:177:37)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\utils\index.js:44:21)
+    at Object.classControllerMiddleware (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\loader\mixin\controller.js:87:20)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\utils.js:12:21)
+    at wrappedController (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\egg_router.js:322:18)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at next (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:45:18)
+    at D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:190:18
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:36:12
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:195:33)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\egg-development\app\middleware\egg_loader_trace.js:9:56
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at i18n (D:\work_vue\zhzb\service-onlive\node_modules\egg-i18n\app\middleware\i18n.js:13:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at dta (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\dta.js:12:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at xframe (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\xframe.js:7:11)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+
+pid: 11004
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:11:03,072 ERROR 11804 [-/127.0.0.1/-/126ms POST /api/onlive/room/switchzjr] nodejs.ReferenceError: res is not defined
+    at RoomService.switchzjr (D:\work_vue\zhzb\service-onlive\app\service\room.js:173:23)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+
+pid: 11804
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:11:40,527 ERROR 9572 [-/127.0.0.1/-/126ms POST /api/onlive/room/switchzjr] nodejs.ReferenceError: res is not defined
+    at RoomService.switchzjr (D:\work_vue\zhzb\service-onlive\app\service\room.js:175:37)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+
+pid: 9572
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:12:16,613 ERROR 13060 [-/127.0.0.1/-/162ms POST /api/onlive/room/switchzjr] nodejs.ReferenceError: res is not defined
+    at RoomService.switchzjr (D:\work_vue\zhzb\service-onlive\app\service\room.js:179:5)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+
+pid: 13060
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:17:33,042 ERROR 11276 [-/127.0.0.1/-/85ms POST /api/onlive/room/switchzjr] nodejs.TypeError: resmodel.save is not a function
+    at RoomService.switchzjr (D:\work_vue\zhzb\service-onlive\app\service\room.js:166:37)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+
+pid: 11276
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:18:59,419 ERROR 12044 [-/127.0.0.1/-/3845ms POST /api/onlive/room/switchzjr] nodejs.MongoError: Updating the path 'meta' would create a conflict at 'meta'
+    at Function.create (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\error.js:51:12)
+    at toError (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\utils.js:149:22)
+    at coll.s.topology.update (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\operations\common_functions.js:376:39)
+    at handler (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\sdam\topology.js:913:24)
+    at fn (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\connection_pool.js:356:13)
+    at handleOperationResult (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\sdam\server.js:489:5)
+    at MessageStream.messageHandler (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\connection.js:270:5)
+    at emitOne (events.js:116:13)
+    at MessageStream.emit (events.js:211:7)
+    at processIncomingData (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\message_stream.js:144:12)
+    at MessageStream._write (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\message_stream.js:42:5)
+    at doWrite (_stream_writable.js:397:12)
+    at writeOrBuffer (_stream_writable.js:383:5)
+    at MessageStream.Writable.write (_stream_writable.js:290:11)
+    at Socket.ondata (_stream_readable.js:639:20)
+    at emitOne (events.js:116:13)
+    at Socket.emit (events.js:211:7)
+    at addChunk (_stream_readable.js:263:12)
+    at readableAddChunk (_stream_readable.js:250:11)
+    at Socket.Readable.push (_stream_readable.js:208:10)
+    at TCP.onread (net.js:597:20)
+driver: true
+name: "MongoError"
+index: 0
+code: 40
+pid: 12044
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:19:52,733 ERROR 8376 [-/127.0.0.1/-/137ms POST /api/onlive/room/switchzjr] nodejs.MongoError: Updating the path 'meta' would create a conflict at 'meta'
+    at Function.create (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\error.js:51:12)
+    at toError (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\utils.js:149:22)
+    at coll.s.topology.update (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\operations\common_functions.js:376:39)
+    at handler (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\sdam\topology.js:913:24)
+    at fn (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\connection_pool.js:356:13)
+    at handleOperationResult (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\sdam\server.js:489:5)
+    at MessageStream.messageHandler (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\connection.js:270:5)
+    at emitOne (events.js:116:13)
+    at MessageStream.emit (events.js:211:7)
+    at processIncomingData (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\message_stream.js:144:12)
+    at MessageStream._write (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\message_stream.js:42:5)
+    at doWrite (_stream_writable.js:397:12)
+    at writeOrBuffer (_stream_writable.js:383:5)
+    at MessageStream.Writable.write (_stream_writable.js:290:11)
+    at Socket.ondata (_stream_readable.js:639:20)
+    at emitOne (events.js:116:13)
+    at Socket.emit (events.js:211:7)
+    at addChunk (_stream_readable.js:263:12)
+    at readableAddChunk (_stream_readable.js:250:11)
+    at Socket.Readable.push (_stream_readable.js:208:10)
+    at TCP.onread (net.js:597:20)
+driver: true
+name: "MongoError"
+index: 0
+code: 40
+pid: 8376
+hostname: WWITCTGXB9LYIHA
+
+2020-07-21 19:54:20,745 ERROR 12016 [-/127.0.0.1/-/41ms POST /api/onlive/trtclogin] nodejs.SyntaxError: Unexpected token o in JSON at position 1
+    at JSON.parse (<anonymous>)
+    at LoginService.trtclogin (D:\work_vue\zhzb\service-onlive\app\service\login.js:91:22)
+    at LoginController.trtclogin (D:\work_vue\zhzb\service-onlive\app\controller\login.js:35:36)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\utils\index.js:44:21)
+    at Object.classControllerMiddleware (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\loader\mixin\controller.js:87:20)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\utils.js:12:21)
+    at wrappedController (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\egg_router.js:322:18)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at next (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:45:18)
+    at D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:190:18
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:36:12
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:195:33)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\egg-development\app\middleware\egg_loader_trace.js:9:56
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at i18n (D:\work_vue\zhzb\service-onlive\node_modules\egg-i18n\app\middleware\i18n.js:13:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at dta (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\dta.js:12:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at xframe (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\xframe.js:7:11)
+
+pid: 12016
+hostname: WWITCTGXB9LYIHA
+
+2020-07-29 16:42:10,067 ERROR 6988 nodejs.EPERMError: Error watching file for changes: EPERM
+    at _errnoException (util.js:992:11)
+    at FSEvent.FSWatcher._handle.onchange (fs.js:1359:9)
+code: "EPERM"
+errno: "EPERM"
+syscall: "Error watching file for changes:"
+filename: null
+dir: "D:\\work_vue\\zhzb\\service-onlive\\app\\io\\controller"
+name: "EPERMError"
+pid: 6988
+hostname: WWITCTGXB9LYIHA
+
+2020-07-29 16:42:14,301 ERROR 6988 nodejs.EPERMError: Error watching file for changes: EPERM
+    at _errnoException (util.js:992:11)
+    at FSEvent.FSWatcher._handle.onchange (fs.js:1359:9)
+code: "EPERM"
+errno: "EPERM"
+syscall: "Error watching file for changes:"
+filename: null
+dir: "D:\\work_vue\\zhzb\\service-onlive\\app\\io"
+name: "EPERMError"
+pid: 6988
+hostname: WWITCTGXB9LYIHA
+
+2020-07-29 17:12:35,283 ERROR 6988 nodejs.unhandledExceptionError: read ECONNRESET
+    at _errnoException (util.js:992:11)
+    at TCP.onread (net.js:618:25)
+code: "ECONNRESET"
+errno: "ECONNRESET"
+syscall: "read"
+name: "unhandledExceptionError"
+pid: 6988
+hostname: WWITCTGXB9LYIHA
+

File diff suppressed because it is too large
+ 1155 - 0
logs/service-onlive/egg-agent.log


+ 600 - 0
logs/service-onlive/egg-schedule.log

@@ -0,0 +1,600 @@
+2020-06-04 18:26:47,464 INFO 8532 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-04 18:26:47,464 INFO 8532 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-04 18:26:47,464 INFO 8532 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-04 18:26:48,507 INFO 10264 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 36191497ms at 2020-06-05 04:30:00.004
+2020-06-04 18:26:48,508 INFO 10264 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 19991493ms at 2020-06-05 00:00:00.001
+2020-06-04 18:26:48,508 INFO 10264 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 19992492ms at 2020-06-05 00:00:01.000
+2020-06-08 09:31:09,400 INFO 8632 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 09:31:09,400 INFO 8632 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 09:31:09,400 INFO 8632 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 09:31:10,674 INFO 6968 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 68329333ms at 2020-06-09 04:30:00.007
+2020-06-08 09:31:10,675 INFO 6968 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 52129326ms at 2020-06-09 00:00:00.001
+2020-06-08 09:31:10,676 INFO 6968 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 52130325ms at 2020-06-09 00:00:01.001
+2020-06-08 09:31:39,603 INFO 8480 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 09:31:39,603 INFO 8480 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 09:31:39,603 INFO 8480 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 09:51:55,353 INFO 3444 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 09:51:55,353 INFO 3444 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 09:51:55,353 INFO 3444 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 09:51:58,363 INFO 7552 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 09:51:58,364 INFO 7552 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 09:51:58,364 INFO 7552 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 09:52:35,252 INFO 8424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 09:52:35,252 INFO 8424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 09:52:35,252 INFO 8424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 10:17:29,785 INFO 8784 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 10:17:29,785 INFO 8784 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 10:17:29,785 INFO 8784 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 10:17:32,693 INFO 9880 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 10:17:32,693 INFO 9880 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 10:17:32,693 INFO 9880 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 10:24:34,735 INFO 9900 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 10:24:34,735 INFO 9900 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 10:24:34,735 INFO 9900 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 10:24:37,689 INFO 9732 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 10:24:37,689 INFO 9732 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 10:24:37,689 INFO 9732 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 10:24:54,181 INFO 9544 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 10:24:54,181 INFO 9544 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 10:24:54,181 INFO 9544 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 10:27:47,334 INFO 6424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 10:27:47,334 INFO 6424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 10:27:47,334 INFO 6424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 11:25:25,117 INFO 10976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 11:25:25,118 INFO 10976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 11:25:25,118 INFO 10976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 11:25:54,036 INFO 10004 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 11:25:54,037 INFO 10004 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 11:25:54,037 INFO 10004 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 13:13:57,946 INFO 832 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 13:13:57,946 INFO 832 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 13:13:57,946 INFO 832 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 13:15:59,722 INFO 8792 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 13:15:59,722 INFO 8792 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 13:15:59,722 INFO 8792 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 13:16:02,720 INFO 12020 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 13:16:02,720 INFO 12020 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 13:16:02,720 INFO 12020 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 13:20:50,486 INFO 11620 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 13:20:50,486 INFO 11620 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 13:20:50,486 INFO 11620 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 13:20:53,580 INFO 10624 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 13:20:53,580 INFO 10624 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 13:20:53,580 INFO 10624 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 13:48:38,270 INFO 11976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 13:48:38,270 INFO 11976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 13:48:38,270 INFO 11976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-08 15:09:02,873 INFO 11040 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-08 15:09:02,873 INFO 11040 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-08 15:09:02,873 INFO 11040 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-09 18:01:31,677 INFO 8512 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-09 18:01:31,678 INFO 8512 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-09 18:01:31,678 INFO 8512 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-09 18:01:32,994 INFO 13256 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 37707013ms at 2020-06-10 04:30:00.006
+2020-06-09 18:01:32,994 INFO 13256 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 21507006ms at 2020-06-10 00:00:00.000
+2020-06-09 18:01:32,995 INFO 13256 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 21508005ms at 2020-06-10 00:00:01.000
+2020-06-11 14:31:24,613 INFO 5164 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-11 14:31:24,613 INFO 5164 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-11 14:31:24,613 INFO 5164 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-11 14:31:26,760 INFO 10976 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 50313247ms at 2020-06-12 04:30:00.007
+2020-06-11 14:31:26,761 INFO 10976 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 34113239ms at 2020-06-12 00:00:00.000
+2020-06-11 14:31:26,762 INFO 10976 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 34114239ms at 2020-06-12 00:00:01.001
+2020-06-11 15:07:52,856 INFO 12048 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-11 15:07:52,856 INFO 12048 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-11 15:07:52,856 INFO 12048 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 09:19:56,382 INFO 9944 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 09:19:56,382 INFO 9944 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 09:19:56,382 INFO 9944 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 09:19:57,583 INFO 3536 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 69002421ms at 2020-06-17 04:30:00.004
+2020-06-16 09:19:57,584 INFO 3536 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 52802416ms at 2020-06-17 00:00:00.000
+2020-06-16 09:19:57,585 INFO 3536 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 52803416ms at 2020-06-17 00:00:01.001
+2020-06-16 09:20:25,734 INFO 3232 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 09:20:25,734 INFO 3232 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 09:20:25,734 INFO 3232 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 09:20:28,621 INFO 11072 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 09:20:28,621 INFO 11072 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 09:20:28,621 INFO 11072 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 10:18:58,050 INFO 11640 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 10:18:58,050 INFO 11640 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 10:18:58,050 INFO 11640 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 10:24:48,913 INFO 13244 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 10:24:48,913 INFO 13244 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 10:24:48,913 INFO 13244 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 10:24:52,140 INFO 8780 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 10:24:52,140 INFO 8780 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 10:24:52,140 INFO 8780 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 10:36:53,616 INFO 6612 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 10:36:53,616 INFO 6612 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 10:36:53,616 INFO 6612 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 10:37:14,305 INFO 7084 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 10:37:14,305 INFO 7084 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 10:37:14,305 INFO 7084 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 10:38:06,855 INFO 13344 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 10:38:06,855 INFO 13344 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 10:38:06,855 INFO 13344 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 11:12:59,825 INFO 13120 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 11:12:59,825 INFO 13120 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 11:12:59,825 INFO 13120 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 11:13:08,299 INFO 904 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 11:13:08,299 INFO 904 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 11:13:08,299 INFO 904 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 11:13:14,775 INFO 13236 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 11:13:14,775 INFO 13236 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 11:13:14,775 INFO 13236 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 11:23:30,809 INFO 8168 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 11:23:30,809 INFO 8168 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 11:23:30,810 INFO 8168 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 14:04:34,617 INFO 3452 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 14:04:34,617 INFO 3452 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 14:04:34,617 INFO 3452 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 14:04:39,079 INFO 10448 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 14:04:39,080 INFO 10448 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 14:04:39,080 INFO 10448 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 17:56:52,458 INFO 10432 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 17:56:52,458 INFO 10432 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 17:56:52,458 INFO 10432 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 17:56:57,331 INFO 14308 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 17:56:57,331 INFO 14308 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 17:56:57,331 INFO 14308 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 17:58:19,431 INFO 11120 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 17:58:19,431 INFO 11120 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 17:58:19,431 INFO 11120 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 17:58:46,764 INFO 9024 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 17:58:46,765 INFO 9024 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 17:58:46,765 INFO 9024 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 17:59:59,976 INFO 7368 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 17:59:59,976 INFO 7368 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 17:59:59,976 INFO 7368 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 18:00:33,300 INFO 13200 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 18:00:33,300 INFO 13200 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 18:00:33,300 INFO 13200 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 18:00:33,811 INFO 11120 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 37766193ms at 2020-06-17 04:30:00.004
+2020-06-16 18:00:33,812 INFO 11120 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 21566188ms at 2020-06-17 00:00:00.000
+2020-06-16 18:00:33,812 INFO 11120 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 21567188ms at 2020-06-17 00:00:01.000
+2020-06-16 18:13:21,126 INFO 10000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 18:13:21,126 INFO 10000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 18:13:21,126 INFO 10000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 18:13:24,126 INFO 6960 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 18:13:24,126 INFO 6960 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 18:13:24,126 INFO 6960 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 18:15:39,628 INFO 6668 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 18:15:39,628 INFO 6668 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 18:15:39,628 INFO 6668 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 18:15:43,086 INFO 12496 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 18:15:43,086 INFO 12496 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 18:15:43,086 INFO 12496 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 18:16:06,509 INFO 12552 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 18:16:06,509 INFO 12552 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 18:16:06,509 INFO 12552 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 18:16:09,373 INFO 10696 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 18:16:09,373 INFO 10696 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 18:16:09,373 INFO 10696 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-16 18:17:51,206 INFO 7424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-16 18:17:51,206 INFO 7424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-16 18:17:51,206 INFO 7424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-19 16:19:47,113 INFO 11804 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-19 16:19:47,113 INFO 11804 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-19 16:19:47,113 INFO 11804 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-19 16:19:48,656 INFO 1004 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 43811350ms at 2020-06-20 04:30:00.006
+2020-06-19 16:19:48,657 INFO 1004 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 27611343ms at 2020-06-20 00:00:00.000
+2020-06-19 16:19:48,657 INFO 1004 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 27612343ms at 2020-06-20 00:00:01.000
+2020-06-19 16:34:23,446 INFO 11084 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-19 16:34:23,446 INFO 11084 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-19 16:34:23,446 INFO 11084 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-28 09:31:11,527 INFO 976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-06-28 09:31:11,527 INFO 976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-06-28 09:31:11,527 INFO 976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-06-28 09:31:12,791 INFO 7572 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 68327215ms at 2020-06-29 04:30:00.006
+2020-06-28 09:31:12,792 INFO 7572 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 52127209ms at 2020-06-29 00:00:00.001
+2020-06-28 09:31:12,793 INFO 7572 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 52128208ms at 2020-06-29 00:00:01.001
+2020-07-01 00:34:58,366 INFO 8340 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-01 00:34:58,366 INFO 8340 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-01 00:34:58,367 INFO 8340 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-01 00:34:58,988 INFO 11088 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 14101016ms at 2020-07-01 04:30:00.004
+2020-07-01 00:34:58,989 INFO 11088 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 84301012ms at 2020-07-02 00:00:00.001
+2020-07-01 00:34:58,991 INFO 11088 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 84302010ms at 2020-07-02 00:00:01.001
+2020-07-01 13:48:27,589 INFO 6572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-01 13:48:27,589 INFO 6572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-01 13:48:27,589 INFO 6572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-01 13:48:29,214 INFO 10752 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 52890794ms at 2020-07-02 04:30:00.008
+2020-07-01 13:48:29,215 INFO 10752 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 36690786ms at 2020-07-02 00:00:00.001
+2020-07-01 13:48:29,216 INFO 10752 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 36691785ms at 2020-07-02 00:00:01.001
+2020-07-01 22:52:21,979 INFO 6064 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-01 22:52:21,979 INFO 6064 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-01 22:52:21,979 INFO 6064 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-01 22:52:25,095 INFO 7960 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 20254910ms at 2020-07-02 04:30:00.005
+2020-07-01 22:52:25,095 INFO 7960 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 4054905ms at 2020-07-02 00:00:00.000
+2020-07-01 22:52:25,096 INFO 7960 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 4055905ms at 2020-07-02 00:00:01.001
+2020-07-01 22:53:22,108 INFO 10236 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-01 22:53:22,108 INFO 10236 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-01 22:53:22,108 INFO 10236 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-01 22:53:26,602 INFO 9088 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-01 22:53:26,602 INFO 9088 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-01 22:53:26,602 INFO 9088 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-01 23:04:46,013 INFO 8080 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-01 23:04:46,013 INFO 8080 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-01 23:04:46,013 INFO 8080 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-01 23:04:50,882 INFO 7296 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-01 23:04:50,883 INFO 7296 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-01 23:04:50,883 INFO 7296 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-01 23:05:25,654 INFO 10000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-01 23:05:25,654 INFO 10000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-01 23:05:25,654 INFO 10000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-01 23:05:33,189 INFO 9572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-01 23:05:33,189 INFO 9572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-01 23:05:33,189 INFO 9572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 09:11:48,034 INFO 9572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 09:11:48,034 INFO 9572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 09:11:48,034 INFO 9572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 09:11:56,792 INFO 1140 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 69483215ms at 2020-07-03 04:30:00.007
+2020-07-02 09:11:56,793 INFO 1140 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 53283208ms at 2020-07-03 00:00:00.001
+2020-07-02 09:11:56,794 INFO 1140 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 53284207ms at 2020-07-03 00:00:01.001
+2020-07-02 09:21:00,248 INFO 9804 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 09:21:00,248 INFO 9804 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 09:21:00,248 INFO 9804 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 09:22:22,942 INFO 10300 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 09:22:22,942 INFO 10300 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 09:22:22,942 INFO 10300 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 09:22:28,056 INFO 8696 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 09:22:28,057 INFO 8696 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 09:22:28,057 INFO 8696 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 09:27:27,659 INFO 10780 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 09:27:27,659 INFO 10780 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 09:27:27,659 INFO 10780 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 09:34:43,900 INFO 6936 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 09:34:43,900 INFO 6936 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 09:34:43,900 INFO 6936 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 09:34:48,987 INFO 10600 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 09:34:48,987 INFO 10600 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 09:34:48,987 INFO 10600 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 09:40:41,423 INFO 2988 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 09:40:41,423 INFO 2988 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 09:40:41,423 INFO 2988 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 09:41:48,747 INFO 3716 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 09:41:48,747 INFO 3716 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 09:41:48,747 INFO 3716 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 09:46:01,041 INFO 6756 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 09:46:01,041 INFO 6756 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 09:46:01,041 INFO 6756 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 09:46:19,961 INFO 9288 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 09:46:19,961 INFO 9288 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 09:46:19,961 INFO 9288 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 10:00:46,640 INFO 7600 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 10:00:46,640 INFO 7600 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 10:00:46,640 INFO 7600 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 10:01:32,903 INFO 10920 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 10:01:32,903 INFO 10920 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 10:01:32,903 INFO 10920 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 10:01:38,091 INFO 10768 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 10:01:38,091 INFO 10768 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 10:01:38,091 INFO 10768 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 14:17:37,428 INFO 8304 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 14:17:37,428 INFO 8304 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 14:17:37,428 INFO 8304 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 16:34:26,328 INFO 12868 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 16:34:26,328 INFO 12868 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 16:34:26,328 INFO 12868 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-02 16:34:42,718 INFO 5464 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-02 16:34:42,718 INFO 5464 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-02 16:34:42,718 INFO 5464 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-05 10:34:21,239 INFO 6876 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-05 10:34:21,239 INFO 6876 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-05 10:34:21,239 INFO 6876 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-05 10:34:31,184 INFO 7152 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 64528824ms at 2020-07-06 04:30:00.008
+2020-07-05 10:34:31,185 INFO 7152 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 48328816ms at 2020-07-06 00:00:00.001
+2020-07-05 10:34:31,186 INFO 7152 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 48329815ms at 2020-07-06 00:00:01.001
+2020-07-14 13:19:46,333 INFO 11372 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 13:19:46,333 INFO 11372 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 13:19:46,333 INFO 11372 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 13:19:57,277 INFO 8896 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 54602730ms at 2020-07-15 04:30:00.007
+2020-07-14 13:19:57,279 INFO 8896 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 38402722ms at 2020-07-15 00:00:00.001
+2020-07-14 13:19:57,280 INFO 8896 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 38403721ms at 2020-07-15 00:00:01.001
+2020-07-14 14:36:27,270 INFO 13160 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:36:27,270 INFO 13160 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:36:27,270 INFO 13160 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:37:47,168 INFO 5276 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:37:47,168 INFO 5276 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:37:47,168 INFO 5276 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:38:22,895 INFO 12868 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:38:22,895 INFO 12868 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:38:22,895 INFO 12868 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:41:32,459 INFO 11488 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:41:32,459 INFO 11488 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:41:32,459 INFO 11488 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:41:37,728 INFO 12216 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:41:37,728 INFO 12216 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:41:37,728 INFO 12216 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:44:13,531 INFO 12812 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:44:13,531 INFO 12812 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:44:13,531 INFO 12812 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:44:36,613 INFO 6960 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:44:36,613 INFO 6960 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:44:36,614 INFO 6960 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:44:42,308 INFO 11928 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:44:42,309 INFO 11928 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:44:42,309 INFO 11928 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:46:12,956 INFO 11932 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:46:12,956 INFO 11932 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:46:12,956 INFO 11932 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:46:17,656 INFO 7000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:46:17,656 INFO 7000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:46:17,656 INFO 7000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:48:58,823 INFO 1724 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:48:58,823 INFO 1724 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:48:58,823 INFO 1724 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:49:04,399 INFO 13060 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:49:04,399 INFO 13060 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:49:04,399 INFO 13060 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:49:22,646 INFO 12060 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:49:22,646 INFO 12060 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:49:22,646 INFO 12060 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:50:17,435 INFO 12152 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:50:17,436 INFO 12152 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:50:17,436 INFO 12152 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:50:44,387 INFO 4888 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:50:44,388 INFO 4888 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:50:44,388 INFO 4888 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:52:40,035 INFO 9908 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:52:40,035 INFO 9908 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:52:40,035 INFO 9908 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:52:45,814 INFO 11664 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:52:45,814 INFO 11664 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:52:45,814 INFO 11664 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:54:10,187 INFO 9540 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:54:10,187 INFO 9540 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:54:10,187 INFO 9540 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:54:12,376 INFO 12624 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 48947630ms at 2020-07-15 04:30:00.006
+2020-07-14 14:54:12,377 INFO 12624 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 32747624ms at 2020-07-15 00:00:00.001
+2020-07-14 14:54:12,378 INFO 12624 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 32748623ms at 2020-07-15 00:00:01.001
+2020-07-14 14:57:49,889 INFO 12976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:57:49,890 INFO 12976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:57:49,890 INFO 12976 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:57:55,001 INFO 11988 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:57:55,001 INFO 11988 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:57:55,001 INFO 11988 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:58:12,605 INFO 11004 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:58:12,605 INFO 11004 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:58:12,605 INFO 11004 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:58:18,091 INFO 5040 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:58:18,091 INFO 5040 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:58:18,091 INFO 5040 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 14:59:28,813 INFO 11900 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 14:59:28,813 INFO 11900 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 14:59:28,813 INFO 11900 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:00:20,066 INFO 3536 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:00:20,066 INFO 3536 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:00:20,066 INFO 3536 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:00:25,727 INFO 13208 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:00:25,728 INFO 13208 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:00:25,728 INFO 13208 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:08:02,043 INFO 11764 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:08:02,043 INFO 11764 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:08:02,043 INFO 11764 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:08:04,400 INFO 10488 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 48115606ms at 2020-07-15 04:30:00.006
+2020-07-14 15:08:04,401 INFO 10488 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 31915600ms at 2020-07-15 00:00:00.001
+2020-07-14 15:08:04,402 INFO 10488 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 31916599ms at 2020-07-15 00:00:01.001
+2020-07-14 15:10:57,225 INFO 11804 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:10:57,225 INFO 11804 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:10:57,225 INFO 11804 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:11:31,043 INFO 9572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:11:31,043 INFO 9572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:11:31,043 INFO 9572 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:11:58,385 INFO 3228 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:11:58,385 INFO 3228 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:11:58,385 INFO 3228 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:12:03,481 INFO 13060 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:12:03,481 INFO 13060 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:12:03,481 INFO 13060 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:12:48,862 INFO 13104 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:12:48,862 INFO 13104 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:12:48,862 INFO 13104 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:15:40,252 INFO 11288 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:15:40,252 INFO 11288 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:15:40,252 INFO 11288 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:15:42,434 INFO 8316 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 47657573ms at 2020-07-15 04:30:00.007
+2020-07-14 15:15:42,435 INFO 8316 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 31457566ms at 2020-07-15 00:00:00.001
+2020-07-14 15:15:42,436 INFO 8316 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 31458565ms at 2020-07-15 00:00:01.001
+2020-07-14 15:17:25,466 INFO 11276 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:17:25,466 INFO 11276 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:17:25,466 INFO 11276 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:18:49,565 INFO 12044 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:18:49,566 INFO 12044 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:18:49,566 INFO 12044 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:18:57,170 INFO 8376 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:18:57,170 INFO 8376 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:18:57,170 INFO 8376 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:19:52,361 INFO 12988 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:19:52,361 INFO 12988 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:19:52,361 INFO 12988 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:20:00,364 INFO 11936 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:20:00,364 INFO 11936 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:20:00,364 INFO 11936 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:21:35,908 INFO 11664 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:21:35,908 INFO 11664 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:21:35,908 INFO 11664 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:21:38,526 INFO 11348 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 47301481ms at 2020-07-15 04:30:00.007
+2020-07-14 15:21:38,527 INFO 11348 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 31101473ms at 2020-07-15 00:00:00.000
+2020-07-14 15:21:38,528 INFO 11348 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 31102473ms at 2020-07-15 00:00:01.001
+2020-07-14 15:21:37,567 INFO 13176 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:21:37,567 INFO 13176 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:21:37,567 INFO 13176 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:22:57,345 INFO 12316 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:22:57,345 INFO 12316 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:22:57,345 INFO 12316 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:23:04,217 INFO 12880 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:23:04,217 INFO 12880 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:23:04,217 INFO 12880 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:24:41,830 INFO 4728 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:24:41,830 INFO 4728 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:24:41,830 INFO 4728 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:24:47,268 INFO 8284 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:24:47,268 INFO 8284 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:24:47,268 INFO 8284 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:25:21,266 INFO 11432 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:25:21,266 INFO 11432 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:25:21,266 INFO 11432 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:25:23,429 INFO 10368 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 47076579ms at 2020-07-15 04:30:00.008
+2020-07-14 15:25:23,430 INFO 10368 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 30876571ms at 2020-07-15 00:00:00.001
+2020-07-14 15:25:23,431 INFO 10368 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 30877570ms at 2020-07-15 00:00:01.001
+2020-07-14 15:26:20,784 INFO 11100 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:26:20,784 INFO 11100 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:26:20,784 INFO 11100 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:27:08,361 INFO 13424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:27:08,361 INFO 13424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:27:08,361 INFO 13424 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-14 15:27:57,904 INFO 10808 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-14 15:27:57,904 INFO 10808 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-14 15:27:57,904 INFO 10808 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:02:15,017 INFO 11184 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:02:15,017 INFO 11184 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:02:15,017 INFO 11184 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:02:26,034 INFO 12492 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 34053976ms at 2020-07-22 04:30:00.010
+2020-07-21 19:02:26,035 INFO 12492 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 17853965ms at 2020-07-22 00:00:00.000
+2020-07-21 19:02:26,036 INFO 12492 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 17854965ms at 2020-07-22 00:00:01.001
+2020-07-21 19:33:17,822 INFO 12884 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:33:17,822 INFO 12884 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:33:17,822 INFO 12884 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:33:26,888 INFO 11408 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 32193118ms at 2020-07-22 04:30:00.006
+2020-07-21 19:33:26,889 INFO 11408 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 15993112ms at 2020-07-22 00:00:00.001
+2020-07-21 19:33:26,890 INFO 11408 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 15994111ms at 2020-07-22 00:00:01.001
+2020-07-21 19:33:53,414 INFO 9568 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:33:53,414 INFO 9568 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:33:53,414 INFO 9568 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:34:12,846 INFO 11460 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:34:12,846 INFO 11460 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:34:12,846 INFO 11460 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:35:11,985 INFO 5200 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:35:11,985 INFO 5200 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:35:11,985 INFO 5200 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:35:24,870 INFO 1828 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:35:24,870 INFO 1828 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:35:24,870 INFO 1828 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:53:21,415 INFO 12640 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:53:21,415 INFO 12640 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:53:21,415 INFO 12640 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:54:15,132 INFO 12016 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:54:15,132 INFO 12016 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:54:15,132 INFO 12016 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:54:43,317 INFO 13980 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:54:43,317 INFO 13980 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:54:43,317 INFO 13980 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:54:57,277 INFO 13884 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:54:57,278 INFO 13884 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:54:57,278 INFO 13884 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:55:15,889 INFO 11140 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:55:15,889 INFO 11140 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:55:15,889 INFO 11140 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 19:56:44,186 INFO 12516 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 19:56:44,186 INFO 12516 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 19:56:44,186 INFO 12516 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-21 20:09:02,990 INFO 12000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-21 20:09:02,990 INFO 12000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-21 20:09:02,990 INFO 12000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-22 10:36:44,008 INFO 8128 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-22 10:36:44,008 INFO 8128 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-22 10:36:44,008 INFO 8128 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-22 10:36:59,580 INFO 9548 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 64380430ms at 2020-07-23 04:30:00.010
+2020-07-22 10:36:59,583 INFO 9548 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 48180419ms at 2020-07-23 00:00:00.002
+2020-07-22 10:36:59,587 INFO 9548 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 48181417ms at 2020-07-23 00:00:01.003
+2020-07-22 10:49:25,122 INFO 10288 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-22 10:49:25,122 INFO 10288 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-22 10:49:25,123 INFO 10288 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-22 10:49:35,633 INFO 10000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-22 10:49:35,633 INFO 10000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-22 10:49:35,633 INFO 10000 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-22 10:49:42,294 INFO 7660 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-22 10:49:42,294 INFO 7660 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-22 10:49:42,294 INFO 7660 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-22 15:51:17,882 INFO 9788 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-22 15:51:17,882 INFO 9788 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-22 15:51:17,882 INFO 9788 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-22 15:51:27,069 INFO 8944 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 45512940ms at 2020-07-23 04:30:00.009
+2020-07-22 15:51:27,070 INFO 8944 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 29312930ms at 2020-07-23 00:00:00.000
+2020-07-22 15:51:27,071 INFO 8944 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 29313929ms at 2020-07-23 00:00:01.000
+2020-07-22 16:04:08,913 INFO 10888 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-22 16:04:08,913 INFO 10888 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-22 16:04:08,913 INFO 10888 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-22 16:04:11,135 INFO 10936 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 44748870ms at 2020-07-23 04:30:00.005
+2020-07-22 16:04:11,136 INFO 10936 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 28548865ms at 2020-07-23 00:00:00.001
+2020-07-22 16:04:11,136 INFO 10936 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 28549864ms at 2020-07-23 00:00:01.000
+2020-07-22 16:07:55,837 INFO 12120 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-22 16:07:55,837 INFO 12120 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-22 16:07:55,837 INFO 12120 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-22 16:08:00,917 INFO 9864 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-22 16:08:00,917 INFO 9864 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-22 16:08:00,918 INFO 9864 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-22 16:28:10,079 INFO 10448 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-22 16:28:10,080 INFO 10448 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-22 16:28:10,080 INFO 10448 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 16:34:32,890 INFO 7012 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 16:34:32,890 INFO 7012 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 16:34:32,890 INFO 7012 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 16:34:43,060 INFO 6988 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 42916948ms at 2020-07-30 04:30:00.008
+2020-07-29 16:34:43,061 INFO 6988 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 26716940ms at 2020-07-30 00:00:00.001
+2020-07-29 16:34:43,061 INFO 6988 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 26717939ms at 2020-07-30 00:00:01.000
+2020-07-29 16:40:38,205 INFO 11772 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 16:40:38,205 INFO 11772 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 16:40:38,205 INFO 11772 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 16:40:43,484 INFO 11568 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 16:40:43,484 INFO 11568 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 16:40:43,484 INFO 11568 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 16:40:49,054 INFO 10084 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 16:40:49,054 INFO 10084 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 16:40:49,054 INFO 10084 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 16:40:54,235 INFO 8164 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 16:40:54,235 INFO 8164 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 16:40:54,235 INFO 8164 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 16:42:07,925 INFO 2152 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 16:42:07,925 INFO 2152 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 16:42:07,925 INFO 2152 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 16:42:13,092 INFO 7584 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 16:42:13,093 INFO 7584 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 16:42:13,093 INFO 7584 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 16:42:18,197 INFO 7596 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 16:42:18,197 INFO 7596 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 16:42:18,197 INFO 7596 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 16:42:28,124 INFO 10880 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 16:42:28,124 INFO 10880 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 16:42:28,124 INFO 10880 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 17:06:53,115 INFO 10308 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 17:06:53,115 INFO 10308 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 17:06:53,115 INFO 10308 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 17:12:26,996 INFO 8772 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 17:12:26,996 INFO 8772 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 17:12:26,996 INFO 8772 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 17:12:32,721 INFO 212 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 17:12:32,721 INFO 212 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 17:12:32,721 INFO 212 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 17:12:33,179 INFO 9176 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 17:12:33,179 INFO 9176 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 17:12:33,179 INFO 9176 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 17:19:31,235 INFO 11708 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 17:19:31,235 INFO 11708 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 17:19:31,235 INFO 11708 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 17:19:43,218 INFO 12588 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 17:19:43,218 INFO 12588 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 17:19:43,218 INFO 12588 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-29 17:22:26,815 INFO 13188 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-29 17:22:26,816 INFO 13188 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-29 17:22:26,816 INFO 13188 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-31 00:40:19,805 INFO 10220 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-31 00:40:19,805 INFO 10220 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-31 00:40:19,805 INFO 10220 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-07-31 00:40:29,988 INFO 11028 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 13770021ms at 2020-07-31 04:30:00.009
+2020-07-31 00:40:29,991 INFO 11028 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 83970012ms at 2020-08-01 00:00:00.003
+2020-07-31 00:40:29,995 INFO 11028 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 83971009ms at 2020-08-01 00:00:01.004
+2020-07-31 00:45:54,927 INFO 10124 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-07-31 00:45:54,927 INFO 10124 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-07-31 00:45:54,927 INFO 10124 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-08-15 14:26:05,606 INFO 9348 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-08-15 14:26:05,606 INFO 9348 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-08-15 14:26:05,606 INFO 9348 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-08-15 14:26:13,693 INFO 2024 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 50626314ms at 2020-08-16 04:30:00.007
+2020-08-15 14:26:13,694 INFO 2024 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 34426307ms at 2020-08-16 00:00:00.001
+2020-08-15 14:26:13,695 INFO 2024 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 34427306ms at 2020-08-16 00:00:01.001
+2020-08-15 14:27:37,667 INFO 2396 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js
+2020-08-15 14:27:37,667 INFO 2396 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js
+2020-08-15 14:27:37,667 INFO 2396 [egg-schedule]: register schedule D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js
+2020-08-15 14:27:53,928 INFO 9896 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-multipart\app\schedule\clean_tmpdir.js next time will execute after 50526078ms at 2020-08-16 04:30:00.006
+2020-08-15 14:27:53,929 INFO 9896 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\clean_log.js next time will execute after 34326071ms at 2020-08-16 00:00:00.000
+2020-08-15 14:27:53,930 INFO 9896 [Timer] D:\work_vue\zhzb\service-onlive\node_modules\egg-logrotator\app\schedule\rotate_by_file.js next time will execute after 34327071ms at 2020-08-16 00:00:01.001

File diff suppressed because it is too large
+ 3673 - 0
logs/service-onlive/egg-web.log


+ 667 - 0
logs/service-onlive/service-onlive-web.log

@@ -0,0 +1,667 @@
+2020-06-08 10:17:56,242 DEBUG 9880 [access-log] [-/127.0.0.1/-/2ms POST /api/auth/user/gensign] start...
+2020-06-08 10:17:56,463 INFO 9880 [access-log] [-/127.0.0.1/-/224ms POST /api/auth/user/gensign] 404 Not Found
+2020-06-08 10:18:20,442 DEBUG 9880 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/user/gensign] start...
+2020-06-08 10:18:20,450 INFO 9880 [access-log] [-/127.0.0.1/-/8ms POST /api/onlive/user/gensign] 200 OK
+2020-06-08 13:12:28,222 DEBUG 10004 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/roomuser] start...
+2020-06-08 13:12:28,598 WARN 10004 [error-handler] AssertionError: 密码不能为空
+2020-06-08 13:12:28,600 DEBUG 10004 nodejs.AssertionError [ERR_ASSERTION]: 密码不能为空
+    at RoomuserService.create (D:\work_vue\zhzb\service-onlive\app\service\roomuser.js:20:5)
+    at RoomuserController.cls.(anonymous function) [as create] (D:\work_vue\zhzb\service-onlive\node_modules\naf-framework-mongoose\lib\controller\crud-controller.js:210:35)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\utils\index.js:44:21)
+    at Object.classControllerMiddleware (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\loader\mixin\controller.js:87:20)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\utils.js:12:21)
+    at wrappedController (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\egg_router.js:322:18)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at next (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:45:18)
+    at D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:190:18
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:36:12
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:195:33)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\egg-development\app\middleware\egg_loader_trace.js:9:56
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at i18n (D:\work_vue\zhzb\service-onlive\node_modules\egg-i18n\app\middleware\i18n.js:13:12)
+generatedMessage: false
+name: "AssertionError [ERR_ASSERTION]"
+code: "ERR_ASSERTION"
+actual: undefined
+expected: true
+operator: "=="
+pid: 10004
+hostname: WWITCTGXB9LYIHA
+
+2020-06-08 13:12:28,604 INFO 10004 [access-log] [-/127.0.0.1/-/383ms POST /api/onlive/roomuser] 200 OK
+2020-06-08 13:14:09,322 DEBUG 832 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/roomuser] start...
+2020-06-08 13:14:09,521 ERROR 832 [-/127.0.0.1/-/196ms POST /api/onlive/roomuser] nodejs.ValidationError: User validation failed: passwd: Cast to Embedded failed for value "111" at path "passwd"
+    at model.Document.invalidate (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:2574:32)
+    at model.$set (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:1252:12)
+    at model._handleIndex (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:979:14)
+    at model.$set (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:920:22)
+    at model.Document (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:137:12)
+    at model.Model (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:106:12)
+    at new model (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:4702:15)
+    at toExecute.push.callback (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3075:22)
+    at toExecute.forEach (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3111:7)
+    at Array.forEach (<anonymous>)
+    at cb (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3110:15)
+    at Promise (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:5)
+    at new Promise (<anonymous>)
+    at promiseOrCallback (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\helpers\promiseOrCallback.js:30:10)
+    at Function.create (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3045:10)
+    at RoomuserService.create (D:\work_vue\zhzb\service-onlive\app\service\roomuser.js:37:25)
+errors: {"passwd":{"stringValue":"\"111\"","kind":"Embedded","value":"111","path":"passwd","reason":{"path":"passwd"}}}
+_message: "User validation failed"
+pid: 832
+hostname: WWITCTGXB9LYIHA
+
+2020-06-08 13:16:10,427 DEBUG 12020 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/roomuser] start...
+2020-06-08 13:16:10,506 WARN 12020 [error-handler] BusinessError: -1, 此手机号已被注册,请更换手机号
+2020-06-08 13:16:10,509 DEBUG 12020 nodejs.Error: 此手机号已被注册,请更换手机号
+    at RoomuserService.create (D:\work_vue\zhzb\service-onlive\app\service\roomuser.js:24:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -1
+errmsg: "此手机号已被注册,请更换手机号"
+details: undefined
+pid: 12020
+hostname: WWITCTGXB9LYIHA
+
+2020-06-08 13:16:10,510 INFO 12020 [access-log] [-/127.0.0.1/-/86ms POST /api/onlive/roomuser] 200 OK
+2020-06-08 13:16:26,828 DEBUG 12020 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/roomuser] start...
+2020-06-08 13:16:26,852 WARN 12020 [error-handler] AssertionError: phone无效
+2020-06-08 13:16:26,854 DEBUG 12020 nodejs.AssertionError [ERR_ASSERTION]: phone无效
+    at UserService.create (D:\work_vue\zhzb\service-onlive\app\service\user.js:22:5)
+    at RoomuserService.create (D:\work_vue\zhzb\service-onlive\app\service\roomuser.js:26:45)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+generatedMessage: false
+name: "AssertionError [ERR_ASSERTION]"
+code: "ERR_ASSERTION"
+actual: false
+expected: true
+operator: "=="
+pid: 12020
+hostname: WWITCTGXB9LYIHA
+
+2020-06-08 13:16:26,887 INFO 12020 [access-log] [-/127.0.0.1/-/59ms POST /api/onlive/roomuser] 200 OK
+2020-06-08 13:19:48,394 DEBUG 12020 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/roomuser] start...
+2020-06-08 13:19:48,494 ERROR 12020 [-/127.0.0.1/-/91ms POST /api/onlive/roomuser] nodejs.ValidationError: User validation failed: passwd: Cast to Embedded failed for value "111" at path "passwd"
+    at model.Document.invalidate (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:2574:32)
+    at model.$set (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:1252:12)
+    at model._handleIndex (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:979:14)
+    at model.$set (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:920:22)
+    at model.Document (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\document.js:137:12)
+    at model.Model (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:106:12)
+    at new model (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:4702:15)
+    at toExecute.push.callback (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3075:22)
+    at toExecute.forEach (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3111:7)
+    at Array.forEach (<anonymous>)
+    at cb (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3110:15)
+    at Promise (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:5)
+    at new Promise (<anonymous>)
+    at promiseOrCallback (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\helpers\promiseOrCallback.js:30:10)
+    at Function.create (D:\work_vue\zhzb\service-onlive\node_modules\mongoose\lib\model.js:3045:10)
+    at RoomuserService.create (D:\work_vue\zhzb\service-onlive\app\service\roomuser.js:37:25)
+errors: {"passwd":{"stringValue":"\"111\"","kind":"Embedded","value":"111","path":"passwd","reason":{"path":"passwd"}}}
+_message: "User validation failed"
+pid: 12020
+hostname: WWITCTGXB9LYIHA
+
+2020-06-08 13:20:54,871 DEBUG 10624 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/roomuser] start...
+2020-06-08 13:20:54,988 WARN 10624 [error-handler] BusinessError: -10, 数据已存在
+2020-06-08 13:20:54,990 DEBUG 10624 nodejs.Error: 
+    at UserService.create (D:\work_vue\zhzb\service-onlive\app\service\user.js:25:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -10
+errmsg: "数据已存在"
+details: undefined
+pid: 10624
+hostname: WWITCTGXB9LYIHA
+
+2020-06-08 13:20:54,991 INFO 10624 [access-log] [-/127.0.0.1/-/122ms POST /api/onlive/roomuser] 200 OK
+2020-06-08 13:21:08,048 DEBUG 10624 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/roomuser] start...
+2020-06-08 13:21:08,084 INFO 10624 [access-log] [-/127.0.0.1/-/37ms POST /api/onlive/roomuser] 200 OK
+2020-06-09 18:03:38,028 DEBUG 8512 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/user/gensign] start...
+2020-06-09 18:03:38,404 INFO 8512 [access-log] [-/127.0.0.1/-/378ms POST /api/onlive/user/gensign] 200 OK
+2020-06-09 18:26:46,901 DEBUG 8512 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/user/gensign] start...
+2020-06-09 18:26:46,905 INFO 8512 [access-log] [-/127.0.0.1/-/5ms POST /api/onlive/user/gensign] 200 OK
+2020-06-11 14:34:41,818 DEBUG 5164 [access-log] [-/127.0.0.1/-/2ms GET /] start...
+2020-06-11 14:34:41,838 INFO 5164 [access-log] [-/127.0.0.1/-/24ms GET /] 200 OK
+2020-06-11 14:34:43,159 DEBUG 5164 [access-log] [-/127.0.0.1/-/0ms GET /favicon.ico] start...
+2020-06-11 14:34:43,209 INFO 5164 [access-log] [-/127.0.0.1/-/51ms GET /favicon.ico] 200 OK
+2020-06-11 14:34:56,541 DEBUG 5164 [access-log] [-/127.0.0.1/-/0ms GET /favicon.ico] start...
+2020-06-11 14:34:56,570 INFO 5164 [access-log] [-/127.0.0.1/-/29ms GET /favicon.ico] 200 OK
+2020-06-11 14:35:12,927 DEBUG 5164 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/room/roomname?roomname=1] start...
+2020-06-11 14:35:12,962 INFO 5164 [access-log] [-/127.0.0.1/-/35ms GET /api/onlive/room/roomname?roomname=1] 200 OK
+2020-06-11 14:35:23,769 DEBUG 5164 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/room/roomname?roomname=2] start...
+2020-06-11 14:35:23,779 INFO 5164 [access-log] [-/127.0.0.1/-/10ms GET /api/onlive/room/roomname?roomname=2] 200 OK
+2020-06-16 09:24:55,830 DEBUG 11072 [access-log] [-/127.0.0.1/-/2ms GET /api/onlive/auth?type=0] start...
+2020-06-16 09:24:55,873 DEBUG 11072 [-/127.0.0.1/-/46ms GET /api/onlive/auth?type=0] [auth] reditect_uri - undefined
+2020-06-16 09:24:56,203 INFO 11072 [access-log] [-/127.0.0.1/-/376ms GET /api/onlive/auth?type=0] 302 Found
+2020-06-16 09:51:29,340 DEBUG 11072 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/auth?type=0] start...
+2020-06-16 09:51:29,342 DEBUG 11072 [-/127.0.0.1/-/2ms GET /api/onlive/auth?type=0] [auth] reditect_uri - undefined
+2020-06-16 09:51:29,346 INFO 11072 [access-log] [-/127.0.0.1/-/6ms GET /api/onlive/auth?type=0] 302 Found
+2020-06-16 10:06:27,881 DEBUG 11072 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/auth?type=0] start...
+2020-06-16 10:06:27,884 DEBUG 11072 [-/127.0.0.1/-/3ms GET /api/onlive/auth?type=0] [auth] reditect_uri - undefined
+2020-06-16 10:06:27,889 INFO 11072 [access-log] [-/127.0.0.1/-/8ms GET /api/onlive/auth?type=0] 302 Found
+2020-06-16 10:11:40,400 DEBUG 11072 [access-log] [-/127.0.0.1/-/1ms GET /api/onlive/auth?%20redirect_uri=https://zb.liaoningdoupo.com/livemobile/live/index/&type=0] start...
+2020-06-16 10:11:40,402 DEBUG 11072 [-/127.0.0.1/-/3ms GET /api/onlive/auth?%20redirect_uri=https://zb.liaoningdoupo.com/livemobile/live/index/&type=0] [auth] reditect_uri - undefined
+2020-06-16 10:11:40,406 INFO 11072 [access-log] [-/127.0.0.1/-/7ms GET /api/onlive/auth?%20redirect_uri=https://zb.liaoningdoupo.com/livemobile/live/index/&type=0] 302 Found
+2020-06-16 11:00:22,041 DEBUG 13344 [access-log] [-/127.0.0.1/-/3ms GET /api/onlive/lookuser] start...
+2020-06-16 11:00:22,137 INFO 13344 [access-log] [-/127.0.0.1/-/100ms GET /api/onlive/lookuser] 200 OK
+2020-06-16 11:00:22,296 DEBUG 13344 [access-log] [-/127.0.0.1/-/0ms GET /favicon.ico] start...
+2020-06-16 11:00:22,302 INFO 13344 [access-log] [-/127.0.0.1/-/5ms GET /favicon.ico] 200 OK
+2020-06-19 16:22:26,546 DEBUG 11804 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/chat] start...
+2020-06-19 16:22:27,043 INFO 11804 [access-log] [-/127.0.0.1/-/500ms POST /api/onlive/chat] 200 OK
+2020-06-28 09:33:58,845 DEBUG 976 [access-log] [-/127.0.0.1/-/2ms GET /api/onlive/lookuser/swichrole?roomid=5ef455fd08e07510c4b8d601&userid=5ee84acb778c700c98d8bf35] start...
+2020-06-28 09:33:58,915 INFO 976 [access-log] [-/127.0.0.1/-/74ms GET /api/onlive/lookuser/swichrole?roomid=5ef455fd08e07510c4b8d601&userid=5ee84acb778c700c98d8bf35] 200 OK
+2020-06-28 09:33:59,130 DEBUG 976 [access-log] [-/127.0.0.1/-/0ms GET /favicon.ico] start...
+2020-06-28 09:33:59,135 INFO 976 [access-log] [-/127.0.0.1/-/5ms GET /favicon.ico] 200 OK
+2020-07-02 09:12:45,884 DEBUG 9572 [access-log] [-/127.0.0.1/-/2ms GET /api/onlive/room/starttranscode?roomid=5ef82271a0226c16901e6199&roomname=1001] start...
+2020-07-02 09:12:45,936 INFO 9572 [access-log] [-/127.0.0.1/-/56ms GET /api/onlive/room/starttranscode?roomid=5ef82271a0226c16901e6199&roomname=1001] 200 OK
+2020-07-02 09:22:34,244 DEBUG 8696 [access-log] [-/127.0.0.1/-/1ms GET /api/onlive/room/starttranscode?roomid=5ef82271a0226c16901e6199&roomname=1001] start...
+2020-07-02 09:22:34,269 INFO 8696 [access-log] [-/127.0.0.1/-/27ms GET /api/onlive/room/starttranscode?roomid=5ef82271a0226c16901e6199&roomname=1001] 200 OK
+2020-07-02 09:27:34,918 DEBUG 10780 [access-log] [-/127.0.0.1/-/1ms GET /api/onlive/room/starttranscode?roomid=5ef82271a0226c16901e6199&roomname=1001] start...
+2020-07-02 09:27:34,954 INFO 10780 [access-log] [-/127.0.0.1/-/38ms GET /api/onlive/room/starttranscode?roomid=5ef82271a0226c16901e6199&roomname=1001] 200 OK
+2020-07-02 09:47:30,764 DEBUG 9288 [access-log] [-/127.0.0.1/-/1ms GET /api/onlive/room/startrecord] start...
+2020-07-02 09:47:30,787 ERROR 9288 [-/127.0.0.1/-/21ms GET /api/onlive/room/startrecord] nodejs.TypeError: Cannot read property 'split' of undefined
+    at RoomService.startrecord (D:\work_vue\zhzb\service-onlive\app\service\room.js:59:27)
+    at RoomController.startrecord (D:\work_vue\zhzb\service-onlive\app\controller\room.js:26:37)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\utils\index.js:44:21)
+    at Object.classControllerMiddleware (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\loader\mixin\controller.js:87:20)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\utils.js:12:21)
+    at wrappedController (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\egg_router.js:322:18)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at next (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:45:18)
+    at D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:190:18
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:36:12
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:195:33)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\egg-development\app\middleware\egg_loader_trace.js:9:56
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at i18n (D:\work_vue\zhzb\service-onlive\node_modules\egg-i18n\app\middleware\i18n.js:13:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at dta (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\dta.js:12:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at xframe (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\xframe.js:7:11)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+
+pid: 9288
+hostname: WWITCTGXB9LYIHA
+
+2020-07-02 16:38:01,194 DEBUG 5464 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/startrecord] start...
+2020-07-02 16:38:01,639 INFO 5464 [access-log] [-/127.0.0.1/-/448ms POST /api/onlive/room/startrecord] 200 OK
+2020-07-05 10:39:52,815 DEBUG 6876 [access-log] [-/127.0.0.1/-/2ms GET /api/onlive/uploadquestion/completion] start...
+2020-07-05 10:39:52,844 WARN 6876 [error-handler] AssertionError: 缺少部分信息项
+2020-07-05 10:39:52,870 DEBUG 6876 nodejs.AssertionError [ERR_ASSERTION]: 缺少部分信息项
+    at UploadquestionService.completion (D:\work_vue\zhzb\service-onlive\app\service\uploadquestion.js:23:5)
+    at UploadquestionController.completion (D:\work_vue\zhzb\service-onlive\app\controller\uploadquestion.js:18:36)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\utils\index.js:44:21)
+    at Object.classControllerMiddleware (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\loader\mixin\controller.js:87:20)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\utils.js:12:21)
+    at wrappedController (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\egg_router.js:322:18)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at next (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:45:18)
+    at D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:190:18
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:36:12
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:195:33)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\egg-development\app\middleware\egg_loader_trace.js:9:56
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at i18n (D:\work_vue\zhzb\service-onlive\node_modules\egg-i18n\app\middleware\i18n.js:13:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at dta (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\dta.js:12:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at xframe (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\xframe.js:7:11)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+generatedMessage: false
+name: "AssertionError [ERR_ASSERTION]"
+code: "ERR_ASSERTION"
+actual: undefined
+expected: true
+operator: "=="
+pid: 6876
+hostname: WWITCTGXB9LYIHA
+
+2020-07-05 10:39:52,885 INFO 6876 [access-log] [-/127.0.0.1/-/72ms GET /api/onlive/uploadquestion/completion] 200 OK
+2020-07-05 10:39:53,553 DEBUG 6876 [access-log] [-/127.0.0.1/-/1ms GET /favicon.ico] start...
+2020-07-05 10:39:53,587 INFO 6876 [access-log] [-/127.0.0.1/-/35ms GET /favicon.ico] 200 OK
+2020-07-05 10:40:03,054 DEBUG 6876 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/uploadquestion/completion?type=0] start...
+2020-07-05 10:40:03,089 INFO 6876 [access-log] [-/127.0.0.1/-/35ms GET /api/onlive/uploadquestion/completion?type=0] 200 OK
+2020-07-05 10:40:08,301 DEBUG 6876 [access-log] [-/127.0.0.1/-/1ms GET /api/onlive/uploadquestion/completion?type=1] start...
+2020-07-05 10:40:08,311 INFO 6876 [access-log] [-/127.0.0.1/-/11ms GET /api/onlive/uploadquestion/completion?type=1] 200 OK
+2020-07-14 13:22:03,073 DEBUG 11372 [access-log] [-/::1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 13:22:03,539 INFO 11372 [access-log] [-/::1/-/469ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:35:24,763 DEBUG 11372 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:35:25,232 INFO 11372 [access-log] [-/127.0.0.1/-/469ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:36:37,871 DEBUG 13160 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:36:38,027 INFO 13160 [access-log] [-/127.0.0.1/-/158ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:37:52,252 DEBUG 5276 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:37:52,439 INFO 5276 [access-log] [-/127.0.0.1/-/189ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:38:29,935 DEBUG 12868 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:38:30,085 INFO 12868 [access-log] [-/127.0.0.1/-/152ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:39:25,296 DEBUG 12868 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:39:25,346 INFO 12868 [access-log] [-/127.0.0.1/-/50ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:40:15,171 DEBUG 12868 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:40:15,177 INFO 12868 [access-log] [-/127.0.0.1/-/6ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:41:44,639 DEBUG 12216 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:41:44,703 INFO 12216 [access-log] [-/127.0.0.1/-/67ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:42:13,949 DEBUG 12216 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:42:14,052 INFO 12216 [access-log] [-/127.0.0.1/-/103ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:43:01,053 DEBUG 12216 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:43:01,083 INFO 12216 [access-log] [-/127.0.0.1/-/30ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:44:42,056 DEBUG 6960 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:44:42,241 INFO 6960 [access-log] [-/127.0.0.1/-/188ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:49:30,110 DEBUG 12060 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:49:30,210 INFO 12060 [access-log] [-/127.0.0.1/-/103ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:50:57,710 DEBUG 4888 [access-log] [-/127.0.0.1/-/3ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:50:57,853 INFO 4888 [access-log] [-/127.0.0.1/-/147ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:54:17,658 DEBUG 9540 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:54:17,805 INFO 9540 [access-log] [-/127.0.0.1/-/149ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:55:25,807 DEBUG 9540 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:55:25,835 INFO 9540 [access-log] [-/127.0.0.1/-/29ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 14:58:18,062 DEBUG 11004 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:58:18,117 ERROR 11004 [-/127.0.0.1/-/50ms POST /api/onlive/room/switchzjr] nodejs.TypeError: this.model.save is not a function
+    at RoomService.switchzjr (D:\work_vue\zhzb\service-onlive\app\service\room.js:160:34)
+    at RoomController.switchzjr (D:\work_vue\zhzb\service-onlive\app\controller\room.js:177:37)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\utils\index.js:44:21)
+    at Object.classControllerMiddleware (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\loader\mixin\controller.js:87:20)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\utils.js:12:21)
+    at wrappedController (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\egg_router.js:322:18)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at next (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:45:18)
+    at D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:190:18
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:36:12
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:195:33)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\egg-development\app\middleware\egg_loader_trace.js:9:56
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at i18n (D:\work_vue\zhzb\service-onlive\node_modules\egg-i18n\app\middleware\i18n.js:13:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at dta (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\dta.js:12:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at xframe (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\xframe.js:7:11)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+
+pid: 11004
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 14:59:39,550 DEBUG 11900 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 14:59:39,661 INFO 11900 [access-log] [-/127.0.0.1/-/114ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 15:02:13,800 DEBUG 13208 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:02:13,990 INFO 13208 [access-log] [-/127.0.0.1/-/193ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 15:03:01,906 DEBUG 13208 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/room] start...
+2020-07-14 15:03:01,920 WARN 13208 [error-handler] BusinessError: -1, 此房间已经存在,请重新输入
+2020-07-14 15:03:01,927 DEBUG 13208 nodejs.Error: 此房间已经存在,请重新输入
+    at RoomService.create (D:\work_vue\zhzb\service-onlive\app\service\room.js:22:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -1
+errmsg: "此房间已经存在,请重新输入"
+details: undefined
+pid: 13208
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:03:01,930 INFO 13208 [access-log] [-/127.0.0.1/-/24ms POST /api/onlive/room] 200 OK
+2020-07-14 15:03:11,964 DEBUG 13208 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/room] start...
+2020-07-14 15:03:11,977 WARN 13208 [error-handler] BusinessError: -9, 数据不存在
+2020-07-14 15:03:11,978 DEBUG 13208 nodejs.Error: 
+    at RoomService.create (D:\work_vue\zhzb\service-onlive\app\service\room.js:26:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -9
+errmsg: "数据不存在"
+details: undefined
+pid: 13208
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:03:11,979 INFO 13208 [access-log] [-/127.0.0.1/-/15ms POST /api/onlive/room] 200 OK
+2020-07-14 15:04:37,767 DEBUG 13208 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/room] start...
+2020-07-14 15:04:37,816 INFO 13208 [access-log] [-/127.0.0.1/-/49ms POST /api/onlive/room] 200 OK
+2020-07-14 15:05:38,674 DEBUG 13208 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:05:38,708 INFO 13208 [access-log] [-/127.0.0.1/-/34ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 15:06:20,666 DEBUG 13208 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/room/update/5f0d5905ac312733986c9403] start...
+2020-07-14 15:06:20,680 INFO 13208 [access-log] [-/127.0.0.1/-/14ms POST /api/onlive/room/update/5f0d5905ac312733986c9403] 200 OK
+2020-07-14 15:08:10,800 DEBUG 11764 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/update/5f0d5905ac312733986c9403] start...
+2020-07-14 15:08:10,955 INFO 11764 [access-log] [-/127.0.0.1/-/158ms POST /api/onlive/room/update/5f0d5905ac312733986c9403] 200 OK
+2020-07-14 15:09:48,509 DEBUG 11764 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:09:48,572 INFO 11764 [access-log] [-/127.0.0.1/-/64ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 15:11:02,949 DEBUG 11804 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:11:03,073 ERROR 11804 [-/127.0.0.1/-/126ms POST /api/onlive/room/switchzjr] nodejs.ReferenceError: res is not defined
+    at RoomService.switchzjr (D:\work_vue\zhzb\service-onlive\app\service\room.js:173:23)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+
+pid: 11804
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:11:40,405 DEBUG 9572 [access-log] [-/127.0.0.1/-/4ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:11:40,528 ERROR 9572 [-/127.0.0.1/-/126ms POST /api/onlive/room/switchzjr] nodejs.ReferenceError: res is not defined
+    at RoomService.switchzjr (D:\work_vue\zhzb\service-onlive\app\service\room.js:175:37)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+
+pid: 9572
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:12:16,453 DEBUG 13060 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:12:16,614 ERROR 13060 [-/127.0.0.1/-/162ms POST /api/onlive/room/switchzjr] nodejs.ReferenceError: res is not defined
+    at RoomService.switchzjr (D:\work_vue\zhzb\service-onlive\app\service\room.js:179:5)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+
+pid: 13060
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:12:54,189 DEBUG 13104 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:12:54,332 INFO 13104 [access-log] [-/127.0.0.1/-/146ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 15:16:00,060 DEBUG 11288 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:16:00,230 INFO 11288 [access-log] [-/127.0.0.1/-/172ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 15:17:32,960 DEBUG 11276 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:17:33,043 ERROR 11276 [-/127.0.0.1/-/85ms POST /api/onlive/room/switchzjr] nodejs.TypeError: resmodel.save is not a function
+    at RoomService.switchzjr (D:\work_vue\zhzb\service-onlive\app\service\room.js:166:37)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+
+pid: 11276
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:18:55,575 DEBUG 12044 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:18:59,424 ERROR 12044 [-/127.0.0.1/-/3845ms POST /api/onlive/room/switchzjr] nodejs.MongoError: Updating the path 'meta' would create a conflict at 'meta'
+    at Function.create (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\error.js:51:12)
+    at toError (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\utils.js:149:22)
+    at coll.s.topology.update (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\operations\common_functions.js:376:39)
+    at handler (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\sdam\topology.js:913:24)
+    at fn (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\connection_pool.js:356:13)
+    at handleOperationResult (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\sdam\server.js:489:5)
+    at MessageStream.messageHandler (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\connection.js:270:5)
+    at emitOne (events.js:116:13)
+    at MessageStream.emit (events.js:211:7)
+    at processIncomingData (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\message_stream.js:144:12)
+    at MessageStream._write (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\message_stream.js:42:5)
+    at doWrite (_stream_writable.js:397:12)
+    at writeOrBuffer (_stream_writable.js:383:5)
+    at MessageStream.Writable.write (_stream_writable.js:290:11)
+    at Socket.ondata (_stream_readable.js:639:20)
+    at emitOne (events.js:116:13)
+    at Socket.emit (events.js:211:7)
+    at addChunk (_stream_readable.js:263:12)
+    at readableAddChunk (_stream_readable.js:250:11)
+    at Socket.Readable.push (_stream_readable.js:208:10)
+    at TCP.onread (net.js:597:20)
+driver: true
+name: "MongoError"
+index: 0
+code: 40
+pid: 12044
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:19:52,596 DEBUG 8376 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:19:52,736 ERROR 8376 [-/127.0.0.1/-/137ms POST /api/onlive/room/switchzjr] nodejs.MongoError: Updating the path 'meta' would create a conflict at 'meta'
+    at Function.create (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\error.js:51:12)
+    at toError (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\utils.js:149:22)
+    at coll.s.topology.update (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\operations\common_functions.js:376:39)
+    at handler (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\sdam\topology.js:913:24)
+    at fn (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\connection_pool.js:356:13)
+    at handleOperationResult (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\core\sdam\server.js:489:5)
+    at MessageStream.messageHandler (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\connection.js:270:5)
+    at emitOne (events.js:116:13)
+    at MessageStream.emit (events.js:211:7)
+    at processIncomingData (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\message_stream.js:144:12)
+    at MessageStream._write (D:\work_vue\zhzb\service-onlive\node_modules\mongodb\lib\cmap\message_stream.js:42:5)
+    at doWrite (_stream_writable.js:397:12)
+    at writeOrBuffer (_stream_writable.js:383:5)
+    at MessageStream.Writable.write (_stream_writable.js:290:11)
+    at Socket.ondata (_stream_readable.js:639:20)
+    at emitOne (events.js:116:13)
+    at Socket.emit (events.js:211:7)
+    at addChunk (_stream_readable.js:263:12)
+    at readableAddChunk (_stream_readable.js:250:11)
+    at Socket.Readable.push (_stream_readable.js:208:10)
+    at TCP.onread (net.js:597:20)
+driver: true
+name: "MongoError"
+index: 0
+code: 40
+pid: 8376
+hostname: WWITCTGXB9LYIHA
+
+2020-07-14 15:21:43,843 DEBUG 13176 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:21:43,985 INFO 13176 [access-log] [-/127.0.0.1/-/145ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 15:23:07,603 DEBUG 12880 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:23:07,770 INFO 12880 [access-log] [-/127.0.0.1/-/168ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 15:24:51,660 DEBUG 8284 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:24:51,806 INFO 8284 [access-log] [-/127.0.0.1/-/149ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 15:25:29,404 DEBUG 11432 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:25:29,612 INFO 11432 [access-log] [-/127.0.0.1/-/210ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 15:26:29,836 DEBUG 11100 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:26:29,993 INFO 11100 [access-log] [-/127.0.0.1/-/160ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-14 15:28:26,219 DEBUG 10808 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/room/switchzjr] start...
+2020-07-14 15:28:26,345 INFO 10808 [access-log] [-/127.0.0.1/-/129ms POST /api/onlive/room/switchzjr] 200 OK
+2020-07-21 19:28:23,869 DEBUG 11184 [access-log] [-/127.0.0.1/-/1ms OPTIONS /api/onlive/trtclogin] start...
+2020-07-21 19:28:23,984 INFO 11184 [access-log] [-/127.0.0.1/-/117ms OPTIONS /api/onlive/trtclogin] 404 Not Found
+2020-07-21 19:30:26,370 DEBUG 11184 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/trtclogin] start...
+2020-07-21 19:30:26,579 WARN 11184 [error-handler] BusinessError: -9, 数据不存在
+2020-07-21 19:30:26,582 DEBUG 11184 nodejs.Error: 
+    at LoginService.trtclogin (D:\work_vue\zhzb\service-onlive\app\service\login.js:93:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -9
+errmsg: "数据不存在"
+details: undefined
+pid: 11184
+hostname: WWITCTGXB9LYIHA
+
+2020-07-21 19:30:26,583 INFO 11184 [access-log] [-/127.0.0.1/-/213ms POST /api/onlive/trtclogin] 200 OK
+2020-07-21 19:32:05,309 DEBUG 11184 [access-log] [-/127.0.0.1/-/0ms OPTIONS /api/onlive/trtclogin] start...
+2020-07-21 19:32:05,316 INFO 11184 [access-log] [-/127.0.0.1/-/7ms OPTIONS /api/onlive/trtclogin] 404 Not Found
+2020-07-21 19:33:32,686 DEBUG 12884 [access-log] [-/127.0.0.1/-/2ms OPTIONS /api/onlive/trtclogin] start...
+2020-07-21 19:33:32,764 INFO 12884 [access-log] [-/127.0.0.1/-/80ms OPTIONS /api/onlive/trtclogin] 404 Not Found
+2020-07-21 19:34:39,559 DEBUG 11460 [access-log] [-/127.0.0.1/-/1ms OPTIONS /api/onlive/trtclogin] start...
+2020-07-21 19:34:39,573 INFO 11460 [access-log] [-/127.0.0.1/-/16ms OPTIONS /api/onlive/trtclogin] 404 Not Found
+2020-07-21 19:36:01,462 DEBUG 1828 [access-log] [-/127.0.0.1/-/2ms OPTIONS /api/onlive/trtclogin] start...
+2020-07-21 19:36:01,479 INFO 1828 [access-log] [-/127.0.0.1/-/19ms OPTIONS /api/onlive/trtclogin] 404 Not Found
+2020-07-21 19:36:45,066 DEBUG 1828 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/trtclogin] start...
+2020-07-21 19:36:45,122 WARN 1828 [error-handler] BusinessError: -9, 数据不存在
+2020-07-21 19:36:45,129 DEBUG 1828 nodejs.Error: 
+    at LoginService.trtclogin (D:\work_vue\zhzb\service-onlive\app\service\login.js:93:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -9
+errmsg: "数据不存在"
+details: undefined
+pid: 1828
+hostname: WWITCTGXB9LYIHA
+
+2020-07-21 19:36:45,131 INFO 1828 [access-log] [-/127.0.0.1/-/66ms POST /api/onlive/trtclogin] 200 OK
+2020-07-21 19:39:23,797 DEBUG 1828 [access-log] [-/127.0.0.1/-/0ms OPTIONS /api/onlive/trtclogin] start...
+2020-07-21 19:39:23,800 INFO 1828 [access-log] [-/127.0.0.1/-/4ms OPTIONS /api/onlive/trtclogin] 404 Not Found
+2020-07-21 19:41:53,684 DEBUG 1828 [access-log] [-/127.0.0.1/-/0ms OPTIONS /api/onlive/trtclogin] start...
+2020-07-21 19:41:53,685 INFO 1828 [access-log] [-/127.0.0.1/-/1ms OPTIONS /api/onlive/trtclogin] 404 Not Found
+2020-07-21 19:42:53,832 DEBUG 1828 [access-log] [-/127.0.0.1/-/0ms OPTIONS /api/onlive/trtclogin] start...
+2020-07-21 19:42:53,834 INFO 1828 [access-log] [-/127.0.0.1/-/2ms OPTIONS /api/onlive/trtclogin] 404 Not Found
+2020-07-21 19:43:45,164 DEBUG 1828 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/trtclogin] start...
+2020-07-21 19:43:45,212 WARN 1828 [error-handler] BusinessError: -9, 数据不存在
+2020-07-21 19:43:45,213 DEBUG 1828 nodejs.Error: 
+    at LoginService.trtclogin (D:\work_vue\zhzb\service-onlive\app\service\login.js:93:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -9
+errmsg: "数据不存在"
+details: undefined
+pid: 1828
+hostname: WWITCTGXB9LYIHA
+
+2020-07-21 19:43:45,215 INFO 1828 [access-log] [-/127.0.0.1/-/51ms POST /api/onlive/trtclogin] 200 OK
+2020-07-21 19:43:57,485 DEBUG 1828 [access-log] [-/127.0.0.1/-/0ms OPTIONS /api/onlive/trtclogin] start...
+2020-07-21 19:43:57,486 INFO 1828 [access-log] [-/127.0.0.1/-/2ms OPTIONS /api/onlive/trtclogin] 404 Not Found
+2020-07-21 19:49:26,488 DEBUG 1828 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/trtclogin] start...
+2020-07-21 19:49:26,494 WARN 1828 [error-handler] BusinessError: -9, 数据不存在
+2020-07-21 19:49:26,495 DEBUG 1828 nodejs.Error: 
+    at LoginService.trtclogin (D:\work_vue\zhzb\service-onlive\app\service\login.js:93:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -9
+errmsg: "数据不存在"
+details: undefined
+pid: 1828
+hostname: WWITCTGXB9LYIHA
+
+2020-07-21 19:49:26,497 INFO 1828 [access-log] [-/127.0.0.1/-/10ms POST /api/onlive/trtclogin] 200 OK
+2020-07-21 19:52:28,228 DEBUG 1828 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/trtclogin] start...
+2020-07-21 19:52:28,233 WARN 1828 [error-handler] BusinessError: -9, 数据不存在
+2020-07-21 19:52:28,235 DEBUG 1828 nodejs.Error: 
+    at LoginService.trtclogin (D:\work_vue\zhzb\service-onlive\app\service\login.js:93:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -9
+errmsg: "数据不存在"
+details: undefined
+pid: 1828
+hostname: WWITCTGXB9LYIHA
+
+2020-07-21 19:52:28,237 INFO 1828 [access-log] [-/127.0.0.1/-/9ms POST /api/onlive/trtclogin] 200 OK
+2020-07-21 19:53:34,879 DEBUG 12640 [access-log] [-/127.0.0.1/-/2ms POST /api/onlive/trtclogin] start...
+2020-07-21 19:53:35,029 WARN 12640 [error-handler] BusinessError: -9, 数据不存在
+2020-07-21 19:53:35,030 DEBUG 12640 nodejs.Error: 
+    at LoginService.trtclogin (D:\work_vue\zhzb\service-onlive\app\service\login.js:94:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -9
+errmsg: "数据不存在"
+details: undefined
+pid: 12640
+hostname: WWITCTGXB9LYIHA
+
+2020-07-21 19:53:35,031 INFO 12640 [access-log] [-/127.0.0.1/-/155ms POST /api/onlive/trtclogin] 200 OK
+2020-07-21 19:54:20,705 DEBUG 12016 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/trtclogin] start...
+2020-07-21 19:54:20,747 ERROR 12016 [-/127.0.0.1/-/41ms POST /api/onlive/trtclogin] nodejs.SyntaxError: Unexpected token o in JSON at position 1
+    at JSON.parse (<anonymous>)
+    at LoginService.trtclogin (D:\work_vue\zhzb\service-onlive\app\service\login.js:91:22)
+    at LoginController.trtclogin (D:\work_vue\zhzb\service-onlive\app\controller\login.js:35:36)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\utils\index.js:44:21)
+    at Object.classControllerMiddleware (D:\work_vue\zhzb\service-onlive\node_modules\egg-core\lib\loader\mixin\controller.js:87:20)
+    at Object.callFn (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\utils.js:12:21)
+    at wrappedController (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\egg_router.js:322:18)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at next (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:45:18)
+    at D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:190:18
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:44:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\koa-compose\index.js:36:12
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\@eggjs\router\lib\router.js:195:33)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at D:\work_vue\zhzb\service-onlive\node_modules\egg-development\app\middleware\egg_loader_trace.js:9:56
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at i18n (D:\work_vue\zhzb\service-onlive\node_modules\egg-i18n\app\middleware\i18n.js:13:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\koa\node_modules\koa-compose\index.js:42:32)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at dta (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\dta.js:12:12)
+    at dispatch (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\node_modules\koa-compose\index.js:42:32)
+    at xframe (D:\work_vue\zhzb\service-onlive\node_modules\egg-security\lib\middlewares\xframe.js:7:11)
+
+pid: 12016
+hostname: WWITCTGXB9LYIHA
+
+2020-07-21 19:56:07,914 DEBUG 11140 [access-log] [-/127.0.0.1/-/1ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 19:56:07,968 WARN 11140 [error-handler] BusinessError: -9, 数据不存在
+2020-07-21 19:56:07,976 DEBUG 11140 nodejs.Error: 
+    at LoginService.trtclogin (D:\work_vue\zhzb\service-onlive\app\service\login.js:94:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -9
+errmsg: "数据不存在"
+details: undefined
+pid: 11140
+hostname: WWITCTGXB9LYIHA
+
+2020-07-21 19:56:07,980 INFO 11140 [access-log] [-/127.0.0.1/-/68ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 19:56:50,095 DEBUG 12516 [access-log] [-/127.0.0.1/-/2ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 19:56:50,162 INFO 12516 [access-log] [-/127.0.0.1/-/69ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 19:57:38,576 DEBUG 12516 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 19:57:38,606 INFO 12516 [access-log] [-/127.0.0.1/-/31ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 19:57:39,198 DEBUG 12516 [access-log] [-/127.0.0.1/-/0ms GET /favicon.ico] start...
+2020-07-21 19:57:39,212 INFO 12516 [access-log] [-/127.0.0.1/-/14ms GET /favicon.ico] 200 OK
+2020-07-21 19:59:22,740 DEBUG 12516 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 19:59:22,750 INFO 12516 [access-log] [-/127.0.0.1/-/10ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:00:45,757 DEBUG 12516 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:00:45,769 INFO 12516 [access-log] [-/127.0.0.1/-/12ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:06:09,556 DEBUG 12516 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:06:09,568 INFO 12516 [access-log] [-/127.0.0.1/-/12ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:08:00,053 DEBUG 12516 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:08:00,065 INFO 12516 [access-log] [-/127.0.0.1/-/12ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:08:42,876 DEBUG 12516 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:08:42,887 INFO 12516 [access-log] [-/127.0.0.1/-/11ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:09:08,914 DEBUG 12000 [access-log] [-/127.0.0.1/-/1ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:09:09,005 INFO 12000 [access-log] [-/127.0.0.1/-/92ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:10:32,752 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:10:32,771 INFO 12000 [access-log] [-/127.0.0.1/-/20ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:18:01,845 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:18:01,879 INFO 12000 [access-log] [-/127.0.0.1/-/34ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:30:46,941 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:30:46,982 INFO 12000 [access-log] [-/127.0.0.1/-/41ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:35:49,625 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:35:49,637 INFO 12000 [access-log] [-/127.0.0.1/-/12ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:36:04,777 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:36:04,792 INFO 12000 [access-log] [-/127.0.0.1/-/15ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:36:16,060 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:36:16,069 INFO 12000 [access-log] [-/127.0.0.1/-/10ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:36:23,920 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:36:23,930 INFO 12000 [access-log] [-/127.0.0.1/-/10ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:36:24,807 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:36:24,818 INFO 12000 [access-log] [-/127.0.0.1/-/11ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:36:25,319 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:36:25,330 INFO 12000 [access-log] [-/127.0.0.1/-/11ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:36:25,570 DEBUG 12000 [access-log] [-/127.0.0.1/-/1ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:36:25,581 INFO 12000 [access-log] [-/127.0.0.1/-/12ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:36:25,638 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:36:25,647 INFO 12000 [access-log] [-/127.0.0.1/-/9ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:36:25,894 DEBUG 12000 [access-log] [-/127.0.0.1/-/1ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:36:25,904 INFO 12000 [access-log] [-/127.0.0.1/-/11ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:36:49,903 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:36:49,917 INFO 12000 [access-log] [-/127.0.0.1/-/14ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:38:28,281 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:38:28,290 INFO 12000 [access-log] [-/127.0.0.1/-/9ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:39:16,043 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:39:16,055 INFO 12000 [access-log] [-/127.0.0.1/-/12ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:40:06,507 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:40:06,519 INFO 12000 [access-log] [-/127.0.0.1/-/12ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-21 20:40:41,852 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=1234565] start...
+2020-07-21 20:40:41,863 WARN 12000 [error-handler] BusinessError: -6, 密码错误
+2020-07-21 20:40:41,870 DEBUG 12000 nodejs.Error: 
+    at LoginService.trtclogin (D:\work_vue\zhzb\service-onlive\app\service\login.js:107:13)
+    at <anonymous>
+    at process._tickCallback (internal/process/next_tick.js:188:7)
+errcode: -6
+errmsg: "密码错误"
+details: undefined
+pid: 12000
+hostname: WWITCTGXB9LYIHA
+
+2020-07-21 20:40:41,871 INFO 12000 [access-log] [-/127.0.0.1/-/20ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=1234565] 200 OK
+2020-07-21 20:40:49,437 DEBUG 12000 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-21 20:40:49,447 INFO 12000 [access-log] [-/127.0.0.1/-/10ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-22 10:39:37,152 DEBUG 8128 [access-log] [-/127.0.0.1/-/1ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-22 10:39:37,212 INFO 8128 [access-log] [-/127.0.0.1/-/62ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-22 10:39:37,472 DEBUG 8128 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/user/gensign] start...
+2020-07-22 10:39:37,627 INFO 8128 [access-log] [-/127.0.0.1/-/156ms POST /api/onlive/user/gensign] 200 OK
+2020-07-22 10:41:59,637 DEBUG 8128 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/user/gensign] start...
+2020-07-22 10:41:59,649 INFO 8128 [access-log] [-/127.0.0.1/-/12ms POST /api/onlive/user/gensign] 200 OK
+2020-07-22 10:43:08,356 DEBUG 8128 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/user/gensign] start...
+2020-07-22 10:43:08,363 INFO 8128 [access-log] [-/127.0.0.1/-/7ms POST /api/onlive/user/gensign] 200 OK
+2020-07-22 10:45:03,218 DEBUG 8128 [access-log] [-/127.0.0.1/-/0ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] start...
+2020-07-22 10:45:03,239 INFO 8128 [access-log] [-/127.0.0.1/-/21ms GET /api/onlive/trtclogin?roomId=1001&phone=16666666666&passwd=123456] 200 OK
+2020-07-22 10:45:03,459 DEBUG 8128 [access-log] [-/127.0.0.1/-/0ms POST /api/onlive/user/gensign] start...
+2020-07-22 10:45:03,465 INFO 8128 [access-log] [-/127.0.0.1/-/6ms POST /api/onlive/user/gensign] 200 OK
+2020-07-22 15:51:37,542 DEBUG 9788 [access-log] [-/127.0.0.1/-/2ms GET /api/onlive/contact] start...
+2020-07-22 15:51:37,778 INFO 9788 [access-log] [-/127.0.0.1/-/240ms GET /api/onlive/contact] 200 OK
+2020-07-22 16:09:29,504 DEBUG 9864 [access-log] [-/127.0.0.1/-/2ms GET /api/onlive/news] start...
+2020-07-22 16:09:29,564 INFO 9864 [access-log] [-/127.0.0.1/-/63ms GET /api/onlive/news] 200 OK
+2020-07-31 00:48:57,646 DEBUG 10124 [access-log] [-/127.0.0.1/-/1ms POST /api/onlive/lookuser/update/5ef4a9e608e07510c4b8d604] start...
+2020-07-31 00:48:59,559 INFO 10124 [access-log] [-/127.0.0.1/-/1915ms POST /api/onlive/lookuser/update/5ef4a9e608e07510c4b8d604] 200 OK

File diff suppressed because it is too large
+ 13001 - 0
package-lock.json


+ 63 - 0
package.json

@@ -0,0 +1,63 @@
+{
+  "name": "service-onlive",
+  "version": "1.0.0",
+  "description": "",
+  "private": true,
+  "egg": {
+    "framework": "naf-framework-mongoose"
+  },
+  "dependencies": {
+    "egg": "^2.23.0",
+    "egg-naf-amqp": "0.0.13",
+    "egg-redis": "^2.4.0",
+    "egg-scripts": "^2.11.0",
+    "egg-view-nunjucks": "^2.2.0",
+    "jsonwebtoken": "^8.5.1",
+    "lodash": "^4.17.15",
+    "moment": "^2.24.0",
+    "naf-framework-mongoose": "^0.6.11",
+    "qiniu": "^7.3.2",
+    "raml2html": "^6.1.0",
+    "silly-datetime": "^0.1.2",
+    "string-random": "^0.1.3",
+    "tencentcloud-sdk-nodejs": "^3.0.199",
+    "tls-sig-api-v2": "^1.0.0",
+    "url-join": "^4.0.1",
+    "uuid": "^3.3.3",
+    "xlsx": "^0.15.1",
+    "xmlreader": "^0.2.3"
+  },
+  "devDependencies": {
+    "autod": "^3.0.1",
+    "autod-egg": "^1.1.0",
+    "egg-bin": "^4.11.0",
+    "egg-ci": "^1.11.0",
+    "egg-mock": "^3.21.0",
+    "eslint": "^5.13.0",
+    "eslint-config-egg": "^7.1.0"
+  },
+  "engines": {
+    "node": ">=10.0.0"
+  },
+  "scripts": {
+    "start": "egg-scripts start --daemon --title=egg-server-service-onlive",
+    "stop": "egg-scripts stop --title=egg-server-service-onlive",
+    "dev": "egg-bin dev",
+    "debug": "egg-bin debug",
+    "test": "npm run lint -- --fix && npm run test-local",
+    "test-local": "egg-bin test",
+    "cov": "egg-bin cov",
+    "lint": "eslint .",
+    "ci": "npm run lint && npm run cov",
+    "autod": "autod"
+  },
+  "ci": {
+    "version": "10"
+  },
+  "repository": {
+    "type": "git",
+    "url": ""
+  },
+  "author": "ly",
+  "license": "MIT"
+}

+ 598 - 0
run/agent_config.json

@@ -0,0 +1,598 @@
+{
+  "config": {
+    "session": {
+      "maxAge": 86400000,
+      "key": "EGG_SESS",
+      "httpOnly": true,
+      "encrypt": true
+    },
+    "security": {
+      "domainWhiteList": [],
+      "protocolWhiteList": [],
+      "defaultMiddleware": "csrf,hsts,methodnoallow,noopen,nosniff,csp,xssProtection,xframe,dta",
+      "csrf": {
+        "enable": false,
+        "type": "ctoken",
+        "ignoreJSON": false,
+        "useSession": false,
+        "cookieName": "csrfToken",
+        "sessionName": "csrfToken",
+        "headerName": "x-csrf-token",
+        "bodyName": "_csrf",
+        "queryName": "_csrf",
+        "refererWhiteList": []
+      },
+      "xframe": {
+        "enable": true,
+        "value": "SAMEORIGIN"
+      },
+      "hsts": {
+        "enable": false,
+        "maxAge": 31536000,
+        "includeSubdomains": false
+      },
+      "dta": {
+        "enable": true
+      },
+      "methodnoallow": {
+        "enable": true
+      },
+      "noopen": {
+        "enable": true
+      },
+      "nosniff": {
+        "enable": true
+      },
+      "referrerPolicy": {
+        "enable": false,
+        "value": "no-referrer-when-downgrade"
+      },
+      "xssProtection": {
+        "enable": true,
+        "value": "1; mode=block"
+      },
+      "csp": {
+        "enable": false,
+        "policy": {}
+      },
+      "ssrf": {
+        "ipBlackList": null,
+        "checkAddress": null
+      },
+      "_protocolWhiteListSet": "<Set>"
+    },
+    "helper": {
+      "shtml": {}
+    },
+    "jsonp": {
+      "limit": 50,
+      "callback": [
+        "_callback",
+        "callback"
+      ],
+      "csrf": false
+    },
+    "onerror": {
+      "errorPageUrl": "",
+      "appErrorFilter": null,
+      "templatePath": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-onerror\\lib\\onerror_page.mustache",
+      "json": "<Function json>"
+    },
+    "i18n": {
+      "defaultLocale": "en_US",
+      "dirs": [],
+      "queryField": "locale",
+      "cookieField": "locale",
+      "cookieDomain": "",
+      "cookieMaxAge": "1y"
+    },
+    "watcher": {
+      "type": "development",
+      "eventSources": {
+        "default": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher\\lib\\event-sources\\default",
+        "development": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher\\lib\\event-sources\\development"
+      }
+    },
+    "customLogger": {
+      "scheduleLogger": {
+        "consoleLevel": "NONE",
+        "file": "egg-schedule.log"
+      }
+    },
+    "schedule": {
+      "directory": []
+    },
+    "multipart": {
+      "mode": "stream",
+      "autoFields": false,
+      "defaultCharset": "utf8",
+      "fieldNameSize": 100,
+      "fieldSize": "100kb",
+      "fields": 10,
+      "fileSize": "10mb",
+      "files": 10,
+      "fileExtensions": [],
+      "whitelist": null,
+      "tmpdir": "C:\\Users\\ADMINI\\x7e1\\AppData\\Local\\Temp\\egg-multipart-tmp\\service-onlive",
+      "cleanSchedule": {
+        "cron": "0 30 4 * * *"
+      }
+    },
+    "development": {
+      "watchDirs": [],
+      "ignoreDirs": [],
+      "fastReady": false,
+      "reloadOnDebug": true,
+      "overrideDefault": false
+    },
+    "logrotator": {
+      "filesRotateByHour": null,
+      "hourDelimiter": "-",
+      "filesRotateBySize": null,
+      "maxFileSize": 52428800,
+      "maxFiles": 10,
+      "rotateDuration": 60000,
+      "maxDays": 31
+    },
+    "static": {
+      "prefix": "/public/",
+      "dir": "D:\\work_vue\\zhzb\\service-onlive\\app\\public",
+      "dynamic": true,
+      "preload": false,
+      "buffer": false,
+      "maxFiles": 1000
+    },
+    "view": {
+      "root": "D:\\work_vue\\zhzb\\service-onlive\\app\\view",
+      "cache": false,
+      "defaultExtension": ".html",
+      "defaultViewEngine": "nunjucks",
+      "mapping": {
+        ".njk": "nunjucks"
+      }
+    },
+    "mongoose": {
+      "url": "mongodb://localhost:27017/liveplatform",
+      "options": {
+        "user": "demo",
+        "pass": "<String len: 4>",
+        "authSource": "admin",
+        "useNewUrlParser": true,
+        "useCreateIndex": true,
+        "useUnifiedTopology": true
+      },
+      "plugins": [],
+      "loadModel": true,
+      "app": true,
+      "agent": false
+    },
+    "validate": {},
+    "redis": {
+      "default": {},
+      "app": true,
+      "agent": false,
+      "supportTimeCommand": true,
+      "client": {
+        "port": 6379,
+        "host": "127.0.0.1",
+        "password": "<Number>",
+        "db": 0
+      }
+    },
+    "amqp": {
+      "default": {
+        "protocol": "amqp",
+        "hostname": "localhost",
+        "port": 5672,
+        "username": "guest",
+        "password": "<String len: 5>",
+        "vhost": "/"
+      },
+      "app": true,
+      "agent": true,
+      "client": {
+        "hostname": "127.0.0.1",
+        "username": "wy",
+        "password": "<String len: 1>",
+        "vhost": "smart"
+      }
+    },
+    "env": "local",
+    "name": "service-onlive",
+    "keys": "<String len: 33>",
+    "cookies": {},
+    "proxy": true,
+    "maxIpsCount": 0,
+    "maxProxyCount": 0,
+    "protocolHeaders": "x-forwarded-proto",
+    "ipHeaders": "x-forwarded-for",
+    "hostHeaders": "x-forwarded-host",
+    "pkg": {
+      "name": "service-onlive",
+      "version": "1.0.0",
+      "description": "",
+      "private": true,
+      "egg": {
+        "framework": "naf-framework-mongoose"
+      },
+      "dependencies": {
+        "egg": "^2.23.0",
+        "egg-naf-amqp": "0.0.13",
+        "egg-redis": "^2.4.0",
+        "egg-scripts": "^2.11.0",
+        "egg-view-nunjucks": "^2.2.0",
+        "jsonwebtoken": "^8.5.1",
+        "lodash": "^4.17.15",
+        "moment": "^2.24.0",
+        "naf-framework-mongoose": "^0.6.11",
+        "qiniu": "^7.3.2",
+        "raml2html": "^6.1.0",
+        "silly-datetime": "^0.1.2",
+        "string-random": "^0.1.3",
+        "tencentcloud-sdk-nodejs": "^3.0.199",
+        "tls-sig-api-v2": "^1.0.0",
+        "url-join": "^4.0.1",
+        "uuid": "^3.3.3",
+        "xlsx": "^0.15.1",
+        "xmlreader": "^0.2.3"
+      },
+      "devDependencies": {
+        "autod": "^3.0.1",
+        "autod-egg": "^1.1.0",
+        "egg-bin": "^4.11.0",
+        "egg-ci": "^1.11.0",
+        "egg-mock": "^3.21.0",
+        "eslint": "^5.13.0",
+        "eslint-config-egg": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10.0.0"
+      },
+      "scripts": {
+        "start": "egg-scripts start --daemon --title=egg-server-service-onlive",
+        "stop": "egg-scripts stop --title=egg-server-service-onlive",
+        "dev": "egg-bin dev",
+        "debug": "egg-bin debug",
+        "test": "npm run lint -- --fix && npm run test-local",
+        "test-local": "egg-bin test",
+        "cov": "egg-bin cov",
+        "lint": "eslint .",
+        "ci": "npm run lint && npm run cov",
+        "autod": "autod"
+      },
+      "ci": {
+        "version": "10"
+      },
+      "repository": {
+        "type": "git",
+        "url": ""
+      },
+      "author": "ly",
+      "license": "MIT"
+    },
+    "baseDir": "D:\\work_vue\\zhzb\\service-onlive",
+    "HOME": "C:\\Users\\Administrator",
+    "rundir": "D:\\work_vue\\zhzb\\service-onlive\\run",
+    "dump": {
+      "ignore": "<Set>"
+    },
+    "confusedConfigurations": {
+      "bodyparser": "bodyParser",
+      "notFound": "notfound",
+      "sitefile": "siteFile",
+      "middlewares": "middleware",
+      "httpClient": "httpclient"
+    },
+    "notfound": {
+      "pageUrl": ""
+    },
+    "siteFile": {
+      "/favicon.ico": "<Buffer len: 6463>"
+    },
+    "bodyParser": {
+      "enable": true,
+      "encoding": "utf8",
+      "formLimit": "1mb",
+      "jsonLimit": "1mb",
+      "textLimit": "1mb",
+      "strict": true,
+      "queryString": {
+        "arrayLimit": 100,
+        "depth": 5,
+        "parameterLimit": 1000
+      },
+      "onerror": "<Function onerror>"
+    },
+    "logger": {
+      "dir": "D:\\work_vue\\zhzb\\service-onlive\\logs\\service-onlive",
+      "encoding": "utf8",
+      "env": "local",
+      "level": "DEBUG",
+      "consoleLevel": "DEBUG",
+      "disableConsoleAfterReady": false,
+      "outputJSON": false,
+      "buffer": true,
+      "appLogName": "service-onlive-web.log",
+      "coreLogName": "egg-web.log",
+      "agentLogName": "egg-agent.log",
+      "errorLogName": "common-error.log",
+      "coreLogger": {
+        "consoleLevel": "WARN"
+      },
+      "allowDebugAtProd": false,
+      "type": "agent"
+    },
+    "httpclient": {
+      "enableDNSCache": false,
+      "dnsCacheLookupInterval": 10000,
+      "dnsCacheMaxLength": 1000,
+      "request": {
+        "timeout": 5000
+      },
+      "httpAgent": {
+        "keepAlive": true,
+        "freeSocketTimeout": 4000,
+        "maxSockets": 9007199254740991,
+        "maxFreeSockets": 256
+      },
+      "httpsAgent": {
+        "keepAlive": true,
+        "freeSocketTimeout": 4000,
+        "maxSockets": 9007199254740991,
+        "maxFreeSockets": 256
+      }
+    },
+    "meta": {
+      "enable": true,
+      "logging": false
+    },
+    "coreMiddleware": [
+      "meta",
+      "siteFile",
+      "notfound",
+      "bodyParser",
+      "overrideMethod"
+    ],
+    "workerStartTimeout": 600000,
+    "serverTimeout": null,
+    "cluster": {
+      "listen": {
+        "path": "",
+        "port": 5555,
+        "hostname": ""
+      }
+    },
+    "clusterClient": {
+      "maxWaitTime": 60000,
+      "responseTimeout": 60000
+    },
+    "onClientError": null,
+    "test": {
+      "key": "service-onlive_123456"
+    },
+    "errorMongo": {
+      "details": true
+    },
+    "errorHandler": {
+      "details": true
+    },
+    "accessLog": {
+      "enable": true,
+      "body": false
+    },
+    "middleware": [],
+    "wxapi": {
+      "appid": "wxd794d8f022ffd8c8",
+      "appSecret": "<String len: 32>",
+      "baseUrl": "http://wx.cc-lotus.info",
+      "mchid": "1505364491",
+      "mchkey": "1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik9",
+      "wxurl": "https://zb.liaoningdoupo.com/api/onlive/wxpayback",
+      "payurl": "https://api.mch.weixin.qq.com/pay/unifiedorder"
+    },
+    "baseUrl": "https://zb.liaoningdoupo.com",
+    "authUrl": "/api/onlive/auth",
+    "sdkappid": 1400380125,
+    "secretkey": "<String len: 64>",
+    "jwt": {
+      "secret": "<String len: 13>",
+      "expiresIn": "1d",
+      "issuer": "jobs"
+    },
+    "coreMiddlewares": "~config~coreMiddleware",
+    "appMiddlewares": "~config~middleware",
+    "appMiddleware": "~config~middleware"
+  },
+  "plugins": {
+    "session": {
+      "enable": true,
+      "package": "egg-session",
+      "name": "session",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-session",
+      "version": "3.2.0"
+    },
+    "security": {
+      "enable": true,
+      "package": "egg-security",
+      "name": "security",
+      "dependencies": [],
+      "optionalDependencies": [
+        "session"
+      ],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security",
+      "version": "2.8.0"
+    },
+    "jsonp": {
+      "enable": true,
+      "package": "egg-jsonp",
+      "name": "jsonp",
+      "dependencies": [],
+      "optionalDependencies": [
+        "security"
+      ],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-jsonp",
+      "version": "2.0.0"
+    },
+    "onerror": {
+      "enable": true,
+      "package": "egg-onerror",
+      "name": "onerror",
+      "dependencies": [],
+      "optionalDependencies": [
+        "jsonp"
+      ],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-onerror",
+      "version": "2.1.0"
+    },
+    "i18n": {
+      "enable": true,
+      "package": "egg-i18n",
+      "name": "i18n",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n",
+      "version": "2.1.1"
+    },
+    "watcher": {
+      "enable": true,
+      "package": "egg-watcher",
+      "name": "watcher",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher",
+      "version": "3.1.1"
+    },
+    "schedule": {
+      "enable": true,
+      "package": "egg-schedule",
+      "name": "schedule",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-schedule",
+      "version": "3.6.4"
+    },
+    "multipart": {
+      "enable": true,
+      "package": "egg-multipart",
+      "name": "multipart",
+      "dependencies": [],
+      "optionalDependencies": [
+        "schedule"
+      ],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart",
+      "version": "2.10.3"
+    },
+    "development": {
+      "enable": true,
+      "package": "egg-development",
+      "name": "development",
+      "dependencies": [
+        "watcher"
+      ],
+      "optionalDependencies": [],
+      "env": [
+        "local"
+      ],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development",
+      "version": "2.5.0"
+    },
+    "logrotator": {
+      "enable": true,
+      "package": "egg-logrotator",
+      "name": "logrotator",
+      "dependencies": [
+        "schedule"
+      ],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator",
+      "version": "3.1.0"
+    },
+    "static": {
+      "enable": true,
+      "package": "egg-static",
+      "name": "static",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static",
+      "version": "2.2.0"
+    },
+    "view": {
+      "enable": true,
+      "package": "egg-view",
+      "name": "view",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-view",
+      "version": "2.1.2"
+    },
+    "mongoose": {
+      "enable": true,
+      "package": "egg-mongoose",
+      "name": "mongoose",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-mongoose",
+      "version": "3.2.0"
+    },
+    "validate": {
+      "enable": true,
+      "package": "egg-validate",
+      "name": "validate",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-validate",
+      "version": "2.0.2"
+    },
+    "redis": {
+      "enable": true,
+      "package": "egg-redis",
+      "name": "redis",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-redis",
+      "version": "2.4.0"
+    },
+    "amqp": {
+      "enable": true,
+      "package": "egg-naf-amqp",
+      "name": "amqp",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp",
+      "version": "0.0.13"
+    }
+  }
+}

+ 390 - 0
run/agent_config_meta.json

@@ -0,0 +1,390 @@
+{
+  "keys": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "middleware": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "cluster": {
+    "listen": {
+      "port": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "hostname": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    }
+  },
+  "wxapi": {
+    "appid": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "appSecret": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "baseUrl": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "mchid": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "mchkey": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "wxurl": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "payurl": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js"
+  },
+  "proxy": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "hostHeaders": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "baseUrl": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "authUrl": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "sdkappid": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "secretkey": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "mongoose": {
+    "url": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+    "options": {
+      "user": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "pass": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "authSource": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "useNewUrlParser": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "useCreateIndex": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "useUnifiedTopology": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js"
+    },
+    "plugins": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-mongoose\\config\\config.default.js",
+    "loadModel": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-mongoose\\config\\config.default.js",
+    "app": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-mongoose\\config\\config.default.js",
+    "agent": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-mongoose\\config\\config.default.js"
+  },
+  "redis": {
+    "client": {
+      "port": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+      "host": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+      "password": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+      "db": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js"
+    },
+    "default": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-redis\\config\\config.default.js",
+    "app": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-redis\\config\\config.default.js",
+    "agent": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-redis\\config\\config.default.js",
+    "supportTimeCommand": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-redis\\config\\config.default.js"
+  },
+  "amqp": {
+    "client": {
+      "hostname": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "username": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "password": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "vhost": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js"
+    },
+    "app": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+    "agent": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+    "default": {
+      "protocol": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js",
+      "hostname": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js",
+      "port": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js",
+      "username": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js",
+      "password": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js",
+      "vhost": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js"
+    }
+  },
+  "security": {
+    "csrf": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+      "type": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "ignoreJSON": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "useSession": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "cookieName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "sessionName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "headerName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "bodyName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "queryName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "refererWhiteList": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "domainWhiteList": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+    "protocolWhiteList": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+    "defaultMiddleware": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+    "xframe": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "hsts": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.local.js",
+      "maxAge": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "includeSubdomains": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "dta": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "methodnoallow": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "noopen": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "nosniff": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "referrerPolicy": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "xssProtection": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "csp": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "policy": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "ssrf": {
+      "ipBlackList": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "checkAddress": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    }
+  },
+  "jwt": {
+    "secret": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "expiresIn": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "issuer": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js"
+  },
+  "view": {
+    "defaultViewEngine": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "mapping": {
+      ".njk": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js"
+    },
+    "root": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-view\\config\\config.default.js",
+    "cache": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-view\\config\\config.local.js",
+    "defaultExtension": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-view\\config\\config.default.js"
+  },
+  "logger": {
+    "level": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+    "consoleLevel": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+    "dir": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "encoding": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "env": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "disableConsoleAfterReady": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "outputJSON": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "buffer": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "appLogName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "coreLogName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "agentLogName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "errorLogName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "coreLogger": {
+      "consoleLevel": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.local.js"
+    },
+    "allowDebugAtProd": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "session": {
+    "maxAge": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-session\\config\\config.default.js",
+    "key": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-session\\config\\config.default.js",
+    "httpOnly": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-session\\config\\config.default.js",
+    "encrypt": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-session\\config\\config.default.js"
+  },
+  "helper": {
+    "shtml": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+  },
+  "jsonp": {
+    "limit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-jsonp\\config\\config.default.js",
+    "callback": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-jsonp\\config\\config.default.js",
+    "csrf": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-jsonp\\config\\config.default.js"
+  },
+  "onerror": {
+    "errorPageUrl": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-onerror\\config\\config.default.js",
+    "appErrorFilter": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-onerror\\config\\config.default.js",
+    "templatePath": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-onerror\\config\\config.default.js",
+    "json": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js"
+  },
+  "i18n": {
+    "defaultLocale": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js",
+    "dirs": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js",
+    "queryField": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieField": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieDomain": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieMaxAge": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js"
+  },
+  "watcher": {
+    "type": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher\\config\\config.local.js",
+    "eventSources": {
+      "default": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher\\config\\config.default.js",
+      "development": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher\\config\\config.default.js"
+    }
+  },
+  "customLogger": {
+    "scheduleLogger": {
+      "consoleLevel": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-schedule\\config\\config.default.js",
+      "file": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-schedule\\config\\config.default.js"
+    }
+  },
+  "schedule": {
+    "directory": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-schedule\\config\\config.default.js"
+  },
+  "multipart": {
+    "mode": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "autoFields": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "defaultCharset": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fieldNameSize": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fieldSize": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fields": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fileSize": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "files": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fileExtensions": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "whitelist": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "tmpdir": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "cleanSchedule": {
+      "cron": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js"
+    }
+  },
+  "development": {
+    "watchDirs": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development\\config\\config.default.js",
+    "ignoreDirs": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development\\config\\config.default.js",
+    "fastReady": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development\\config\\config.default.js",
+    "reloadOnDebug": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development\\config\\config.default.js",
+    "overrideDefault": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development\\config\\config.default.js"
+  },
+  "logrotator": {
+    "filesRotateByHour": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "hourDelimiter": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "filesRotateBySize": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxFileSize": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxFiles": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "rotateDuration": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxDays": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js"
+  },
+  "static": {
+    "prefix": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js",
+    "dir": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js",
+    "dynamic": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js",
+    "preload": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js",
+    "buffer": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js",
+    "maxFiles": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js"
+  },
+  "validate": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-validate\\config\\config.default.js",
+  "env": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "name": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "cookies": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "maxIpsCount": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "maxProxyCount": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "protocolHeaders": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "ipHeaders": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "pkg": {
+    "name": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "version": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "description": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "private": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "egg": {
+      "framework": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "dependencies": {
+      "egg": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-naf-amqp": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-redis": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-scripts": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-view-nunjucks": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "jsonwebtoken": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "lodash": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "moment": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "naf-framework-mongoose": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "qiniu": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "raml2html": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "silly-datetime": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "string-random": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "tencentcloud-sdk-nodejs": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "tls-sig-api-v2": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "url-join": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "uuid": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "xlsx": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "xmlreader": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "devDependencies": {
+      "autod": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "autod-egg": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-bin": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-ci": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-mock": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "eslint": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "eslint-config-egg": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "engines": {
+      "node": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "scripts": {
+      "start": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "stop": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "dev": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "debug": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "test": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "test-local": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "cov": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "lint": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "ci": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "autod": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "ci": {
+      "version": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "repository": {
+      "type": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "url": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "author": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "license": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "baseDir": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "HOME": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "rundir": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "dump": {
+    "ignore": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "confusedConfigurations": {
+    "bodyparser": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "notFound": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "sitefile": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "middlewares": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "httpClient": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "notfound": {
+    "pageUrl": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "siteFile": {
+    "/favicon.ico": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "bodyParser": {
+    "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "encoding": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "formLimit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "jsonLimit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "textLimit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "strict": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "queryString": {
+      "arrayLimit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "depth": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "parameterLimit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "onerror": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "httpclient": {
+    "enableDNSCache": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "dnsCacheLookupInterval": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "dnsCacheMaxLength": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "request": {
+      "timeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "httpAgent": {
+      "keepAlive": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "freeSocketTimeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "maxSockets": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "maxFreeSockets": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "httpsAgent": {
+      "keepAlive": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "freeSocketTimeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "maxSockets": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "maxFreeSockets": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    }
+  },
+  "meta": {
+    "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "logging": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "coreMiddleware": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "workerStartTimeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "serverTimeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "clusterClient": {
+    "maxWaitTime": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "responseTimeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "onClientError": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "test": {
+    "key": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js"
+  },
+  "errorMongo": {
+    "details": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js"
+  },
+  "errorHandler": {
+    "details": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js"
+  },
+  "accessLog": {
+    "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js",
+    "body": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js"
+  }
+}

+ 474 - 0
run/agent_timing_9896.json

@@ -0,0 +1,474 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1597472848818,
+    "end": 1597472853091,
+    "duration": 4273,
+    "pid": 9896,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1597472848834,
+    "end": 1597472849836,
+    "duration": 1002,
+    "pid": 9896,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1597472849836,
+    "end": 1597472850170,
+    "duration": 334,
+    "pid": 9896,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.js",
+    "start": 1597472849838,
+    "end": 1597472849859,
+    "duration": 21,
+    "pid": 9896,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.js",
+    "start": 1597472849861,
+    "end": 1597472849862,
+    "duration": 1,
+    "pid": 9896,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1597472849863,
+    "end": 1597472849864,
+    "duration": 1,
+    "pid": 9896,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1597472849865,
+    "end": 1597472849887,
+    "duration": 22,
+    "pid": 9896,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1597472849888,
+    "end": 1597472849889,
+    "duration": 1,
+    "pid": 9896,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1597472849890,
+    "end": 1597472849892,
+    "duration": 2,
+    "pid": 9896,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1597472849893,
+    "end": 1597472849931,
+    "duration": 38,
+    "pid": 9896,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1597472849932,
+    "end": 1597472849933,
+    "duration": 1,
+    "pid": 9896,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1597472849934,
+    "end": 1597472849935,
+    "duration": 1,
+    "pid": 9896,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1597472849936,
+    "end": 1597472849952,
+    "duration": 16,
+    "pid": 9896,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1597472849954,
+    "end": 1597472849992,
+    "duration": 38,
+    "pid": 9896,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1597472849993,
+    "end": 1597472850017,
+    "duration": 24,
+    "pid": 9896,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1597472850019,
+    "end": 1597472850029,
+    "duration": 10,
+    "pid": 9896,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1597472850031,
+    "end": 1597472850053,
+    "duration": 22,
+    "pid": 9896,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mongoose/config/config.default.js",
+    "start": 1597472850054,
+    "end": 1597472850055,
+    "duration": 1,
+    "pid": 9896,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1597472850057,
+    "end": 1597472850058,
+    "duration": 1,
+    "pid": 9896,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg-redis/config/config.default.js",
+    "start": 1597472850059,
+    "end": 1597472850065,
+    "duration": 6,
+    "pid": 9896,
+    "index": 19
+  },
+  {
+    "name": "Require(17) node_modules/egg-naf-amqp/config/config.default.js",
+    "start": 1597472850066,
+    "end": 1597472850081,
+    "duration": 15,
+    "pid": 9896,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg/config/config.default.js",
+    "start": 1597472850082,
+    "end": 1597472850111,
+    "duration": 29,
+    "pid": 9896,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/naf-framework-mongoose/config/config.default.js",
+    "start": 1597472850141,
+    "end": 1597472850154,
+    "duration": 13,
+    "pid": 9896,
+    "index": 22
+  },
+  {
+    "name": "Require(20) config/config.default.js",
+    "start": 1597472850155,
+    "end": 1597472850155,
+    "duration": 0,
+    "pid": 9896,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg-security/config/config.local.js",
+    "start": 1597472850158,
+    "end": 1597472850159,
+    "duration": 1,
+    "pid": 9896,
+    "index": 24
+  },
+  {
+    "name": "Require(22) node_modules/egg-watcher/config/config.local.js",
+    "start": 1597472850161,
+    "end": 1597472850162,
+    "duration": 1,
+    "pid": 9896,
+    "index": 25
+  },
+  {
+    "name": "Require(23) node_modules/egg-view/config/config.local.js",
+    "start": 1597472850165,
+    "end": 1597472850166,
+    "duration": 1,
+    "pid": 9896,
+    "index": 26
+  },
+  {
+    "name": "Require(24) node_modules/egg/config/config.local.js",
+    "start": 1597472850169,
+    "end": 1597472850169,
+    "duration": 0,
+    "pid": 9896,
+    "index": 27
+  },
+  {
+    "name": "Require(25) config/config.local.js",
+    "start": 1597472850170,
+    "end": 1597472850170,
+    "duration": 0,
+    "pid": 9896,
+    "index": 28
+  },
+  {
+    "name": "Load extend/agent.js",
+    "start": 1597472850173,
+    "end": 1597472850718,
+    "duration": 545,
+    "pid": 9896,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-security/app/extend/agent.js",
+    "start": 1597472850175,
+    "end": 1597472850178,
+    "duration": 3,
+    "pid": 9896,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-schedule/app/extend/agent.js",
+    "start": 1597472850181,
+    "end": 1597472850692,
+    "duration": 511,
+    "pid": 9896,
+    "index": 31
+  },
+  {
+    "name": "Require(28) node_modules/egg-logrotator/app/extend/agent.js",
+    "start": 1597472850694,
+    "end": 1597472850706,
+    "duration": 12,
+    "pid": 9896,
+    "index": 32
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1597472850718,
+    "end": 1597472851607,
+    "duration": 889,
+    "pid": 9896,
+    "index": 33
+  },
+  {
+    "name": "Require(29) node_modules/egg-security/app/extend/context.js",
+    "start": 1597472850719,
+    "end": 1597472850935,
+    "duration": 216,
+    "pid": 9896,
+    "index": 34
+  },
+  {
+    "name": "Require(30) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1597472850936,
+    "end": 1597472851004,
+    "duration": 68,
+    "pid": 9896,
+    "index": 35
+  },
+  {
+    "name": "Require(31) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1597472851005,
+    "end": 1597472851006,
+    "duration": 1,
+    "pid": 9896,
+    "index": 36
+  },
+  {
+    "name": "Require(32) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1597472851007,
+    "end": 1597472851524,
+    "duration": 517,
+    "pid": 9896,
+    "index": 37
+  },
+  {
+    "name": "Require(33) node_modules/egg-view/app/extend/context.js",
+    "start": 1597472851526,
+    "end": 1597472851547,
+    "duration": 21,
+    "pid": 9896,
+    "index": 38
+  },
+  {
+    "name": "Require(34) node_modules/egg-mongoose/app/extend/context.js",
+    "start": 1597472851547,
+    "end": 1597472851548,
+    "duration": 1,
+    "pid": 9896,
+    "index": 39
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1597472851549,
+    "end": 1597472851550,
+    "duration": 1,
+    "pid": 9896,
+    "index": 40
+  },
+  {
+    "name": "Require(36) node_modules/egg-naf-amqp/app/extend/context.js",
+    "start": 1597472851551,
+    "end": 1597472851552,
+    "duration": 1,
+    "pid": 9896,
+    "index": 41
+  },
+  {
+    "name": "Require(37) node_modules/egg/app/extend/context.js",
+    "start": 1597472851553,
+    "end": 1597472851572,
+    "duration": 19,
+    "pid": 9896,
+    "index": 42
+  },
+  {
+    "name": "Require(38) node_modules/naf-framework-mongoose/app/extend/context.js",
+    "start": 1597472851574,
+    "end": 1597472851595,
+    "duration": 21,
+    "pid": 9896,
+    "index": 43
+  },
+  {
+    "name": "Load agent.js",
+    "start": 1597472851607,
+    "end": 1597472852657,
+    "duration": 1050,
+    "pid": 9896,
+    "index": 44
+  },
+  {
+    "name": "Require(39) node_modules/egg-security/agent.js",
+    "start": 1597472851608,
+    "end": 1597472851609,
+    "duration": 1,
+    "pid": 9896,
+    "index": 45
+  },
+  {
+    "name": "Require(40) node_modules/egg-onerror/agent.js",
+    "start": 1597472851611,
+    "end": 1597472851612,
+    "duration": 1,
+    "pid": 9896,
+    "index": 46
+  },
+  {
+    "name": "Require(41) node_modules/egg-watcher/agent.js",
+    "start": 1597472851613,
+    "end": 1597472851644,
+    "duration": 31,
+    "pid": 9896,
+    "index": 47
+  },
+  {
+    "name": "Require(42) node_modules/egg-schedule/agent.js",
+    "start": 1597472851644,
+    "end": 1597472851648,
+    "duration": 4,
+    "pid": 9896,
+    "index": 48
+  },
+  {
+    "name": "Require(43) node_modules/egg-development/agent.js",
+    "start": 1597472851649,
+    "end": 1597472851725,
+    "duration": 76,
+    "pid": 9896,
+    "index": 49
+  },
+  {
+    "name": "Require(44) node_modules/egg-logrotator/agent.js",
+    "start": 1597472851727,
+    "end": 1597472851728,
+    "duration": 1,
+    "pid": 9896,
+    "index": 50
+  },
+  {
+    "name": "Require(45) node_modules/egg-mongoose/agent.js",
+    "start": 1597472851729,
+    "end": 1597472851730,
+    "duration": 1,
+    "pid": 9896,
+    "index": 51
+  },
+  {
+    "name": "Require(46) node_modules/egg-redis/agent.js",
+    "start": 1597472851732,
+    "end": 1597472851742,
+    "duration": 10,
+    "pid": 9896,
+    "index": 52
+  },
+  {
+    "name": "Require(47) node_modules/egg-naf-amqp/agent.js",
+    "start": 1597472851743,
+    "end": 1597472852654,
+    "duration": 911,
+    "pid": 9896,
+    "index": 53
+  },
+  {
+    "name": "Require(48) node_modules/egg/agent.js",
+    "start": 1597472852655,
+    "end": 1597472852656,
+    "duration": 1,
+    "pid": 9896,
+    "index": 54
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1597472852677,
+    "end": 1597472853014,
+    "duration": 337,
+    "pid": 9896,
+    "index": 55
+  },
+  {
+    "name": "Before Start in node_modules/egg-schedule/agent.js:12:9",
+    "start": 1597472852679,
+    "end": 1597472852882,
+    "duration": 203,
+    "pid": 9896,
+    "index": 56
+  },
+  {
+    "name": "Before Start in node_modules/egg-development/agent.js:12:9",
+    "start": 1597472852680,
+    "end": 1597472853079,
+    "duration": 399,
+    "pid": 9896,
+    "index": 57
+  },
+  {
+    "name": "Before Start in node_modules/egg-naf-amqp/lib/amqp.js:28:7",
+    "start": 1597472852682,
+    "end": 1597472853090,
+    "duration": 408,
+    "pid": 9896,
+    "index": 58
+  }
+]

+ 662 - 0
run/application_config.json

@@ -0,0 +1,662 @@
+{
+  "config": {
+    "session": {
+      "maxAge": 86400000,
+      "key": "EGG_SESS",
+      "httpOnly": true,
+      "encrypt": true,
+      "overwrite": true,
+      "signed": true,
+      "autoCommit": true,
+      "encode": "<Function encode>",
+      "decode": "<Function decode>",
+      "genid": "<Function v4>"
+    },
+    "security": {
+      "domainWhiteList": [],
+      "protocolWhiteList": [],
+      "defaultMiddleware": "csrf,hsts,methodnoallow,noopen,nosniff,csp,xssProtection,xframe,dta",
+      "csrf": {
+        "enable": false,
+        "type": "ctoken",
+        "ignoreJSON": false,
+        "useSession": false,
+        "cookieName": "csrfToken",
+        "sessionName": "csrfToken",
+        "headerName": "x-csrf-token",
+        "bodyName": "_csrf",
+        "queryName": "_csrf",
+        "refererWhiteList": []
+      },
+      "xframe": {
+        "enable": true,
+        "value": "SAMEORIGIN",
+        "matching": "<Function anonymous>"
+      },
+      "hsts": {
+        "enable": false,
+        "maxAge": 31536000,
+        "includeSubdomains": false
+      },
+      "dta": {
+        "enable": true,
+        "matching": "<Function anonymous>"
+      },
+      "methodnoallow": {
+        "enable": true,
+        "matching": "<Function anonymous>"
+      },
+      "noopen": {
+        "enable": true,
+        "matching": "<Function anonymous>"
+      },
+      "nosniff": {
+        "enable": true,
+        "matching": "<Function anonymous>"
+      },
+      "referrerPolicy": {
+        "enable": false,
+        "value": "no-referrer-when-downgrade"
+      },
+      "xssProtection": {
+        "enable": true,
+        "value": "1; mode=block",
+        "matching": "<Function anonymous>"
+      },
+      "csp": {
+        "enable": false,
+        "policy": {}
+      },
+      "ssrf": {
+        "ipBlackList": null,
+        "checkAddress": null
+      },
+      "_protocolWhiteListSet": "<Set>"
+    },
+    "helper": {
+      "shtml": {}
+    },
+    "jsonp": {
+      "limit": 50,
+      "callback": [
+        "_callback",
+        "callback"
+      ],
+      "csrf": false
+    },
+    "onerror": {
+      "errorPageUrl": "",
+      "appErrorFilter": null,
+      "templatePath": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-onerror\\lib\\onerror_page.mustache",
+      "json": "<Function json>"
+    },
+    "i18n": {
+      "defaultLocale": "en_US",
+      "dirs": [
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-session\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-jsonp\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-onerror\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-schedule\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-view\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-mongoose\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-validate\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-redis\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\locales",
+        "D:\\work_vue\\zhzb\\service-onlive\\config\\locales"
+      ],
+      "queryField": "locale",
+      "cookieField": "locale",
+      "cookieDomain": "",
+      "cookieMaxAge": "1y",
+      "functionName": "__"
+    },
+    "watcher": {
+      "type": "development",
+      "eventSources": {
+        "default": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher\\lib\\event-sources\\default",
+        "development": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher\\lib\\event-sources\\development"
+      }
+    },
+    "customLogger": {
+      "scheduleLogger": {
+        "consoleLevel": "NONE",
+        "file": "egg-schedule.log"
+      }
+    },
+    "schedule": {
+      "directory": []
+    },
+    "multipart": {
+      "mode": "stream",
+      "autoFields": false,
+      "defaultCharset": "utf8",
+      "fieldNameSize": 100,
+      "fieldSize": 102400,
+      "fields": 10,
+      "fileSize": 10485760,
+      "files": 10,
+      "fileExtensions": [],
+      "whitelist": null,
+      "tmpdir": "C:\\Users\\ADMINI\\x7e1\\AppData\\Local\\Temp\\egg-multipart-tmp\\service-onlive",
+      "cleanSchedule": {
+        "cron": "0 30 4 * * *"
+      }
+    },
+    "development": {
+      "watchDirs": [],
+      "ignoreDirs": [],
+      "fastReady": false,
+      "reloadOnDebug": true,
+      "overrideDefault": false
+    },
+    "logrotator": {
+      "filesRotateByHour": null,
+      "hourDelimiter": "-",
+      "filesRotateBySize": null,
+      "maxFileSize": 52428800,
+      "maxFiles": 10,
+      "rotateDuration": 60000,
+      "maxDays": 31
+    },
+    "static": {
+      "prefix": "/public/",
+      "dir": "D:\\work_vue\\zhzb\\service-onlive\\app\\public",
+      "dynamic": true,
+      "preload": false,
+      "buffer": false,
+      "maxFiles": 1000
+    },
+    "view": {
+      "root": "D:\\work_vue\\zhzb\\service-onlive\\app\\view",
+      "cache": false,
+      "defaultExtension": ".html",
+      "defaultViewEngine": "nunjucks",
+      "mapping": {
+        ".njk": "nunjucks"
+      }
+    },
+    "mongoose": {
+      "url": "mongodb://localhost:27017/liveplatform",
+      "options": {
+        "user": "demo",
+        "pass": "<String len: 4>",
+        "authSource": "admin",
+        "useNewUrlParser": true,
+        "useCreateIndex": true,
+        "useUnifiedTopology": true
+      },
+      "plugins": [],
+      "loadModel": true,
+      "app": true,
+      "agent": false,
+      "client": {
+        "url": "mongodb://localhost:27017/liveplatform",
+        "options": {
+          "user": "demo",
+          "pass": "<String len: 4>",
+          "authSource": "admin",
+          "useNewUrlParser": true,
+          "useCreateIndex": true,
+          "useUnifiedTopology": true
+        }
+      }
+    },
+    "validate": {},
+    "redis": {
+      "default": {},
+      "app": true,
+      "agent": false,
+      "supportTimeCommand": true,
+      "client": {
+        "port": 6379,
+        "host": "127.0.0.1",
+        "password": "<Number>",
+        "db": 0
+      }
+    },
+    "amqp": {
+      "default": {
+        "protocol": "amqp",
+        "hostname": "localhost",
+        "port": 5672,
+        "username": "guest",
+        "password": "<String len: 5>",
+        "vhost": "/"
+      },
+      "app": true,
+      "agent": true,
+      "client": {
+        "hostname": "127.0.0.1",
+        "username": "wy",
+        "password": "<String len: 1>",
+        "vhost": "smart"
+      }
+    },
+    "env": "local",
+    "name": "service-onlive",
+    "keys": "<String len: 33>",
+    "cookies": {},
+    "proxy": true,
+    "maxIpsCount": 0,
+    "maxProxyCount": 0,
+    "protocolHeaders": "x-forwarded-proto",
+    "ipHeaders": "x-forwarded-for",
+    "hostHeaders": "x-forwarded-host",
+    "pkg": {
+      "name": "service-onlive",
+      "version": "1.0.0",
+      "description": "",
+      "private": true,
+      "egg": {
+        "framework": "naf-framework-mongoose"
+      },
+      "dependencies": {
+        "egg": "^2.23.0",
+        "egg-naf-amqp": "0.0.13",
+        "egg-redis": "^2.4.0",
+        "egg-scripts": "^2.11.0",
+        "egg-view-nunjucks": "^2.2.0",
+        "jsonwebtoken": "^8.5.1",
+        "lodash": "^4.17.15",
+        "moment": "^2.24.0",
+        "naf-framework-mongoose": "^0.6.11",
+        "qiniu": "^7.3.2",
+        "raml2html": "^6.1.0",
+        "silly-datetime": "^0.1.2",
+        "string-random": "^0.1.3",
+        "tencentcloud-sdk-nodejs": "^3.0.199",
+        "tls-sig-api-v2": "^1.0.0",
+        "url-join": "^4.0.1",
+        "uuid": "^3.3.3",
+        "xlsx": "^0.15.1",
+        "xmlreader": "^0.2.3"
+      },
+      "devDependencies": {
+        "autod": "^3.0.1",
+        "autod-egg": "^1.1.0",
+        "egg-bin": "^4.11.0",
+        "egg-ci": "^1.11.0",
+        "egg-mock": "^3.21.0",
+        "eslint": "^5.13.0",
+        "eslint-config-egg": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10.0.0"
+      },
+      "scripts": {
+        "start": "egg-scripts start --daemon --title=egg-server-service-onlive",
+        "stop": "egg-scripts stop --title=egg-server-service-onlive",
+        "dev": "egg-bin dev",
+        "debug": "egg-bin debug",
+        "test": "npm run lint -- --fix && npm run test-local",
+        "test-local": "egg-bin test",
+        "cov": "egg-bin cov",
+        "lint": "eslint .",
+        "ci": "npm run lint && npm run cov",
+        "autod": "autod"
+      },
+      "ci": {
+        "version": "10"
+      },
+      "repository": {
+        "type": "git",
+        "url": ""
+      },
+      "author": "ly",
+      "license": "MIT"
+    },
+    "baseDir": "D:\\work_vue\\zhzb\\service-onlive",
+    "HOME": "C:\\Users\\Administrator",
+    "rundir": "D:\\work_vue\\zhzb\\service-onlive\\run",
+    "dump": {
+      "ignore": "<Set>"
+    },
+    "confusedConfigurations": {
+      "bodyparser": "bodyParser",
+      "notFound": "notfound",
+      "sitefile": "siteFile",
+      "middlewares": "middleware",
+      "httpClient": "httpclient"
+    },
+    "notfound": {
+      "pageUrl": ""
+    },
+    "siteFile": {
+      "/favicon.ico": "<Buffer len: 6463>"
+    },
+    "bodyParser": {
+      "enable": true,
+      "encoding": "utf8",
+      "formLimit": "1mb",
+      "jsonLimit": "1mb",
+      "textLimit": "1mb",
+      "strict": true,
+      "queryString": {
+        "arrayLimit": 100,
+        "depth": 5,
+        "parameterLimit": 1000
+      },
+      "returnRawBody": true
+    },
+    "logger": {
+      "dir": "D:\\work_vue\\zhzb\\service-onlive\\logs\\service-onlive",
+      "encoding": "utf8",
+      "env": "local",
+      "level": "DEBUG",
+      "consoleLevel": "DEBUG",
+      "disableConsoleAfterReady": false,
+      "outputJSON": false,
+      "buffer": true,
+      "appLogName": "service-onlive-web.log",
+      "coreLogName": "egg-web.log",
+      "agentLogName": "egg-agent.log",
+      "errorLogName": "common-error.log",
+      "coreLogger": {
+        "consoleLevel": "WARN"
+      },
+      "allowDebugAtProd": false,
+      "type": "application"
+    },
+    "httpclient": {
+      "enableDNSCache": false,
+      "dnsCacheLookupInterval": 10000,
+      "dnsCacheMaxLength": 1000,
+      "request": {
+        "timeout": 5000
+      },
+      "httpAgent": {
+        "keepAlive": true,
+        "freeSocketTimeout": 4000,
+        "maxSockets": 9007199254740991,
+        "maxFreeSockets": 256
+      },
+      "httpsAgent": {
+        "keepAlive": true,
+        "freeSocketTimeout": 4000,
+        "maxSockets": 9007199254740991,
+        "maxFreeSockets": 256
+      }
+    },
+    "meta": {
+      "enable": true,
+      "logging": false
+    },
+    "coreMiddleware": [
+      "accessLog",
+      "errorHandler",
+      "errorMongo",
+      "meta",
+      "siteFile",
+      "notfound",
+      "static",
+      "bodyParser",
+      "overrideMethod",
+      "session",
+      "securities",
+      "i18n",
+      "eggLoaderTrace"
+    ],
+    "workerStartTimeout": 600000,
+    "serverTimeout": null,
+    "cluster": {
+      "listen": {
+        "path": "",
+        "port": 5555,
+        "hostname": ""
+      }
+    },
+    "clusterClient": {
+      "maxWaitTime": 60000,
+      "responseTimeout": 60000
+    },
+    "onClientError": null,
+    "test": {
+      "key": "service-onlive_123456"
+    },
+    "errorMongo": {
+      "details": true
+    },
+    "errorHandler": {
+      "details": true
+    },
+    "accessLog": {
+      "enable": true,
+      "body": false
+    },
+    "middleware": [],
+    "wxapi": {
+      "appid": "wxd794d8f022ffd8c8",
+      "appSecret": "<String len: 32>",
+      "baseUrl": "http://wx.cc-lotus.info",
+      "mchid": "1505364491",
+      "mchkey": "1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik9",
+      "wxurl": "https://zb.liaoningdoupo.com/api/onlive/wxpayback",
+      "payurl": "https://api.mch.weixin.qq.com/pay/unifiedorder"
+    },
+    "baseUrl": "https://zb.liaoningdoupo.com",
+    "authUrl": "/api/onlive/auth",
+    "sdkappid": 1400380125,
+    "secretkey": "<String len: 64>",
+    "jwt": {
+      "secret": "<String len: 13>",
+      "expiresIn": "1d",
+      "issuer": "jobs"
+    },
+    "coreMiddlewares": "~config~coreMiddleware",
+    "appMiddlewares": "~config~middleware",
+    "appMiddleware": "~config~middleware",
+    "multipartParseOptions": {
+      "autoFields": false,
+      "defCharset": "utf8",
+      "limits": {
+        "fieldNameSize": 100,
+        "fieldSize": 102400,
+        "fields": 10,
+        "fileSize": 10485760,
+        "files": 10
+      },
+      "checkFile": "<Function checkFile>"
+    }
+  },
+  "plugins": {
+    "session": {
+      "enable": true,
+      "package": "egg-session",
+      "name": "session",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-session",
+      "version": "3.2.0"
+    },
+    "security": {
+      "enable": true,
+      "package": "egg-security",
+      "name": "security",
+      "dependencies": [],
+      "optionalDependencies": [
+        "session"
+      ],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security",
+      "version": "2.8.0"
+    },
+    "jsonp": {
+      "enable": true,
+      "package": "egg-jsonp",
+      "name": "jsonp",
+      "dependencies": [],
+      "optionalDependencies": [
+        "security"
+      ],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-jsonp",
+      "version": "2.0.0"
+    },
+    "onerror": {
+      "enable": true,
+      "package": "egg-onerror",
+      "name": "onerror",
+      "dependencies": [],
+      "optionalDependencies": [
+        "jsonp"
+      ],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-onerror",
+      "version": "2.1.0"
+    },
+    "i18n": {
+      "enable": true,
+      "package": "egg-i18n",
+      "name": "i18n",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n",
+      "version": "2.1.1"
+    },
+    "watcher": {
+      "enable": true,
+      "package": "egg-watcher",
+      "name": "watcher",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher",
+      "version": "3.1.1"
+    },
+    "schedule": {
+      "enable": true,
+      "package": "egg-schedule",
+      "name": "schedule",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-schedule",
+      "version": "3.6.4"
+    },
+    "multipart": {
+      "enable": true,
+      "package": "egg-multipart",
+      "name": "multipart",
+      "dependencies": [],
+      "optionalDependencies": [
+        "schedule"
+      ],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart",
+      "version": "2.10.3"
+    },
+    "development": {
+      "enable": true,
+      "package": "egg-development",
+      "name": "development",
+      "dependencies": [
+        "watcher"
+      ],
+      "optionalDependencies": [],
+      "env": [
+        "local"
+      ],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development",
+      "version": "2.5.0"
+    },
+    "logrotator": {
+      "enable": true,
+      "package": "egg-logrotator",
+      "name": "logrotator",
+      "dependencies": [
+        "schedule"
+      ],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator",
+      "version": "3.1.0"
+    },
+    "static": {
+      "enable": true,
+      "package": "egg-static",
+      "name": "static",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static",
+      "version": "2.2.0"
+    },
+    "view": {
+      "enable": true,
+      "package": "egg-view",
+      "name": "view",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-view",
+      "version": "2.1.2"
+    },
+    "mongoose": {
+      "enable": true,
+      "package": "egg-mongoose",
+      "name": "mongoose",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-mongoose",
+      "version": "3.2.0"
+    },
+    "validate": {
+      "enable": true,
+      "package": "egg-validate",
+      "name": "validate",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-validate",
+      "version": "2.0.2"
+    },
+    "redis": {
+      "enable": true,
+      "package": "egg-redis",
+      "name": "redis",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-redis",
+      "version": "2.4.0"
+    },
+    "amqp": {
+      "enable": true,
+      "package": "egg-naf-amqp",
+      "name": "amqp",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "D:\\work_vue\\zhzb\\service-onlive\\config\\plugin.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp",
+      "version": "0.0.13"
+    }
+  }
+}

+ 390 - 0
run/application_config_meta.json

@@ -0,0 +1,390 @@
+{
+  "keys": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "middleware": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "cluster": {
+    "listen": {
+      "port": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+      "path": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "hostname": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    }
+  },
+  "wxapi": {
+    "appid": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "appSecret": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "baseUrl": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "mchid": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "mchkey": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "wxurl": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "payurl": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js"
+  },
+  "proxy": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "hostHeaders": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "baseUrl": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "authUrl": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "sdkappid": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "secretkey": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+  "mongoose": {
+    "url": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+    "options": {
+      "user": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "pass": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "authSource": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "useNewUrlParser": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "useCreateIndex": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "useUnifiedTopology": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js"
+    },
+    "plugins": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-mongoose\\config\\config.default.js",
+    "loadModel": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-mongoose\\config\\config.default.js",
+    "app": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-mongoose\\config\\config.default.js",
+    "agent": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-mongoose\\config\\config.default.js"
+  },
+  "redis": {
+    "client": {
+      "port": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+      "host": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+      "password": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+      "db": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js"
+    },
+    "default": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-redis\\config\\config.default.js",
+    "app": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-redis\\config\\config.default.js",
+    "agent": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-redis\\config\\config.default.js",
+    "supportTimeCommand": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-redis\\config\\config.default.js"
+  },
+  "amqp": {
+    "client": {
+      "hostname": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "username": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "password": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+      "vhost": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js"
+    },
+    "app": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+    "agent": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+    "default": {
+      "protocol": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js",
+      "hostname": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js",
+      "port": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js",
+      "username": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js",
+      "password": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js",
+      "vhost": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-naf-amqp\\config\\config.default.js"
+    }
+  },
+  "security": {
+    "csrf": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+      "type": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "ignoreJSON": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "useSession": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "cookieName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "sessionName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "headerName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "bodyName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "queryName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "refererWhiteList": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "domainWhiteList": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+    "protocolWhiteList": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+    "defaultMiddleware": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+    "xframe": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "hsts": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.local.js",
+      "maxAge": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "includeSubdomains": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "dta": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "methodnoallow": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "noopen": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "nosniff": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "referrerPolicy": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "xssProtection": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "csp": {
+      "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "policy": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "ssrf": {
+      "ipBlackList": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js",
+      "checkAddress": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+    }
+  },
+  "jwt": {
+    "secret": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "expiresIn": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "issuer": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js"
+  },
+  "view": {
+    "defaultViewEngine": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js",
+    "mapping": {
+      ".njk": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.default.js"
+    },
+    "root": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-view\\config\\config.default.js",
+    "cache": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-view\\config\\config.local.js",
+    "defaultExtension": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-view\\config\\config.default.js"
+  },
+  "logger": {
+    "level": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+    "consoleLevel": "D:\\work_vue\\zhzb\\service-onlive\\config\\config.local.js",
+    "dir": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "encoding": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "env": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "disableConsoleAfterReady": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "outputJSON": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "buffer": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "appLogName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "coreLogName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "agentLogName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "errorLogName": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "coreLogger": {
+      "consoleLevel": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.local.js"
+    },
+    "allowDebugAtProd": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "session": {
+    "maxAge": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-session\\config\\config.default.js",
+    "key": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-session\\config\\config.default.js",
+    "httpOnly": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-session\\config\\config.default.js",
+    "encrypt": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-session\\config\\config.default.js"
+  },
+  "helper": {
+    "shtml": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-security\\config\\config.default.js"
+  },
+  "jsonp": {
+    "limit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-jsonp\\config\\config.default.js",
+    "callback": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-jsonp\\config\\config.default.js",
+    "csrf": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-jsonp\\config\\config.default.js"
+  },
+  "onerror": {
+    "errorPageUrl": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-onerror\\config\\config.default.js",
+    "appErrorFilter": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-onerror\\config\\config.default.js",
+    "templatePath": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-onerror\\config\\config.default.js",
+    "json": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js"
+  },
+  "i18n": {
+    "defaultLocale": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js",
+    "dirs": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js",
+    "queryField": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieField": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieDomain": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieMaxAge": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-i18n\\config\\config.default.js"
+  },
+  "watcher": {
+    "type": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher\\config\\config.local.js",
+    "eventSources": {
+      "default": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher\\config\\config.default.js",
+      "development": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-watcher\\config\\config.default.js"
+    }
+  },
+  "customLogger": {
+    "scheduleLogger": {
+      "consoleLevel": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-schedule\\config\\config.default.js",
+      "file": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-schedule\\config\\config.default.js"
+    }
+  },
+  "schedule": {
+    "directory": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-schedule\\config\\config.default.js"
+  },
+  "multipart": {
+    "mode": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "autoFields": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "defaultCharset": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fieldNameSize": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fieldSize": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fields": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fileSize": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "files": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fileExtensions": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "whitelist": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "tmpdir": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js",
+    "cleanSchedule": {
+      "cron": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-multipart\\config\\config.default.js"
+    }
+  },
+  "development": {
+    "watchDirs": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development\\config\\config.default.js",
+    "ignoreDirs": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development\\config\\config.default.js",
+    "fastReady": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development\\config\\config.default.js",
+    "reloadOnDebug": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development\\config\\config.default.js",
+    "overrideDefault": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-development\\config\\config.default.js"
+  },
+  "logrotator": {
+    "filesRotateByHour": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "hourDelimiter": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "filesRotateBySize": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxFileSize": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxFiles": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "rotateDuration": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxDays": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-logrotator\\config\\config.default.js"
+  },
+  "static": {
+    "prefix": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js",
+    "dir": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js",
+    "dynamic": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js",
+    "preload": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js",
+    "buffer": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js",
+    "maxFiles": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-static\\config\\config.default.js"
+  },
+  "validate": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg-validate\\config\\config.default.js",
+  "env": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "name": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "cookies": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "maxIpsCount": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "maxProxyCount": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "protocolHeaders": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "ipHeaders": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "pkg": {
+    "name": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "version": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "description": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "private": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "egg": {
+      "framework": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "dependencies": {
+      "egg": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-naf-amqp": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-redis": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-scripts": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-view-nunjucks": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "jsonwebtoken": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "lodash": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "moment": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "naf-framework-mongoose": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "qiniu": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "raml2html": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "silly-datetime": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "string-random": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "tencentcloud-sdk-nodejs": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "tls-sig-api-v2": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "url-join": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "uuid": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "xlsx": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "xmlreader": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "devDependencies": {
+      "autod": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "autod-egg": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-bin": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-ci": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "egg-mock": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "eslint": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "eslint-config-egg": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "engines": {
+      "node": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "scripts": {
+      "start": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "stop": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "dev": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "debug": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "test": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "test-local": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "cov": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "lint": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "ci": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "autod": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "ci": {
+      "version": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "repository": {
+      "type": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "url": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "author": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "license": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "baseDir": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "HOME": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "rundir": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "dump": {
+    "ignore": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "confusedConfigurations": {
+    "bodyparser": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "notFound": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "sitefile": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "middlewares": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "httpClient": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "notfound": {
+    "pageUrl": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "siteFile": {
+    "/favicon.ico": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "bodyParser": {
+    "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "encoding": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "formLimit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "jsonLimit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "textLimit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "strict": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "queryString": {
+      "arrayLimit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "depth": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "parameterLimit": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "onerror": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "httpclient": {
+    "enableDNSCache": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "dnsCacheLookupInterval": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "dnsCacheMaxLength": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "request": {
+      "timeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "httpAgent": {
+      "keepAlive": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "freeSocketTimeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "maxSockets": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "maxFreeSockets": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    },
+    "httpsAgent": {
+      "keepAlive": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "freeSocketTimeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "maxSockets": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+      "maxFreeSockets": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+    }
+  },
+  "meta": {
+    "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "logging": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "coreMiddleware": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "workerStartTimeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "serverTimeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "clusterClient": {
+    "maxWaitTime": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+    "responseTimeout": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js"
+  },
+  "onClientError": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\egg\\config\\config.default.js",
+  "test": {
+    "key": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js"
+  },
+  "errorMongo": {
+    "details": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js"
+  },
+  "errorHandler": {
+    "details": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js"
+  },
+  "accessLog": {
+    "enable": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js",
+    "body": "D:\\work_vue\\zhzb\\service-onlive\\node_modules\\naf-framework-mongoose\\config\\config.default.js"
+  }
+}

+ 682 - 0
run/application_timing_2396.json

@@ -0,0 +1,682 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1597472855842,
+    "end": 1597472873873,
+    "duration": 18031,
+    "pid": 2396,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1597472855854,
+    "end": 1597472855936,
+    "duration": 82,
+    "pid": 2396,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1597472855936,
+    "end": 1597472856030,
+    "duration": 94,
+    "pid": 2396,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.js",
+    "start": 1597472855938,
+    "end": 1597472855940,
+    "duration": 2,
+    "pid": 2396,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.js",
+    "start": 1597472855943,
+    "end": 1597472855944,
+    "duration": 1,
+    "pid": 2396,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1597472855947,
+    "end": 1597472855948,
+    "duration": 1,
+    "pid": 2396,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1597472855949,
+    "end": 1597472855950,
+    "duration": 1,
+    "pid": 2396,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1597472855953,
+    "end": 1597472855956,
+    "duration": 3,
+    "pid": 2396,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1597472855958,
+    "end": 1597472855959,
+    "duration": 1,
+    "pid": 2396,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1597472855960,
+    "end": 1597472855962,
+    "duration": 2,
+    "pid": 2396,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1597472855963,
+    "end": 1597472855965,
+    "duration": 2,
+    "pid": 2396,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1597472855966,
+    "end": 1597472855967,
+    "duration": 1,
+    "pid": 2396,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1597472855969,
+    "end": 1597472855970,
+    "duration": 1,
+    "pid": 2396,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1597472855972,
+    "end": 1597472855973,
+    "duration": 1,
+    "pid": 2396,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1597472855974,
+    "end": 1597472855975,
+    "duration": 1,
+    "pid": 2396,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1597472855977,
+    "end": 1597472855978,
+    "duration": 1,
+    "pid": 2396,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1597472855979,
+    "end": 1597472855980,
+    "duration": 1,
+    "pid": 2396,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mongoose/config/config.default.js",
+    "start": 1597472855982,
+    "end": 1597472855983,
+    "duration": 1,
+    "pid": 2396,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1597472855984,
+    "end": 1597472855985,
+    "duration": 1,
+    "pid": 2396,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg-redis/config/config.default.js",
+    "start": 1597472855987,
+    "end": 1597472855989,
+    "duration": 2,
+    "pid": 2396,
+    "index": 19
+  },
+  {
+    "name": "Require(17) node_modules/egg-naf-amqp/config/config.default.js",
+    "start": 1597472855990,
+    "end": 1597472855993,
+    "duration": 3,
+    "pid": 2396,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg/config/config.default.js",
+    "start": 1597472855994,
+    "end": 1597472855995,
+    "duration": 1,
+    "pid": 2396,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/naf-framework-mongoose/config/config.default.js",
+    "start": 1597472856007,
+    "end": 1597472856008,
+    "duration": 1,
+    "pid": 2396,
+    "index": 22
+  },
+  {
+    "name": "Require(20) config/config.default.js",
+    "start": 1597472856009,
+    "end": 1597472856009,
+    "duration": 0,
+    "pid": 2396,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg-security/config/config.local.js",
+    "start": 1597472856011,
+    "end": 1597472856012,
+    "duration": 1,
+    "pid": 2396,
+    "index": 24
+  },
+  {
+    "name": "Require(22) node_modules/egg-watcher/config/config.local.js",
+    "start": 1597472856015,
+    "end": 1597472856016,
+    "duration": 1,
+    "pid": 2396,
+    "index": 25
+  },
+  {
+    "name": "Require(23) node_modules/egg-view/config/config.local.js",
+    "start": 1597472856023,
+    "end": 1597472856024,
+    "duration": 1,
+    "pid": 2396,
+    "index": 26
+  },
+  {
+    "name": "Require(24) node_modules/egg/config/config.local.js",
+    "start": 1597472856028,
+    "end": 1597472856029,
+    "duration": 1,
+    "pid": 2396,
+    "index": 27
+  },
+  {
+    "name": "Require(25) config/config.local.js",
+    "start": 1597472856030,
+    "end": 1597472856030,
+    "duration": 0,
+    "pid": 2396,
+    "index": 28
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1597472856036,
+    "end": 1597472856193,
+    "duration": 157,
+    "pid": 2396,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-session/app/extend/application.js",
+    "start": 1597472856038,
+    "end": 1597472856105,
+    "duration": 67,
+    "pid": 2396,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-security/app/extend/application.js",
+    "start": 1597472856107,
+    "end": 1597472856127,
+    "duration": 20,
+    "pid": 2396,
+    "index": 31
+  },
+  {
+    "name": "Require(28) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1597472856128,
+    "end": 1597472856155,
+    "duration": 27,
+    "pid": 2396,
+    "index": 32
+  },
+  {
+    "name": "Require(29) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1597472856160,
+    "end": 1597472856165,
+    "duration": 5,
+    "pid": 2396,
+    "index": 33
+  },
+  {
+    "name": "Require(30) node_modules/egg-view/app/extend/application.js",
+    "start": 1597472856168,
+    "end": 1597472856177,
+    "duration": 9,
+    "pid": 2396,
+    "index": 34
+  },
+  {
+    "name": "Require(31) node_modules/naf-framework-mongoose/app/extend/application.js",
+    "start": 1597472856180,
+    "end": 1597472856181,
+    "duration": 1,
+    "pid": 2396,
+    "index": 35
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1597472856193,
+    "end": 1597472856227,
+    "duration": 34,
+    "pid": 2396,
+    "index": 36
+  },
+  {
+    "name": "Require(32) node_modules/egg/app/extend/request.js",
+    "start": 1597472856205,
+    "end": 1597472856209,
+    "duration": 4,
+    "pid": 2396,
+    "index": 37
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1597472856227,
+    "end": 1597472856262,
+    "duration": 35,
+    "pid": 2396,
+    "index": 38
+  },
+  {
+    "name": "Require(33) node_modules/egg/app/extend/response.js",
+    "start": 1597472856242,
+    "end": 1597472856251,
+    "duration": 9,
+    "pid": 2396,
+    "index": 39
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1597472856262,
+    "end": 1597472856494,
+    "duration": 232,
+    "pid": 2396,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-security/app/extend/context.js",
+    "start": 1597472856263,
+    "end": 1597472856290,
+    "duration": 27,
+    "pid": 2396,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1597472856291,
+    "end": 1597472856294,
+    "duration": 3,
+    "pid": 2396,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1597472856296,
+    "end": 1597472856297,
+    "duration": 1,
+    "pid": 2396,
+    "index": 43
+  },
+  {
+    "name": "Require(37) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1597472856301,
+    "end": 1597472856461,
+    "duration": 160,
+    "pid": 2396,
+    "index": 44
+  },
+  {
+    "name": "Require(38) node_modules/egg-view/app/extend/context.js",
+    "start": 1597472856463,
+    "end": 1597472856466,
+    "duration": 3,
+    "pid": 2396,
+    "index": 45
+  },
+  {
+    "name": "Require(39) node_modules/egg-mongoose/app/extend/context.js",
+    "start": 1597472856467,
+    "end": 1597472856468,
+    "duration": 1,
+    "pid": 2396,
+    "index": 46
+  },
+  {
+    "name": "Require(40) node_modules/egg-validate/app/extend/context.js",
+    "start": 1597472856469,
+    "end": 1597472856471,
+    "duration": 2,
+    "pid": 2396,
+    "index": 47
+  },
+  {
+    "name": "Require(41) node_modules/egg-naf-amqp/app/extend/context.js",
+    "start": 1597472856472,
+    "end": 1597472856473,
+    "duration": 1,
+    "pid": 2396,
+    "index": 48
+  },
+  {
+    "name": "Require(42) node_modules/egg/app/extend/context.js",
+    "start": 1597472856475,
+    "end": 1597472856478,
+    "duration": 3,
+    "pid": 2396,
+    "index": 49
+  },
+  {
+    "name": "Require(43) node_modules/naf-framework-mongoose/app/extend/context.js",
+    "start": 1597472856480,
+    "end": 1597472856482,
+    "duration": 2,
+    "pid": 2396,
+    "index": 50
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1597472856494,
+    "end": 1597472856825,
+    "duration": 331,
+    "pid": 2396,
+    "index": 51
+  },
+  {
+    "name": "Require(44) node_modules/egg-security/app/extend/helper.js",
+    "start": 1597472856496,
+    "end": 1597472856780,
+    "duration": 284,
+    "pid": 2396,
+    "index": 52
+  },
+  {
+    "name": "Require(45) node_modules/egg/app/extend/helper.js",
+    "start": 1597472856796,
+    "end": 1597472856813,
+    "duration": 17,
+    "pid": 2396,
+    "index": 53
+  },
+  {
+    "name": "Load app.js",
+    "start": 1597472856826,
+    "end": 1597472857574,
+    "duration": 748,
+    "pid": 2396,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-session/app.js",
+    "start": 1597472856827,
+    "end": 1597472856828,
+    "duration": 1,
+    "pid": 2396,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-security/app.js",
+    "start": 1597472856829,
+    "end": 1597472856866,
+    "duration": 37,
+    "pid": 2396,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-onerror/app.js",
+    "start": 1597472856867,
+    "end": 1597472857006,
+    "duration": 139,
+    "pid": 2396,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-i18n/app.js",
+    "start": 1597472857007,
+    "end": 1597472857297,
+    "duration": 290,
+    "pid": 2396,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-watcher/app.js",
+    "start": 1597472857298,
+    "end": 1597472857306,
+    "duration": 8,
+    "pid": 2396,
+    "index": 59
+  },
+  {
+    "name": "Require(51) node_modules/egg-schedule/app.js",
+    "start": 1597472857307,
+    "end": 1597472857338,
+    "duration": 31,
+    "pid": 2396,
+    "index": 60
+  },
+  {
+    "name": "Require(52) node_modules/egg-multipart/app.js",
+    "start": 1597472857339,
+    "end": 1597472857357,
+    "duration": 18,
+    "pid": 2396,
+    "index": 61
+  },
+  {
+    "name": "Require(53) node_modules/egg-development/app.js",
+    "start": 1597472857357,
+    "end": 1597472857358,
+    "duration": 1,
+    "pid": 2396,
+    "index": 62
+  },
+  {
+    "name": "Require(54) node_modules/egg-logrotator/app.js",
+    "start": 1597472857358,
+    "end": 1597472857359,
+    "duration": 1,
+    "pid": 2396,
+    "index": 63
+  },
+  {
+    "name": "Require(55) node_modules/egg-static/app.js",
+    "start": 1597472857359,
+    "end": 1597472857360,
+    "duration": 1,
+    "pid": 2396,
+    "index": 64
+  },
+  {
+    "name": "Require(56) node_modules/egg-mongoose/app.js",
+    "start": 1597472857361,
+    "end": 1597472857362,
+    "duration": 1,
+    "pid": 2396,
+    "index": 65
+  },
+  {
+    "name": "Require(57) node_modules/egg-validate/app.js",
+    "start": 1597472857362,
+    "end": 1597472857439,
+    "duration": 77,
+    "pid": 2396,
+    "index": 66
+  },
+  {
+    "name": "Require(58) node_modules/egg-redis/app.js",
+    "start": 1597472857440,
+    "end": 1597472857442,
+    "duration": 2,
+    "pid": 2396,
+    "index": 67
+  },
+  {
+    "name": "Require(59) node_modules/egg-naf-amqp/app.js",
+    "start": 1597472857442,
+    "end": 1597472857572,
+    "duration": 130,
+    "pid": 2396,
+    "index": 68
+  },
+  {
+    "name": "Require(60) node_modules/naf-framework-mongoose/app.js",
+    "start": 1597472857573,
+    "end": 1597472857573,
+    "duration": 0,
+    "pid": 2396,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1597472857614,
+    "end": 1597472873349,
+    "duration": 15735,
+    "pid": 2396,
+    "index": 70
+  },
+  {
+    "name": "Before Start in node_modules/egg-mongoose/lib/mongoose.js:91:7",
+    "start": 1597472857710,
+    "end": 1597472873871,
+    "duration": 16161,
+    "pid": 2396,
+    "index": 71
+  },
+  {
+    "name": "Before Start in node_modules/egg-mongoose/lib/mongoose.js:49:9",
+    "start": 1597472857711,
+    "end": 1597472873298,
+    "duration": 15587,
+    "pid": 2396,
+    "index": 72
+  },
+  {
+    "name": "Before Start in node_modules/egg-redis/lib/redis.js:53:7",
+    "start": 1597472858256,
+    "end": 1597472873344,
+    "duration": 15088,
+    "pid": 2396,
+    "index": 73
+  },
+  {
+    "name": "Before Start in node_modules/egg-naf-amqp/lib/amqp.js:28:7",
+    "start": 1597472858257,
+    "end": 1597472873401,
+    "duration": 15144,
+    "pid": 2396,
+    "index": 74
+  },
+  {
+    "name": "Load Service",
+    "start": 1597472858257,
+    "end": 1597472859186,
+    "duration": 929,
+    "pid": 2396,
+    "index": 75
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1597472858258,
+    "end": 1597472859186,
+    "duration": 928,
+    "pid": 2396,
+    "index": 76
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1597472859186,
+    "end": 1597472860242,
+    "duration": 1056,
+    "pid": 2396,
+    "index": 77
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1597472859186,
+    "end": 1597472860212,
+    "duration": 1026,
+    "pid": 2396,
+    "index": 78
+  },
+  {
+    "name": "Load Controller",
+    "start": 1597472860243,
+    "end": 1597472872917,
+    "duration": 12674,
+    "pid": 2396,
+    "index": 79
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1597472860243,
+    "end": 1597472872917,
+    "duration": 12674,
+    "pid": 2396,
+    "index": 80
+  },
+  {
+    "name": "Load Router",
+    "start": 1597472872917,
+    "end": 1597472872933,
+    "duration": 16,
+    "pid": 2396,
+    "index": 81
+  },
+  {
+    "name": "Require(61) app/router.js",
+    "start": 1597472872918,
+    "end": 1597472872919,
+    "duration": 1,
+    "pid": 2396,
+    "index": 82
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1597472872920,
+    "end": 1597472873298,
+    "duration": 378,
+    "pid": 2396,
+    "index": 83
+  },
+  {
+    "name": "Load \"model\" to Application",
+    "start": 1597472872962,
+    "end": 1597472873293,
+    "duration": 331,
+    "pid": 2396,
+    "index": 84
+  }
+]

File diff suppressed because it is too large
+ 1811 - 0
run/router.json


+ 9 - 0
server.js

@@ -0,0 +1,9 @@
+
+// eslint-disable-next-line strict
+const egg = require('egg');
+
+const workers = Number(process.argv[2] || require('os').cpus().length);
+egg.startCluster({
+  workers,
+  baseDir: __dirname,
+});

+ 20 - 0
test/app/controller/home.test.js

@@ -0,0 +1,20 @@
+'use strict';
+
+const { app, assert } = require('egg-mock/bootstrap');
+
+describe('test/app/controller/home.test.js', () => {
+  it('should assert', () => {
+    const pkg = require('../../../package.json');
+    assert(app.config.keys.startsWith(pkg.name));
+
+    // const ctx = app.mockContext({});
+    // yield ctx.service.xx();
+  });
+
+  it('should GET /', () => {
+    return app.httpRequest()
+      .get('/')
+      .expect('hi, egg')
+      .expect(200);
+  });
+});