FYunFileServiceImpl.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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, Integer subgroup) throws IOException {
  28. SceneFileMapping sceneFileMapping = sceneFileMappingService.getByKey(key, subgroup);
  29. if(Objects.isNull(sceneFileMapping)){
  30. return null;
  31. }
  32. String content = null;
  33. try (InputStream inputStream = customHttpClient.downloadFileToInputStream(sceneFileMapping.getUrl())){
  34. content = IoUtil.read(inputStream, StandardCharsets.UTF_8);
  35. }
  36. return content;
  37. }
  38. @Override
  39. public void uploadFile(String num, Integer subgroup, byte[] data, String key) {
  40. String suffix = "." + FileUtil.getSuffix(key);
  41. File tempFile = FileUtil.createTempFile(UUID.fastUUID().toString(), suffix, new File("/temp"), true);
  42. FileUtil.writeBytes(data, tempFile);
  43. Map<String, String> mapping = fdfsUtil.uploadFile(tempFile.getAbsolutePath());
  44. //添加记录
  45. SceneFileMapping sceneFileMapping = sceneFileMappingService.getByKey(key, subgroup);
  46. if(Objects.isNull(sceneFileMapping)){
  47. sceneFileMapping = new SceneFileMapping();
  48. }
  49. sceneFileMapping.setNum(num);
  50. sceneFileMapping.setFileid(mapping.get("file_id"));
  51. sceneFileMapping.setUrl(mapping.get("http_url"));
  52. sceneFileMapping.setKey(key);
  53. sceneFileMapping.setSubgroup(subgroup);
  54. sceneFileMappingService.saveOrUpdate(sceneFileMapping);
  55. }
  56. @Override
  57. public void uploadFile(String num, Integer subgroup, String path, String key) {
  58. Map<String, String> mapping = fdfsUtil.uploadFile(path);
  59. //添加记录
  60. SceneFileMapping sceneFileMapping = sceneFileMappingService.getByKey(key,subgroup);
  61. if(Objects.isNull(sceneFileMapping)){
  62. sceneFileMapping = new SceneFileMapping();
  63. }
  64. sceneFileMapping.setNum(num);
  65. sceneFileMapping.setFileid(mapping.get("file_id"));
  66. sceneFileMapping.setUrl(mapping.get("http_url"));
  67. sceneFileMapping.setKey(key);
  68. sceneFileMapping.setSubgroup(subgroup);
  69. sceneFileMappingService.saveOrUpdate(sceneFileMapping);
  70. }
  71. @Override
  72. public void deleteFile(String num, Integer subgroup, String key) {
  73. sceneFileMappingService.delByNumAndKey(num, subgroup, key);
  74. }
  75. public static void main(String[] args) {
  76. String suffix = "." + FileUtil.getSuffix("/sxx/ttt/adf.json");
  77. File tempFile = FileUtil.createTempFile(UUID.fastUUID().toString(), suffix, new File("D:\\test2"), true);
  78. FileUtil.writeBytes("nihsd灌灌灌灌".getBytes(StandardCharsets.UTF_8), tempFile);
  79. }
  80. @Override
  81. public String downloadFile(String num, Integer subgroup, String key, String dir, String fileName) {
  82. SceneFileMapping sceneFileMapping = sceneFileMappingService.getByKey(key, subgroup);
  83. if(Objects.isNull(sceneFileMapping)){
  84. return null;
  85. }
  86. customHttpClient.downloadFile(sceneFileMapping.getUrl(), dir, fileName);
  87. if(dir.endsWith("/")){
  88. dir += "/";
  89. }
  90. return dir + fileName;
  91. }
  92. }