dock_transcation.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. 'use strict';
  2. const _ = require('lodash');
  3. const idToData = async (ctx, id) => {
  4. let res = {};
  5. // 1,是产品
  6. res = await ctx.service.users.product.fetch({ id });
  7. if (res) return res;
  8. // 2,是专家
  9. res = await ctx.service.users.personal.fetch({ id });
  10. return res;
  11. };
  12. module.exports = options => {
  13. return async function dock_transcation(ctx, next) {
  14. await next();
  15. const request = ctx.request;
  16. const { method } = request;
  17. if (method === 'GET') {
  18. let { data } = ctx.body;
  19. data = JSON.parse(JSON.stringify(data));
  20. const dataKey = 'product_id';
  21. const key = 'product';
  22. if (_.isArray(data)) {
  23. // 数组,多个,循环查
  24. for (const i of data) {
  25. const res = await idToData(ctx, i[dataKey]);
  26. if (res)i[key] = res;
  27. }
  28. } else if (_.isObject(data)) {
  29. // 一个,找完就完事
  30. const res = await idToData(ctx, data[dataKey]);
  31. if (res) data[key] = res;
  32. }
  33. ctx.body.data = data;
  34. }
  35. };
  36. };