Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

vian 5 лет назад
Родитель
Сommit
55a74a1bdc

+ 25 - 0
modules/all_models/system_setting.js

@@ -0,0 +1,25 @@
+/**
+ * Created by zhang on 2020/1/2.
+ */
+let mongoose = require("mongoose");
+
+let Schema = mongoose.Schema;
+let collectionName = 'system_setting';
+let modelSchema = {
+    // ID
+    ID: {
+        type: String,
+        index: true
+    },
+    // 专业用户
+    professional: {
+        project: Number,
+        ration:Number
+    },
+    // 免费用户
+    normal: {
+        project: Number,
+        ration:Number
+    },
+};
+mongoose.model(collectionName, new Schema(modelSchema, {versionKey: false, collection: collectionName}));

+ 28 - 0
modules/main/middleware/system_setting.js

@@ -0,0 +1,28 @@
+/**
+ * Created by zhang on 2020/1/8.
+ */
+
+module.exports={
+    rationNumberChecking:rationNumberChecking
+};
+
+let mongoose = require("mongoose");
+let rationModel = mongoose.model("ration");
+
+async function rationNumberChecking(req, res, next) {
+    if(req.session.systemSetting){
+        let type = req.session.compilationVersion.indexOf("免费") == -1?"professional":"normal";
+        let data = req.body.data;
+        if(typeof data === 'object'){
+            data = JSON.stringify(data);
+        }
+        data = JSON.parse(data);
+        let projectID = data.projectID;
+        let no = await rationModel.find({projectID:projectID}).count();
+        if(no >= req.session.systemSetting[type].ration){
+            let  result = {error:1,message:"您套用定额个数超限,请联系我们的客服人员。"};
+            return  res.json(result);
+        }
+    }
+    next();
+}

+ 3 - 2
modules/main/routes/ration_route.js

@@ -2,6 +2,7 @@
  * Created by jimiz on 2017/4/7.
  */
 let express = require('express');
+let ss_middleware = require("../middleware/system_setting");
 
 module.exports = function (app) {
     let rationRouter = express.Router();
@@ -11,8 +12,8 @@ module.exports = function (app) {
     rationRouter.post('/allocIDs', rationController.allocIDs);
     rationRouter.post('/insertGLJAsRation', rationController.action);
     rationRouter.post('/replaceRations', rationController.action);
-    rationRouter.post('/addNewRation', rationController.action);
-    rationRouter.post('/addMultiRation', rationController.action);
+    rationRouter.post('/addNewRation',ss_middleware.rationNumberChecking,rationController.action);
+    rationRouter.post('/addMultiRation',ss_middleware.rationNumberChecking, rationController.action);
     rationRouter.post('/getSameSectionRations', rationController.action);
     rationRouter.post('/getDefaultProgramID', rationController.action);
     rationRouter.post('/applyTemplate', rationController.action);

+ 8 - 0
modules/users/controllers/login_controller.js

@@ -14,6 +14,10 @@ const SMS = require('../models/sms');
 const moment = require('moment');
 // 验证码
 const Captcha = require("../models/captcha");
+let mongoose = require("mongoose");
+let systemSettingModel = mongoose.model("system_setting");
+
+
 
 class LoginController {
 
@@ -99,6 +103,8 @@ class LoginController {
                     request.session.sessionCompilation = compilationData;
                     if(request.session.sessionUser.latest_used !== preferenceSetting.select_version) await userModel.updateLatestUsed(request.session.sessionUser.id,preferenceSetting.select_version);
                 }
+                let systemSetting = await systemSettingModel.findOne({}).lean();
+                request.session.systemSetting = systemSetting;
                 request.session.online_start_time = +new Date();
                 console.log(`${request.session.sessionUser.real_name}--id:${request.session.sessionUser.id}--登录了系统`);
                 if (preferenceSetting.login_ask === 1 || preferenceSetting.select_version === '') {
@@ -318,6 +324,8 @@ class LoginController {
             console.log(error);
             return response.json({error: 1, msg: error});
         }
+        let systemSetting = await systemSettingModel.findOne({}).lean();
+        request.session.systemSetting = systemSetting;
         request.session.online_start_time = +new Date();
         console.log(`${request.session.sessionUser.real_name}--id:${request.session.sessionUser.id}--登录了系统`);
         response.json({

+ 2 - 2
web/building_saas/main/js/models/ration.js

@@ -516,7 +516,7 @@ var Ration = {
                         clearInterval(interval);
                     }
                 }, 100);
-                CommonAjax.post("/ration/addMultiRation",{newDatas: newDatas},function (rstData) {
+                CommonAjax.post("/ration/addMultiRation",{projectID:me.project.ID(),newDatas: newDatas},function (rstData) {
                     let newNodes = [];
                     //更新缓存
                     for(let data of rstData){
@@ -638,7 +638,7 @@ var Ration = {
                     needInstall = project.Bills.isFBFX(billsNode);//在分部分项插入的定额才需要定额安装增加费
                 }
                 $.bootstrapLoading.start();
-                CommonAjax.post("/ration/addNewRation",{itemQuery:itemQuery,newData:newData,defaultLibID: rationLibObj.getDefaultStdRationLibID(),calQuantity:calQuantity,brUpdate:brUpdate,needInstall:needInstall},function (data) {
+                CommonAjax.post("/ration/addNewRation",{projectID:me.project.ID(),itemQuery:itemQuery,newData:newData,defaultLibID: rationLibObj.getDefaultStdRationLibID(),calQuantity:calQuantity,brUpdate:brUpdate,needInstall:needInstall},function (data) {
                     //更新缓存
                     me.datas.push(data.ration);
                     me.addSubListOfRation(data);

+ 3 - 1
web/building_saas/main/js/views/project_view.js

@@ -2213,7 +2213,9 @@ $('#downLevel').click(function () {
 $('#insertRation').click(function () {
     // projectObj.project.Ration.addNewRation(null,rationType.ration);
     // 连续点工具栏的插入定额按钮,显示树结构画线有问题。
-    projectObj.project.Ration.addNewRationFast(rationType.ration,projectObj.selectColAndFocus);
+    //projectObj.project.Ration.addNewRationFast(rationType.ration,projectObj.selectColAndFocus);
+    //2020-01-08  要限制定额数量,所以还是要用等回传信息的方式插入定额
+    projectObj.project.Ration.addNewRation(null,rationType.ration,projectObj.selectColAndFocus,false);
 });
 $('#upMove').click(function () {
     var controller = projectObj.mainController, project = projectObj.project;

+ 2 - 0
web/building_saas/main/js/views/tender_price_view.js

@@ -460,6 +460,8 @@ $(function () {
             tender_obj.showTenderData();
             tender_obj.initPageContent();
         }
+        else tender_obj.showTenderData();
+
         autoFlashHeight();
         tender_obj.tenderSpread.refresh();
     });