index.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. const mongoose = require('mongoose');
  2. const uuidV1 = require('uuid/v1');
  3. const _ = require('lodash');
  4. const scMathUtil = require('../../../public/scMathUtil').getUtil();
  5. const infoPriceSummaryModel = mongoose.model('std_price_info_summary');
  6. // 获取分页数据
  7. const getPagingData = async (page, pageSize, searchStr) => {
  8. let query = {};
  9. if (searchStr) {
  10. const nameReg = new RegExp(searchStr);
  11. query = {
  12. $or: [{ classCode: searchStr }, { name: { $regex: nameReg } }]
  13. }
  14. }
  15. const totalCount = await infoPriceSummaryModel.count(query);
  16. const items = await infoPriceSummaryModel.find(query).lean().sort({ classCode: 1 }).skip(page * pageSize).limit(pageSize);
  17. return { items, totalCount };
  18. }
  19. const UpdateType = {
  20. UPDATE: 'update',
  21. DELETE: 'delete',
  22. CREATE: 'create',
  23. };
  24. // 编辑表格
  25. async function editSummaryData(postData) {
  26. const bulks = [];
  27. postData.forEach(data => {
  28. if (data.type === UpdateType.UPDATE) {
  29. bulks.push({
  30. updateOne: {
  31. filter: { ID: data.ID },
  32. update: { ...data.data }
  33. }
  34. });
  35. } else if (data.type === UpdateType.DELETE) {
  36. bulks.push({
  37. deleteOne: {
  38. filter: { ID: data.ID }
  39. }
  40. });
  41. } else {
  42. bulks.push({
  43. insertOne: {
  44. document: data.data
  45. }
  46. });
  47. }
  48. });
  49. if (bulks.length) {
  50. await infoPriceSummaryModel.bulkWrite(bulks);
  51. }
  52. }
  53. module.exports = {
  54. getPagingData,
  55. editSummaryData,
  56. }