| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | 'use strict';/** * * * @author Zhong * @date 2018/10/25 * @version */module.exports = {    getInstallation,    updateFeeItem,    updateSection,    batchUpdateInst,};const mongoose = require("mongoose");const counter = require('../../../public/counter/counter');const async = require('async');const deleteQuery = [{deleteInfo: null}, {'deleteInfo.deleted': false}];const complefeeItemModel = mongoose.model('complementary_ration_installation');const compleSectionModel = mongoose.model('complementary_ration_installationSection');const compleRationModel = mongoose.model('complementary_ration_items');async function getInstallation(userId, compilationId){        let feeItems = await complefeeItemModel.find({userId: userId, compilationId: compilationId, $or: deleteQuery});        for (let feeItem of feeItems) {            let sids = [];            for (let sec of feeItem.section) {                sids.push(sec.ID);            }            if (sids.length > 0) {                let sections = await compleSectionModel.find({ID: {$in: sids}, $or: deleteQuery});                feeItem._doc.section = sections;            }        }        return feeItems;}//更新费用项async function updateFeeItem(userId, compilationId, updateData){    for (let data of updateData) {        if (data.updateType === 'new') {            data.updateData.userId = userId;            data.updateData.compilationId = compilationId;            await complefeeItemModel.create(data.updateData);        } else if (data.updateType === 'update' && !data.updateData.deleted) {            await complefeeItemModel.update({ID: data.updateData.ID}, data.updateData);        } else {            let deleteInfo = {                deleted: true,                deleteDateTime: new Date(),                deleteBy: userId            };            data.updateData.deleteInfo = deleteInfo;            delete data.updateData.deleted;            await complefeeItemModel.remove({ID: data.updateData.ID});        }    }}//更新分册章节async function updateSection(userId, compilationId, updateData){    for (let data of updateData) {        if (data.updateType === 'new') {            data.updateData.userId = userId;            data.updateData.compilationId = compilationId;            await compleSectionModel.create(data.updateData);        } else if (data.updateType === 'update' && !data.updateData.deleted) {            await compleSectionModel.update({ID: data.updateData.ID}, data.updateData);        } else {            let deleteInfo = {                deleted: true,                deleteDateTime: new Date(),                deleteBy: userId            };            data.updateData.deleteInfo = deleteInfo;            delete data.updateData.deleted;            await compleSectionModel.remove({ID: data.updateData.ID});        }    }}//批量关联至定额(选择某一章节)async function batchUpdateInst(rationSection, inst){    for (let sectionId of rationSection) {        await compleRationModel.update({sectionId: sectionId, $or: deleteQuery},            {$addToSet: {rationInstList: {feeItemId: inst.feeItemId, sectionId: inst.sectionId}}}, {multi: true});    }}
 |