copy_proj_controller.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. /**
  2. * Created by Mai on 2017/4/24.
  3. */
  4. let billsData = require('../../main/models/bills');
  5. let rationData = require('../../main/models/ration');
  6. let projCounter = require('../../main/models/proj_counter');
  7. let async = require('async');
  8. module.exports = {
  9. copyProjectData: function (srcProjID, newProjID, callback) {
  10. var fun = [];
  11. var copyData = function (model) {
  12. return (cb) => {
  13. model.getQueryData({"projectID": srcProjID}, '-_id').then(function (results, err) {
  14. if (results.length > 0) {
  15. let datas = [];
  16. results.forEach(function (result) {
  17. result._doc.projectID = newProjID;
  18. datas.push(result._doc);
  19. });
  20. return model.insertData(datas, cb);
  21. } else {
  22. cb(err);
  23. }
  24. }).catch(cb);
  25. };
  26. };
  27. fun.push(copyData(billsData));
  28. fun.push(copyData(rationData));
  29. fun.push(copyData(projCounter));
  30. async.parallel(fun, (err) => callback(err));
  31. }
  32. };