project.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /**
  2. * Created by jimiz on 2017/4/16.
  3. */
  4. var billsData = require('./bills');
  5. var rationData = require('./ration');
  6. var GLJData = require('./glj');
  7. var ration_glj_data = require('../../ration_glj/facade/ration_glj_facade');
  8. var ration_coe_data = require('../../ration_glj/facade/ration_coe_facade');
  9. let projCounter = require('./proj_counter');
  10. var consts = require('./project_consts');
  11. var projectConsts = consts.projectConst;
  12. var async = require("async");
  13. var moduleMap = {};
  14. moduleMap[projectConsts.BILLS] = billsData;
  15. moduleMap[projectConsts.RATION] = rationData;
  16. //moduleMap[projectConsts.GLJ] = GLJData;
  17. moduleMap[projectConsts.RATION_GLJ] = ration_glj_data;
  18. moduleMap[projectConsts.RATION_COE] = ration_coe_data;
  19. moduleMap[projCounter.collectionName] = projCounter;
  20. var Project = function (){};
  21. Project.prototype.datas = [];
  22. Project.prototype.prepare = function(data, callback){
  23. var me = this;
  24. data.update_data.forEach(function(item){
  25. item.user_id = data.user_id;
  26. me.datas.push(item);
  27. /*
  28. to do
  29. moduleMap[item.moduleName].prepare(item.data, jobCallback);
  30. */
  31. });
  32. };
  33. Project.prototype.save = function(datas, callback){
  34. var job, savePoint;
  35. var functions = [];
  36. var item;
  37. var me = this;
  38. me.prepare(datas, function(job, savePoint){});
  39. function saveModule(data) {
  40. return function (cb) {
  41. if(data.moduleName!=undefined){
  42. moduleMap[data.moduleName].save(data.user_id, data.data, cb);
  43. }
  44. // console.log(moduleMap[data.moduleName])
  45. }
  46. }
  47. for (var i = 0; i < me.datas.length; i++){
  48. item = me.datas[i];
  49. functions.push(saveModule(item));
  50. }
  51. async.parallel(functions, function(err, results) {
  52. if (!err){
  53. callback(null, '', results)
  54. }
  55. else{
  56. callback(1, 'save project failed', null)
  57. }
  58. });
  59. me.datas = [];
  60. };
  61. Project.prototype.getData = function(projectID, callback){
  62. var functions = [];
  63. var itemName;
  64. for (itemName in moduleMap){
  65. functions.push((function(itemName){
  66. return function (cb) {
  67. moduleMap[itemName].getData(projectID, function(err, moduleName, data){
  68. cb(err, {moduleName: moduleName, data: data})
  69. })
  70. }
  71. })(itemName))
  72. }
  73. async.parallel(functions, function(err, results) {
  74. if (!err){
  75. callback(null, '', results)
  76. }
  77. else{
  78. callback(1, 'load project failed', null)
  79. }
  80. });
  81. };
  82. module.exports = new Project();