'use strict'; const _ = require('lodash'); const moment = require('moment'); const { CrudService } = require('naf-framework-mongoose-free/lib/service'); const { ObjectId } = require('mongoose').Types; const fs = require('fs'); class UtilService extends CrudService { constructor(ctx) { super(ctx); this.mq = this.ctx.mq; } async utilMethod(query, body) { // 非开发模式不执行 if (process.env.NODE_ENV !== 'development') return; console.log('in function:'); const res = await this.ctx.curl('http://baoan.fwedzgc.com:8090/api/position?name=刘睿峰', { dataType: 'json' }); const { data } = res.data; const ids = data.map(i => i._id); console.log(ids); console.log(ids.length); // for (const id of ids) { // const r = await this.ctx.curl(`http://baoan.fwedzgc.com:8090/api/position/${id}`, { method: 'DELETE', dataType: 'json', headers: { dkey: 'free' } }); // console.log(r); // } } async expertExport() { } dealQuery(query) { return this.turnFilter(this.turnDateRangeQuery(query)); } /** * 将查询条件中模糊查询的标识转换成对应object * @param {Object} filter 查询条件 */ turnFilter(filter) { const str = /^%\S*%$/; const keys = Object.keys(filter); for (const key of keys) { const res = key.match(str); if (res) { const newKey = key.slice(1, key.length - 1); filter[newKey] = new RegExp(filter[key]); delete filter[key]; } } return filter; } /** * 将时间转换成对应查询Object * @param {Object} filter 查询条件 */ turnDateRangeQuery(filter) { const keys = Object.keys(filter); for (const k of keys) { if (k.includes('@')) { const karr = k.split('@'); if (karr.length === 2) { const type = karr[1]; if (type === 'start') { if (filter[k] && filter[k] !== '') { filter[karr[0]] = { ..._.get(filter, karr[0], {}), $gte: filter[k], }; } } else { if (filter[k] && filter[k] !== '') { filter[karr[0]] = { ..._.get(filter, karr[0], {}), $lte: filter[k], }; } } delete filter[k]; } } } return filter; } } module.exports = UtilService;