system_setting.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * Created by zhang on 2020/1/8.
  3. */
  4. module.exports={
  5. getSystemSetting,
  6. rationNumberChecking:rationNumberChecking,
  7. tenderNumberChecking
  8. };
  9. let mongoose = require("mongoose");
  10. let rationModel = mongoose.model("ration");
  11. const systemSettingModel = mongoose.model('system_setting');
  12. const pmFacade = require('../../pm/facade/pm_facade');
  13. // 获取系统设置,这个系统设置正常情况下有存在session中
  14. async function getSystemSetting() {
  15. return await systemSettingModel.findOne({}).lean();
  16. }
  17. async function rationNumberChecking(req, res, next) {
  18. if(req.session.systemSetting){
  19. let type = req.session.compilationVersion.indexOf("免费") == -1?"professional":"normal";
  20. let data = req.body.data;
  21. if(typeof data === 'object'){
  22. data = JSON.stringify(data);
  23. }
  24. data = JSON.parse(data);
  25. let projectID = data.projectID;
  26. let no = await rationModel.find({projectID:projectID}).count();
  27. if(no >= req.session.systemSetting[type].ration){
  28. let result = {error:1,message:"您套用定额个数超限,请联系我们的客服人员。"};
  29. return res.json(result);
  30. }
  31. }
  32. next();
  33. }
  34. async function tenderNumberChecking(req, res, next) {
  35. const data = JSON.parse(req.body.data);
  36. const tenderCount = data.tenderCount;
  37. if (tenderCount) {
  38. const tenderOverrun = await pmFacade.isTenderOverrun(tenderCount, req.session);
  39. if (tenderOverrun) {
  40. return res.json({
  41. error: 1,
  42. message: '您创建的项目个数超限,请联系我们的客服人员,或者导出建设项目保存到本地备份,删除云上数据。'
  43. });
  44. }
  45. }
  46. next();
  47. }