welcome_controller.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /**
  2. * Created by zhang on 2020/2/14.
  3. */
  4. import BaseController from "../../common/base/base_controller";
  5. import CompilationModel from "../models/compilation_model";
  6. let config = require("../../../config/config.js");
  7. let mongoose = require("mongoose");
  8. let welcomeSettingModel = mongoose.model("welcome_setting");
  9. const uuidV1 = require('uuid/v1');
  10. class WelcomeController extends BaseController {
  11. async index(request, response) {
  12. let id = request.query.id;
  13. let type = request.query.type;
  14. let compilationList = [];
  15. let selectedCompilation = {};
  16. try {
  17. let compilationModel = new CompilationModel();
  18. compilationList = await compilationModel.getCompilationList();
  19. if (compilationList.length <= 0) {
  20. throw '没有数据';
  21. }
  22. // 循环查找数据
  23. for (let tmp of compilationList) {
  24. if (tmp._id.toString() === id) {
  25. selectedCompilation = tmp;
  26. break;
  27. }
  28. }
  29. selectedCompilation = Object.keys(selectedCompilation).length <= 0 ? compilationList[0] : selectedCompilation;
  30. request.session.selectedCompilation = selectedCompilation;
  31. } catch (error) {
  32. console.log(error);
  33. }
  34. if (selectedCompilation.example && Array.isArray(selectedCompilation.example)) {
  35. selectedCompilation.example = selectedCompilation.example.join(';');
  36. }
  37. let welcome_setting =await welcomeSettingModel.findOne({compilationId:selectedCompilation._id.toString()});
  38. let setting = null;
  39. let settingID="";
  40. if(welcome_setting){
  41. setting = type== "professional"?welcome_setting.professional:welcome_setting.normal;
  42. settingID = welcome_setting.ID;
  43. }
  44. if(!setting) setting = {showType:0,context:""};
  45. console.log(setting)
  46. let renderData = {
  47. id: id,
  48. type:type,
  49. settingID:settingID,
  50. compilationList: compilationList,
  51. selectedCompilation: selectedCompilation,
  52. layout: 'users/views/layout/layout',
  53. setting:setting,
  54. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  55. };
  56. response.render('users/views/welcome/index', renderData);
  57. }
  58. async save(request, response){
  59. let data = request.body;
  60. let setting = {compilationId:data.compilationId};
  61. let type = data.type;
  62. let info = {showType:data.showType,context:data.context}
  63. type == "professional"?setting.professional = info:setting.normal = info
  64. if(!data.ID || data.ID == ""){
  65. setting.ID = uuidV1();
  66. await welcomeSettingModel.create(setting);
  67. } else {
  68. await welcomeSettingModel.update({ID:data.ID},setting);
  69. }
  70. response.redirect(request.headers.referer);
  71. }
  72. }
  73. export default WelcomeController;