12345678910111213141516171819202122232425262728 |
- '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;
- }
- };
- };
|