exportMission.service.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { Config, Provide } from '@midwayjs/core';
  2. import { InjectEntityModel } from '@midwayjs/typeorm';
  3. import { Repository } from 'typeorm';
  4. import { ExportMission } from '../entity/exportMission.entity';
  5. import { BaseServiceV2 } from '../frame/BaseServiceV2';
  6. import Axios from 'axios';
  7. import { cloneDeep, get, head, isArray } from 'lodash';
  8. import { User } from '../entity/system/user.entity';
  9. import { Admin } from '../entity/system/admin.entity';
  10. @Provide()
  11. export class ExportMissionService extends BaseServiceV2 {
  12. @InjectEntityModel(ExportMission)
  13. model: Repository<ExportMission>;
  14. @InjectEntityModel(User)
  15. user: Repository<User>;
  16. @InjectEntityModel(Admin)
  17. admin: Repository<Admin>;
  18. @Config('modulesConfig.mq')
  19. mqServiceHttpPrefix: any;
  20. async dealData(data) {
  21. let list = [];
  22. const returnData = [];
  23. const isArr = isArray(data);
  24. if (isArr) list = data;
  25. else list.push(data);
  26. for (const i of list) {
  27. const obj = cloneDeep(i)
  28. const { user_type, user } = i;
  29. let model;
  30. if (user_type === 'ADMIN') {
  31. obj.user_type_name = '管理员';
  32. model = this.admin;
  33. } else if (user_type === 'USER') {
  34. obj.user_type_name = '用户';
  35. model = this.user;
  36. }
  37. if (!model) continue;
  38. const userInfo = await model.createQueryBuilder().where(`"id" =:id`, { id: user }).getOne();
  39. if (!userInfo) continue;
  40. obj.user_name = get(userInfo, 'nick_name');
  41. returnData.push(obj)
  42. }
  43. if (isArr) return returnData;
  44. else return head(returnData);
  45. }
  46. /**
  47. * 发送mq消息
  48. * @param id 任务id
  49. */
  50. async toSendMq(id) {
  51. const url = `${this.mqServiceHttpPrefix}/mission`;
  52. const body = { id };
  53. try {
  54. await Axios.post(url, body, { responseType: 'json' });
  55. } catch (error) {
  56. console.log(error);
  57. }
  58. }
  59. }