| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- module.exports = {
- getData: getData,
- updateItem:updateItem
- };
- let mongoose = require('mongoose');
- let divideModel = mongoose.model("divide_setting");
- let consts = require('../models/project_consts');
- let projectConsts = consts.projectConst;
- const uuidV1 = require('uuid/v1');
- async function updateItem(data){
- let ID = data.ID;
- let tasks= [];
- for(let u of data.updateDatas){
- if(u.type == 'add'){
- tasks.push({updateOne: {filter: {ID: ID}, update: {"$push":{divideList:u.doc} }}});
- }
- if(u.type == "update"){
- let ndoc = {};
- let pre = "divideList.$."
- for(let key in u.doc){
- ndoc[pre+key] = u.doc[key]
- }
- tasks.push({updateOne: {filter: {"ID": ID,"divideList.ID":u.ID}, update: ndoc}});
- }
- if(u.type == "delete"){
- tasks.push({updateOne: {filter: {ID: ID}, update: {"$pull":{divideList:{ID:u.ID}} }}});
- }
- }
- if(tasks.length > 0) await divideModel.bulkWrite(tasks);
- return data;
- }
- function getData(projectID, callback) {
- divideModel.findOne({projectID: projectID}, '-_id', async function (err, datas) {
- if (!err) {
- // 旧项目没有人工系数文件,默认给它生成一个。
- if (!datas) {
- datas = {
- ID: uuidV1(),
- projectID:projectID,
- divideList:[],
- ration_gljs:[],
- bills:[]
- }
- await divideModel.create(datas);
- callback(0, projectConsts.DIVIDE_SETTING, datas);
- } else {
- callback(0, projectConsts.DIVIDE_SETTING, datas);
- };
- } else {
- callback(1, projectConsts.DIVIDE_SETTING, null);
- };
- });
- }
|