boot_controller.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * 引导页相关控制器
  3. *
  4. * @author CaiAoLin
  5. * @date 2017/6/12
  6. * @version
  7. */
  8. const BaseController = require("../../common/base/base_controller");
  9. const UserModel = require("../models/user_model");
  10. const CompilationModel = require("../models/compilation_model");
  11. class BootController extends BaseController {
  12. /**
  13. * 引导页
  14. *
  15. * @param {object} request
  16. * @param {object} response
  17. * @return {void}
  18. */
  19. async boot(request, response) {
  20. let userModel = new UserModel();
  21. let sessionUser = request.session.sessionUser;
  22. let compilationId = request.params.compilation;
  23. let sessionCompilation = request.session.sessionCompilation;
  24. let compilationVersion = request.session.compilationVersion;
  25. // 判断是否有存入编办信息
  26. if (sessionCompilation === undefined && compilationId !== '') {
  27. let compilationModel = new CompilationModel();
  28. let compilationData = await compilationModel.getCompilationById(compilationId);
  29. // 判断当前用户的是使用免费版还是专业版
  30. compilationVersion = await userModel.getVersionFromUpgrade(sessionUser.ssoId, compilationId);
  31. request.session.compilationVersion = compilationVersion.version;
  32. request.session.sessionUser.compilationLock = compilationVersion.lock;
  33. request.session.sessionCompilation = compilationData;
  34. if(sessionUser.latest_used !== compilationId) userModel.updateLatestUsed(sessionUser.id,compilationId);
  35. }
  36. // 判断是否已填写信息
  37. let userData = await userModel.findDataByCondition({_id: sessionUser.id});
  38. if (userData.company !== '' && userData.real_name !== '') {
  39. return response.redirect('/pm');
  40. }
  41. let renderData = {
  42. provinceList: userModel.province,
  43. companyTypeList: userModel.companyType,
  44. companyScaleList: userModel.companyScale,
  45. compilation: request.params.compilation,
  46. compilationName: request.session.sessionCompilation.name,
  47. versionName: request.session.compilationVersion,
  48. };
  49. response.render('users/html/login-infoinput', renderData);
  50. }
  51. }
  52. module.exports = BootController;