ration_installation_facade.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * Created by zhang on 2018/2/24.
  3. */
  4. import rationInstallationModel from "../models/ration_installation";
  5. let consts = require('../models/project_consts');
  6. let projectConsts = consts.projectConst;
  7. module.exports={
  8. updateRationInstallation:updateRationInstallation,
  9. updateFromInstallationFee:updateFromInstallationFee,
  10. getData:getData,
  11. deleteByRation:deleteByRation
  12. };
  13. async function updateRationInstallation(data){
  14. if(data.projectID&&data.ID){
  15. let result = await rationInstallationModel.findOneAndUpdate({'projectID':data.projectID,'ID':data.ID},data);
  16. return result
  17. }else {
  18. throw new Error('项目ID或者ID为空,更新失败!');
  19. }
  20. }
  21. async function updateFromInstallationFee(projectID,rationInstallations) {
  22. let tasks = [];
  23. for (let ri of rationInstallations){
  24. let task = {
  25. updateOne:{
  26. filter:{
  27. ID:ri.ID,
  28. projectID:projectID
  29. },
  30. update :ri.doc
  31. }
  32. };
  33. tasks.push(task);
  34. }
  35. if(tasks.length>0){
  36. await rationInstallationModel.bulkWrite(tasks);
  37. }
  38. }
  39. function deleteByRation(data) {
  40. return function (callback) {
  41. rationInstallationModel.deleteMany({projectID: data.projectID, rationID: data.ID},(err,result)=>{
  42. commonCallback(callback,result,err);
  43. });
  44. }
  45. }
  46. function commonCallback(callback,result,err) {
  47. if(err){
  48. callback(err,'');
  49. }else {
  50. callback(null,result);
  51. }
  52. }
  53. function getData(projectID, callback) {
  54. rationInstallationModel.find({'projectID': projectID}, (err, datas) => {
  55. if (err) {
  56. callback(1, '', null);
  57. } else {
  58. callback(0, consts.projectConst.RATION_INSTALLATION, datas);
  59. }
  60. })
  61. }