urgencyService.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. 'use strict';
  2. const Service = require('../service/baseService');
  3. class UrgencyService extends Service {
  4. tag() {
  5. return this.ctx.model.UrgencyModel;
  6. }
  7. // 分页查询
  8. async listForPage(data) {
  9. const { model } = this.ctx;
  10. const page = data.page;
  11. const rows = Number.parseInt(data.rows) || this.app.config.defaultPageSize;
  12. delete data.page;
  13. delete data.rows;
  14. const where = {};
  15. if (data.dept1) {
  16. where.dept1 = data.dept1;// 省
  17. }
  18. if (data.dept2) {
  19. where.dept2 = data.dept2; // 市
  20. }
  21. if (data.dept3) {
  22. where.dept3 = data.dept3; // 区
  23. }
  24. if (data.dept4) {
  25. where.dept4 = data.dept4; // 乡
  26. }
  27. if (data.dept5) {
  28. where.dept5 = data.dept5; // 社区
  29. }
  30. if (data.userName) {
  31. const result = await model.SysUserModel.find({ loginName: { $regex: data.userName } });
  32. if (result.length > 0) {
  33. where.userid = result[0]._id;
  34. } else {
  35. return '';
  36. }
  37. }
  38. if (data.managerName) {
  39. const result = await model.SysUserModel.find({ loginName: { $regex: data.managerName } });
  40. if (result.length > 0) {
  41. where.managerid = result[0]._id;
  42. } else {
  43. return '';
  44. }
  45. }
  46. if (data.oldName) {
  47. where.oldName = data.oldName;
  48. }
  49. if (data.status) {
  50. where.status = '' + data.status;
  51. }
  52. if (data.startTime && data.endTime) {
  53. where.createTime = { $gte: new Date(data.startTime + ' 00:00:00'), $lt: new Date(data.endTime + ' 23:59:59') };
  54. }
  55. this.ctx.logger.info('条件', where);
  56. const pop = [
  57. {
  58. path: 'dept1',
  59. select: 'name',
  60. },
  61. {
  62. path: 'dept2',
  63. select: 'name',
  64. },
  65. {
  66. path: 'dept3',
  67. select: 'name',
  68. },
  69. {
  70. path: 'dept4',
  71. select: 'name',
  72. },
  73. {
  74. path: 'dept5',
  75. select: 'name',
  76. },
  77. {
  78. path: 'visitId',
  79. },
  80. ];
  81. const total = await model.UrgencyModel.find(where).populate(pop).countDocuments();
  82. const result = await model.UrgencyModel.find(where).populate(pop).skip((page - 1) * rows)
  83. .limit(rows)
  84. .sort({ time: -1 });
  85. return {
  86. count: total,
  87. list: result,
  88. };
  89. }
  90. }
  91. module.exports = UrgencyService;