ration_installation_facade.js 2.3 KB

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