12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /**
- * Created by Zhong on 2018/1/24.
- */
- const mongoose = require('mongoose');
- const rationItemModel = mongoose.model('std_ration_lib_ration_items');
- const installFeeItemModel = mongoose.model('std_ration_lib_installation');
- const installSectionModel = mongoose.model('std_ration_lib_installationSection');
- class InstallationDao{
- async getInstallation(rationRepId, callback){
- try {
- const feeItems = await installFeeItemModel.find({ rationRepId }).lean();
- const feeItemMap = {};
- const sectionIds = [];
- feeItems.forEach(item => {
- feeItemMap[item.ID] = item;
- item.section.forEach(s => sectionIds.push(s.ID));
- item.section = [];
- });
- const sections = await installSectionModel.find({ID: {$in: sectionIds}});
- sections.forEach(section => {
- const matchFeeItem = feeItemMap[section.feeItemId];
- if (matchFeeItem) {
- matchFeeItem.section.push(section);
- }
- });
- if (!callback) {
- return feeItems;
- }
- callback(0, feeItems);
- }
- catch(err){
- if (!callback) {
- return [];
- }
- callback(err, null);
- }
- }
- async updateSection(updateData, callback){
- try{
- for(let data of updateData){
- if(data.updateType === 'new'){
- await installSectionModel.create(data.updateData);
- }
- else if(data.updateType === 'update' && !data.updateData.deleted){
- await installSectionModel.update({ID: data.updateData.ID}, data.updateData);
- }
- else {
- await installSectionModel.remove({ID: data.updateData.ID});
- }
- }
- callback(0, null);
- }
- catch(err){
- callback(err, null);
- }
- }
- async updateFeeItem(updateData, callback){
- try{
- for(let data of updateData){
- if(data.updateType === 'new'){
- await installFeeItemModel.create(data.updateData);
- }
- else if(data.updateType === 'update' && !data.updateData.deleted){
- await installFeeItemModel.update({ID: data.updateData.ID}, data.updateData);
- }
- else{
- await installFeeItemModel.remove({ID: data.updateData.ID});
- }
- }
- callback(0, null);
- }
- catch(err){
- callback(err, null);
- }
- }
- async batchUpdateInst(rationSection, inst, callback){
- try{
- for(let sectionId of rationSection){
- await rationItemModel.update({sectionId: sectionId, $or: [{isDeleted: null}, {isDeleted: false}]},
- {$addToSet: {rationInstList: {feeItemId: inst.feeItemId, sectionId: inst.sectionId}}}, {multi: true});
- }
- callback(0, null);
- }
- catch(err){
- callback(err, null);
- }
- }
- }
- export default InstallationDao;
|