| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- /**
 
-  * Created by CSL on 2018-12-17.
 
-  */
 
- let mongoose = require('mongoose');
 
- let blModel = mongoose.model('blockLibsModel');
 
- module.exports = {
 
-     getLibNames: getLibNames,
 
-     getLib: getLib,
 
-     getLibNamesAndFirstLib: getLibNamesAndFirstLib,
 
-     saveBlock: saveBlock
 
- };
 
- // userID、compilationID
 
- async function getLibNames(data) {
 
-     let libNames = await blModel.find({userID: data.userID, compilation: data.compilationID}, ["libID","libName","-_id"]);
 
-     return libNames;
 
- };
 
- // libID
 
- async function getLib(data) {
 
-     let lib = await blModel.findOne({libID: data.libID});
 
-     return lib;
 
- };
 
- // userID、compilationID
 
- async function getLibNamesAndFirstLib(data) {
 
-     let libNames = await getLibNames(data);
 
-     let firstLib = await getLib(libNames[0]);
 
-     return {libNames: libNames, firstLib: firstLib};
 
- };
 
- /*------------------------------------------------------------------------------
 
- data参数示例:
 
-         {
 
-             libID: 3,
 
-             nodeID: 5,
 
-             create: {node}
 
-             delete: true
 
-             update: {nodeName: 'xxx', children: [...]}
 
-         }
 
- 说明:   libID、nodeID 必须。 create|update|delete三选一。
 
-         create属性值是完整的node节点数据。
 
-         delete属性值是true。
 
-         update属性值是要修改的属性键值对组成的对象。
 
- ------------------------------------------------------------------------------*/
 
- async function saveBlock(data) {
 
-     if (data.create) {
 
-         await blModel.update({libID: data.libID}, {$addToSet: {datas: data.create}});
 
-     }
 
-     if (data.delete) {
 
-         await blModel.update({libID: data.libID}, {$pull: {datas: {ID: data.nodeID}}});
 
-     }
 
-     else if (data.update){
 
-         let doc = await blModel.findOne({libID: data.libID});
 
-         let datas = doc._doc.datas;
 
-         for (let i = 0; i < datas.length; i++) {
 
-             if (datas[i].ID == data.nodeID) {
 
-                 for (let pn in data.update){
 
-                     datas[i][pn] = data.update[pn];
 
-                 };
 
-                 await doc.save();
 
-                 break;
 
-             }
 
-         };
 
-     };
 
-     return 'saveBlock.OK';
 
- };
 
 
  |