FYunFileServiceImpl.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.fdkankan.scene.service.impl;
  2. import cn.hutool.core.io.FileUtil;
  3. import cn.hutool.core.io.IoUtil;
  4. import cn.hutool.core.lang.UUID;
  5. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6. import com.fdkankan.common.util.FdfsUtil;
  7. import com.fdkankan.scene.entity.SceneFileMapping;
  8. import com.fdkankan.scene.httpclient.CustomHttpClient;
  9. import com.fdkankan.scene.service.FYunFileService;
  10. import com.fdkankan.scene.service.SceneFileMappingService;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import javax.annotation.Resource;
  14. import java.io.*;
  15. import java.nio.charset.StandardCharsets;
  16. import java.util.Map;
  17. import java.util.Objects;
  18. @Service
  19. public class FYunFileServiceImpl implements FYunFileService {
  20. @Autowired
  21. private SceneFileMappingService sceneFileMappingService;
  22. @Resource
  23. private CustomHttpClient customHttpClient;
  24. @Resource
  25. private FdfsUtil fdfsUtil;
  26. @Override
  27. public String getFileContent(String key) throws IOException {
  28. SceneFileMapping sceneFileMapping = sceneFileMappingService.getByKey(key);
  29. String content = null;
  30. try (InputStream inputStream = customHttpClient.downloadFileToInputStream(sceneFileMapping.getUrl())){
  31. content = IoUtil.read(inputStream, StandardCharsets.UTF_8);
  32. }
  33. return content;
  34. }
  35. @Override
  36. public void uploadFile(String num, byte[] data, String key) {
  37. String suffix = "." + FileUtil.getSuffix(key);
  38. File tempFile = FileUtil.createTempFile(UUID.fastUUID().toString(), suffix, new File("/temp"), true);
  39. FileUtil.writeBytes(data, tempFile);
  40. Map<String, String> mapping = fdfsUtil.uploadFile(tempFile.getAbsolutePath());
  41. //添加记录
  42. SceneFileMapping sceneFileMapping = sceneFileMappingService.getByKey(key);
  43. if(Objects.isNull(sceneFileMapping)){
  44. sceneFileMapping = new SceneFileMapping();
  45. }
  46. sceneFileMapping.setNum(num);
  47. sceneFileMapping.setFileid(mapping.get("file_id"));
  48. sceneFileMapping.setUrl(mapping.get("http_url"));
  49. sceneFileMapping.setKey(key);
  50. sceneFileMappingService.saveOrUpdate(sceneFileMapping);
  51. }
  52. public static void main(String[] args) {
  53. String suffix = "." + FileUtil.getSuffix("/sxx/ttt/adf.json");
  54. File tempFile = FileUtil.createTempFile(UUID.fastUUID().toString(), suffix, new File("D:\\test2"), true);
  55. FileUtil.writeBytes("nihsd灌灌灌灌".getBytes(StandardCharsets.UTF_8), tempFile);
  56. }
  57. }