ration_installation_facade.js 2.3 KB

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