util.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. 'use strict';
  2. const _ = require('lodash');
  3. const moment = require('moment');
  4. const { CrudService } = require('naf-framework-mongoose-free/lib/service');
  5. const { ObjectId } = require('mongoose').Types;
  6. const fs = require('fs');
  7. class UtilService extends CrudService {
  8. constructor(ctx) {
  9. super(ctx);
  10. this.mq = this.ctx.mq;
  11. }
  12. async utilMethod(query, body) {
  13. // 非开发模式不执行
  14. if (process.env.NODE_ENV !== 'development') return;
  15. console.log('in function:');
  16. const res = await this.ctx.curl('http://baoan.fwedzgc.com:8090/api/position?name=刘睿峰', { dataType: 'json' });
  17. const { data } = res.data;
  18. const ids = data.map(i => i._id);
  19. console.log(ids);
  20. console.log(ids.length);
  21. // for (const id of ids) {
  22. // const r = await this.ctx.curl(`http://baoan.fwedzgc.com:8090/api/position/${id}`, { method: 'DELETE', dataType: 'json', headers: { dkey: 'free' } });
  23. // console.log(r);
  24. // }
  25. }
  26. async expertExport() {
  27. }
  28. dealQuery(query) {
  29. return this.turnFilter(this.turnDateRangeQuery(query));
  30. }
  31. /**
  32. * 将查询条件中模糊查询的标识转换成对应object
  33. * @param {Object} filter 查询条件
  34. */
  35. turnFilter(filter) {
  36. const str = /^%\S*%$/;
  37. const keys = Object.keys(filter);
  38. for (const key of keys) {
  39. const res = key.match(str);
  40. if (res) {
  41. const newKey = key.slice(1, key.length - 1);
  42. filter[newKey] = new RegExp(filter[key]);
  43. delete filter[key];
  44. }
  45. }
  46. return filter;
  47. }
  48. /**
  49. * 将时间转换成对应查询Object
  50. * @param {Object} filter 查询条件
  51. */
  52. turnDateRangeQuery(filter) {
  53. const keys = Object.keys(filter);
  54. for (const k of keys) {
  55. if (k.includes('@')) {
  56. const karr = k.split('@');
  57. if (karr.length === 2) {
  58. const type = karr[1];
  59. if (type === 'start') {
  60. if (filter[k] && filter[k] !== '') {
  61. filter[karr[0]] = {
  62. ..._.get(filter, karr[0], {}),
  63. $gte: filter[k],
  64. };
  65. }
  66. } else {
  67. if (filter[k] && filter[k] !== '') {
  68. filter[karr[0]] = {
  69. ..._.get(filter, karr[0], {}),
  70. $lte: filter[k],
  71. };
  72. }
  73. }
  74. delete filter[k];
  75. }
  76. }
  77. }
  78. return filter;
  79. }
  80. }
  81. module.exports = UtilService;