welcome_controller.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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:"",showTime:0};
  45. let renderData = {
  46. id: id,
  47. type:type,
  48. settingID:settingID,
  49. compilationList: compilationList,
  50. selectedCompilation: selectedCompilation,
  51. layout: 'users/views/layout/layout',
  52. setting:setting,
  53. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  54. };
  55. response.render('users/views/welcome/index', renderData);
  56. }
  57. async save(request, response){
  58. let data = request.body;
  59. let setting = {compilationId:data.compilationId};
  60. let type = data.type;
  61. let info = {showType:data.showType,context:data.context,showTime:data.showTime}
  62. type == "professional"?setting.professional = info:setting.normal = info
  63. if(!data.ID || data.ID == ""){
  64. setting.ID = uuidV1();
  65. await welcomeSettingModel.create(setting);
  66. } else {
  67. await welcomeSettingModel.update({ID:data.ID},setting);
  68. }
  69. response.redirect(request.headers.referer);
  70. }
  71. }
  72. export default WelcomeController;