/** * Created by chen on 2017/8/2. */ let async_n = require("async"); let mongoose = require('mongoose'); let feeRateModel = mongoose.model('fee_rates'); let consts = require('../../main/models/project_consts'); let _=require("lodash"); module.exports={ save:save, getData:getData }; let operationMap={ 'ut_create':create_fee_rate, 'ut_update':update_fee_rate, 'ut_delete':delete_fee_rate }; let updateFunctionMap = { 'normalUpdate':normalUpdate, 'update_rates':update_rates, 'updateStatusBySelected':updateStatusBySelected } function create_fee_rate() { } function update_fee_rate(user_id,datas) { if(datas.updateFunction){ return updateFunctionMap[datas.updateFunction](user_id,datas); }else { return normalUpdate(user_id,datas); } } function updateStatusBySelected(user_id,datas) { return function(callback){ feeRateModel.bulkWrite(generateUpdateTaks(datas.tasks),function (err,data) { console.log(data); commonCallback(callback,data,err); }) } } function normalUpdate(user_id,datas) { return function(callback){ console.log(datas) callback(null,''); } } function generateUpdateTaks(updateTasks) { var tasks=[]; for(let u of updateTasks){ let t ={ updateOne:{ filter:u.query, update: u.doc } } tasks.push(t); } return tasks; } function update_rates(user_id,datas) { return function(callback){ console.log(datas); feeRateModel.findOne(datas.query,['rates'],function(err, data){ let doc = datas.doc; if(_.isArray(doc)){ _.forEach(doc,function (item) { data.rates[item.rateIndex]=item.rate; }) }else { data.rates[doc.rateIndex]=doc.rate; } data.save(function (err) { commonCallback(callback,'',err); }); }) } } function delete_fee_rate() { } function save (user_id, datas, callback) { let operations=[]; if(_.isArray(datas)){ for(let i=0;i{ if(err){ callback(1, '', null); }else { callback(0, consts.projectConst.FEERATE, datas); } }) } function commonCallback(callback,result,err) { if(err){ callback(err,''); }else { callback(null,result); } }