volume_price_model.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /**
  2. * Created by Mai on 2017/7/25.
  3. */
  4. let consts = require('../../main/models/project_consts');
  5. let commonConsts = consts.commonConst;
  6. let mongoose = require('mongoose');
  7. let volumePrice = require("./volume_price_schema");
  8. let async = require("async");
  9. let baseModel = require('../../main/models/base_model');
  10. class volumePriceModel extends baseModel {
  11. constructor (name) {
  12. super(volumePrice);
  13. this.collectionName = name;
  14. };
  15. getData (projectID, callback) {
  16. volumePrice.find({'$or': [
  17. {
  18. projectID: projectID,
  19. deleteInfo: null
  20. }, {
  21. projectID: projectID,
  22. 'deleteInfo.deleted': {$in: [null, false]}
  23. }
  24. ]},(err,datas)=>{
  25. if(err){
  26. callback(1, '', null);
  27. }else {
  28. callback(0, consts.projectConst.VOLUMEPRICE, datas);
  29. }
  30. })
  31. };
  32. save (user_id, datas, callback) {
  33. let funs = [];
  34. function saveOne(doc) {
  35. return function (cb) {
  36. switch (doc.updateType) {
  37. case commonConsts.UT_UPDATE:
  38. volumePrice.update({projectID: doc.updateData.projectID, ID: doc.updateData.ID}, doc.updateData, cb);
  39. break;
  40. case commonConsts.UT_CREATE:
  41. volumePrice.create(doc.updateData, cb);
  42. break;
  43. case commonConsts.UT_DELETE:
  44. doc.updateData.deleteInfo = {deleted: true, deleteDateTime: new Date(), deleteBy: user_id};
  45. volumePrice.update({projectID: doc.updateData.projectID, ID: doc.updateData.ID}, doc.updateData, cb);
  46. break;
  47. }
  48. }
  49. }
  50. for (let data of datas){
  51. funs.push(saveOne(data));
  52. }
  53. async.parallel(funs, callback);
  54. };
  55. };
  56. module.exports = new volumePriceModel(consts.projectConst.VOLUMEPRICE);