'use strict'; const _ = require('lodash'); const querystring = require('querystring'); const { ObjectId } = require('mongoose').Types; module.exports = options => { return async function thumbs(ctx, next) { const url = ctx.request.url.split('?')[1]; const query = JSON.parse(JSON.stringify(querystring.parse(url))); const { openid } = query; await next(); let data = _.get(ctx.response, 'body.data'); if (_.isArray(data) && data.length > 0) { data = JSON.parse(JSON.stringify(data)); // 整合数据 const ids = data.map(i => i._id); const res = await ctx.service.thumbs.getSum({ ids, openid }); data = data.map(i => { const r = res.find(f => ObjectId(f._id).equals(i._id)); if (r) i.thumbs = r.sum; else i.thumbs = 0; return i; }); // 更新返回数据 ctx.response.body.data = data; } }; };