takephoto.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. 'use strict';
  2. const fs = require('fs');
  3. const { Controller } = require('ee-core');
  4. const { getPhotoRecords,delectGoodsArts,createMainImage,getLastPhotoRecord } = require('../api/takephoto');
  5. const errData = {
  6. msg :'请求失败,请联系管理员',
  7. code:999
  8. }
  9. let id = 1;
  10. /**
  11. * example
  12. * @class
  13. */
  14. class takePhotoController extends Controller {
  15. constructor(ctx) {
  16. super(ctx);
  17. }
  18. /**
  19. * 所有方法接收两个参数
  20. * @param args 前端传的参数
  21. * @param event - ipc通信时才有值。详情见:控制器文档
  22. */
  23. /**
  24. * getPhotoRecords
  25. */
  26. async getPhotoRecords (params) {
  27. console.log('getPhotoRecords')
  28. try {
  29. console.log(id +'getPhotoRecords start print_time:'+new Date().toLocaleString()) // 打印当前时间
  30. const result = await getPhotoRecords(params);
  31. console.log(id+'getPhotoRecords result')
  32. console.log(id + 'getPhotoRecords result print_time:'+new Date().toLocaleString()) // 打印当前时间
  33. id++;
  34. if(result.data) return result.data
  35. return errData;
  36. } catch (error) {
  37. console.log('getPhotoRecords error')
  38. return errData;
  39. }
  40. }
  41. async delectGoodsArts (params) {
  42. console.log('delectGoodsArts')
  43. try {
  44. const result = await delectGoodsArts(params);
  45. console.log('result')
  46. console.log(result)
  47. if(result.data) return result.data
  48. return errData;
  49. } catch (error) {
  50. console.log('error')
  51. console.log(error)
  52. return errData;
  53. }
  54. }
  55. async createMainImage (params) {
  56. console.log('createMainImage')
  57. try {
  58. const result = await createMainImage(params);
  59. console.log('result')
  60. console.log(result)
  61. if(result.code === 0 && result.data?.main_out_path){
  62. const filePath = result.data?.main_out_path
  63. const fileBuffer = fs.readFileSync(filePath);
  64. const base64Image = fileBuffer.toString('base64');
  65. // 获取文件扩展名
  66. const extension = path.extname(filePath).toLowerCase().replace('.', '');
  67. // 根据扩展名确定 MIME 类型
  68. let mimeType = '';
  69. switch (extension) {
  70. case 'jpg':
  71. case 'jpeg':
  72. mimeType = 'image/jpeg';
  73. break;
  74. case 'png':
  75. mimeType = 'image/png';
  76. break;
  77. case 'gif':
  78. mimeType = 'image/gif';
  79. break;
  80. case 'webp':
  81. mimeType = 'image/webp';
  82. break;
  83. case 'avif':
  84. mimeType = 'image/avif';
  85. break;
  86. default:
  87. mimeType = 'application/octet-stream'; // 默认 MIME 类型
  88. break;
  89. }
  90. // 构建 data URL
  91. const dataUrl = `data:${mimeType};base64,${base64Image}`;
  92. result.data.main_out_path = dataUrl
  93. }
  94. if(result.data) return result.data
  95. return errData;
  96. } catch (error) {
  97. console.log('error')
  98. console.log(error)
  99. return errData;
  100. }
  101. }
  102. async getLastPhotoRecord (params) {
  103. console.log('getLastPhotoRecord')
  104. try {
  105. const result = await getLastPhotoRecord(params);
  106. console.log('result')
  107. console.log(result)
  108. if(result.data) return result.data
  109. return errData;
  110. } catch (error) {
  111. console.log('error')
  112. console.log(error)
  113. return errData;
  114. }
  115. }
  116. }
  117. takePhotoController.toString = () => '[class takePhotoController]';
  118. module.exports = takePhotoController;