generate.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. 'use strict';
  2. const { Controller } = require('ee-core');
  3. const Log = require('ee-core/log');
  4. const Services = require('ee-core/services');
  5. const path = require('path');
  6. const fs = require('fs');
  7. const { generatePhotoDetail, getLogoList, addLogo, deleteLogo, getGoodsImageJson, generatePoster, sceneSetPrepare, sceneSetRun, sceneSetSave, sceneSetCutout } = require('../api/generate');
  8. const errData = {
  9. msg :'请求失败,请联系管理员',
  10. code:999
  11. }
  12. /**
  13. * 设置控制器
  14. * @class
  15. */
  16. class GenerateController extends Controller {
  17. constructor(ctx) {
  18. super(ctx);
  19. this.configPath = path.join(__dirname, '..', 'config', 'app.config.json');
  20. }
  21. /**
  22. * 获取设备配置列表
  23. */
  24. async generatePhotoDetail(args) {
  25. try {
  26. const result = await generatePhotoDetail(args);
  27. if(result.data) return result.data
  28. return errData;
  29. } catch (error) {
  30. Log.error('主图详情生成失败:', error);
  31. return errData;
  32. }
  33. }
  34. /**
  35. * 获取LOGO列表
  36. */
  37. async addLogo(args) {
  38. try {
  39. const result = await addLogo(args);
  40. if(result.data) return result.data
  41. return errData;
  42. } catch (error) {
  43. Log.error('添加LOGO失败:', error);
  44. return errData;
  45. }
  46. }
  47. /**
  48. * 获取LOGO列表
  49. */
  50. async getLogoList(args) {
  51. try {
  52. const result = await getLogoList(args);
  53. if(result.data) return result.data
  54. return errData;
  55. } catch (error) {
  56. Log.error('获取LOGO列表失败:', error);
  57. return errData;
  58. }
  59. }
  60. /**
  61. * 获取LOGO列表
  62. */
  63. async deleteLogo(args) {
  64. try {
  65. const result = await deleteLogo(args);
  66. if(result.data) return result.data
  67. return errData;
  68. } catch (error) {
  69. Log.error('删除LOGO失败:', error);
  70. return errData;
  71. }
  72. }
  73. /**
  74. * 根据货号获取商品图片 JSON(生成商品模板用)
  75. */
  76. async getGoodsImageJson(args) {
  77. try {
  78. const result = await getGoodsImageJson(args);
  79. if (result.data) return result.data;
  80. return errData;
  81. } catch (error) {
  82. Log.error('获取商品图片 JSON 失败:', error);
  83. return errData;
  84. }
  85. }
  86. /**
  87. * 湛江场景图生成:本机校验并创建云端任务
  88. */
  89. async generatePoster(args) {
  90. try {
  91. Log.info('湛江场景图生成请求', args);
  92. const result = await generatePoster(args);
  93. Log.info('湛江场景图生成响应', result && result.data ? result.data : result);
  94. if (result.data) return result.data;
  95. return errData;
  96. } catch (error) {
  97. Log.error('湛江场景图生成失败:', error);
  98. return errData;
  99. }
  100. }
  101. async sceneSetPrepare(args) {
  102. try {
  103. const result = await sceneSetPrepare(args);
  104. if (result.data) return result.data;
  105. return errData;
  106. } catch (error) {
  107. Log.error('卖点套图准备失败:', error);
  108. return errData;
  109. }
  110. }
  111. async sceneSetRun(args) {
  112. try {
  113. const result = await sceneSetRun(args);
  114. if (result.data) return result.data;
  115. return errData;
  116. } catch (error) {
  117. Log.error('卖点套图生成失败:', error);
  118. return errData;
  119. }
  120. }
  121. async sceneSetSave(args) {
  122. try {
  123. const result = await sceneSetSave(args);
  124. if (result.data) return result.data;
  125. return errData;
  126. } catch (error) {
  127. Log.error('卖点套图保存失败:', error);
  128. return errData;
  129. }
  130. }
  131. async sceneSetCutout(args) {
  132. try {
  133. const result = await sceneSetCutout(args);
  134. if (result.data) return result.data;
  135. return errData;
  136. } catch (error) {
  137. Log.error('卖点套图抠图失败:', error);
  138. const body = error && error.response && error.response.data;
  139. if (body && (body.msg || body.message)) {
  140. return { code: body.code || 1, msg: body.msg || body.message, data: null };
  141. }
  142. return errData;
  143. }
  144. }
  145. }
  146. GenerateController.toString = () => '[class GenerateController]';
  147. module.exports = GenerateController;