vvTax_facade.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Zhong
  6. * @date 2019/1/25
  7. * @version
  8. */
  9. import mongoose from "mongoose";
  10. const uuidV1 = require('uuid/v1');
  11. let moment = require("moment");
  12. const vvTaxLibModel = mongoose.model('std_vehicleVesselTax_lib');
  13. const vvTaxModel = mongoose.model('std_vehicleVesselTax_items');
  14. let vvTaxLib = {
  15. findByCondition:async function(conditions,withData=false,single=true){
  16. if(single == true){
  17. let lib = await vvTaxLibModel.findOne(conditions);
  18. if (withData) {
  19. lib._doc.data = await vvTaxModel.find({libID: conditions.ID}, {_id: 0, libID:0, ID: 0});
  20. }
  21. return lib._doc;
  22. }else {
  23. return await vvTaxLibModel.find(conditions);
  24. }
  25. },
  26. addLib : async function (data){
  27. let now = new Date().getTime();
  28. let dateStr = moment(now).format('YYYY-MM-DD HH:mm:ss');
  29. let newLib = {
  30. creator: data.userAccount,
  31. createDate: now,
  32. recentOpr: [{operator: data.userAccount, operateDate: dateStr}],
  33. name: data.name,
  34. };
  35. newLib.ID = uuidV1();
  36. return await vvTaxLibModel.create(newLib);
  37. },
  38. saveLib:async function(param) {
  39. if (param.edit) {//更改保存车船税具体数据
  40. await vvTaxModel.deleteMany({libID: param.query.ID});
  41. let tasks = [];
  42. for (let data of param.data.data) {
  43. data.libID = param.query.ID;
  44. data.ID = uuidV1();
  45. tasks.push({insertOne: {document: data}});
  46. }
  47. if (tasks.length > 0) {
  48. await vvTaxModel.bulkWrite(tasks);
  49. }
  50. } else {
  51. return await vvTaxLibModel.findOneAndUpdate(param.query,param.data,{new:true});
  52. }
  53. },
  54. deleteLibByID:async function(ID){
  55. await vvTaxLibModel.deleteOne({ID: ID});
  56. return await vvTaxModel.deleteMany({libID: ID});
  57. },
  58. };
  59. export default vvTaxLib;