import { createRequestParamDecorator } from '@midwayjs/core'; import { get, pick, omit } from 'lodash'; import { QueryMapping, QueryReset } from '../frame/QueryUtils'; const pageKeys = ['skip', 'limit']; /**将query的skip和limit提取到object中返回 */ export const Page = () => { return createRequestParamDecorator(ctx => { const query = get(ctx, 'query', {}); const page = pick(query, pageKeys); return page; }); }; /**将query中的skip和limit剃除,整理查询参数的值和键的映射 */ export const Query = (mapping?: object) => { return createRequestParamDecorator(ctx => { const query = get(ctx, 'query', {}); let filter: object = omit(query, pageKeys); // 先处理参数的查询方式 filter = QueryReset(filter); // 再处理mapping的字段映射 filter = QueryMapping(filter, mapping); return filter; }); };