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';
- };
|