ソースを参照

计算程序多层嵌套修改存储。

Chenshilong 7 年 前
コミット
23311e2612

+ 39 - 0
modules/main/controllers/calc_program_controller.js

@@ -0,0 +1,39 @@
+/**
+ * Created by CSL on 2017-10-25.
+ */
+
+let mongoose = require('mongoose');
+let calcProgramFacade = require('../facade/calc_program_facade');
+
+module.exports = {
+    getProjectCalcProgram: getProjectCalcProgram,
+    getStdCalcProgram: getStdCalcProgram
+};
+
+async function getProjectCalcProgram(req, res) {
+    let result = {error: 0, message: '', data: null};
+
+    try {
+        let projCP = await calcProgramFacade.getProjectCalcProgramFile(req.body.data.calcProgramID);
+        result.data= projCP;
+    }catch (err){
+        result.error = 1;
+        result.message = err.message;
+    }
+
+    res.json(result);
+};
+
+async function getStdCalcProgram(req, res) {
+    let result = {error: 0, message: '', data: null};
+
+    try {
+        let stdCP = await calcProgramFacade.getStdCalcProgramFile(req.body.ID);
+        result.data= stdCP;
+    }catch (err){
+        result.error = 1;
+        result.message = err.message;
+    }
+
+    res.json(result);
+};

+ 42 - 6
modules/main/facade/calc_program_facade.js

@@ -17,7 +17,8 @@ module.exports = {
     getProjectCalcProgramFile: getProjectCalcProgramFile,
     getStdCalcProgramFile: getStdCalcProgramFile,
     getData: getData,
-    save: save
+    save: save,
+    saveCalcItem: saveCalcItem
 };
 
 async function newProjectCalcProgramFile(data) {
@@ -44,13 +45,13 @@ async function newProjectCalcProgramFile(data) {
 };
 
 async function getProjectCalcProgramFile(ID) {
-    let projLC = await projectCalcProgramsModel.findOne({ID:ID});
-    return projLC;
+    let projCP = await projectCalcProgramsModel.findOne({ID:ID});
+    return projCP;
 };
 
 async function getStdCalcProgramFile(libID) {
-    let stdLC = await stdCalcProgramsModel.findOne({ID:libID});
-    return stdLC;
+    let stdCP = await stdCalcProgramsModel.findOne({ID:libID});
+    return stdCP;
 };
 
 // 统一的 getData() 方法供project调用
@@ -84,4 +85,39 @@ function getData(projectID, callback) {
 // 统一的 save() 方法供project调用
 function save (user_id, datas, callback) {
     projectCalcProgramsModel.update({"projectID": 553}, {"libName":"goo—test"}, callback(null, {data: 'test'}));
-}
+}
+
+function saveCalcItem(dataObj, callback) {
+    projectCalcProgramsModel.findOne({projectID: dataObj.projectID}, function (err, data) {
+        if(!err){
+            for (let i = 0; i < data.templates.length; i++){
+                if (data.templates[i].ID == dataObj.templatesID){
+                    for (let j=0; j < data.templates[i].calcItems.length; j++){
+                        if (data.templates[i].calcItems[j].ID == dataObj.calcItemID){
+                            data.templates[i].calcItems[j] = dataObj.data;
+                            data.save(function (err) {
+                                if (err) {
+                                    callback({err:1, msg:'计算程序保存失败', data:null});
+                                } else {
+                                    callback({err:0, msg:'', data: dataObj.data});
+                                }
+                            });
+                            break;
+                        };
+                    };
+                    break;
+                };
+            };
+        }
+        else {
+            callback( {err:1, msg:'没有找到计算程序文件', data:null} );
+        }
+    });
+
+};
+
+// for test
+/*let udata = {ID:8, code: '8.8.8', name: '被改成了888', hehe: '增加的属性'};
+saveCalcItem({projectID: 597, templatesID: 4, calcItemID: 8, data: udata}, function (data) {
+    console.log({msg:data.msg, data: data.data});
+})*/

+ 20 - 0
modules/main/routes/calc_program_route.js

@@ -0,0 +1,20 @@
+/**
+ * Created by CSL on 2017-10-25.
+ */
+
+let express = require('express');
+let cpController = require('../controllers/calc_program_controller');
+
+module.exports = function (app) {
+
+    var cpRouter = express.Router();
+
+    cpRouter.post('/getProjectCalcProgram', cpController.getProjectCalcProgram);
+    cpRouter.post('/getStdCalcProgram', cpController.getStdCalcProgram);
+
+    app.use('/labourCoe',cpRouter);
+}
+
+
+
+