DictFileController.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package com.fdkankan.fusion.controller;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import cn.hutool.core.io.FileUtil;
  4. import com.fdkankan.fusion.common.FilePath;
  5. import com.fdkankan.fusion.common.OssPath;
  6. import com.fdkankan.fusion.common.ResultCode;
  7. import com.fdkankan.fusion.common.ResultData;
  8. import com.fdkankan.fusion.common.util.ShellUtil;
  9. import com.fdkankan.fusion.common.util.UploadToOssUtil;
  10. import com.fdkankan.fusion.config.CacheUtil;
  11. import com.fdkankan.fusion.entity.CommonUpload;
  12. import com.fdkankan.fusion.entity.Dict;
  13. import com.fdkankan.fusion.entity.DictFile;
  14. import com.fdkankan.fusion.entity.Model;
  15. import com.fdkankan.fusion.exception.BusinessException;
  16. import com.fdkankan.fusion.request.DictFileParam;
  17. import com.fdkankan.fusion.response.FileInfoVo;
  18. import com.fdkankan.fusion.service.ICommonUploadService;
  19. import com.fdkankan.fusion.service.IDictFileService;
  20. import com.fdkankan.fusion.service.IDictService;
  21. import org.apache.commons.io.FileUtils;
  22. import org.apache.commons.lang3.StringUtils;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.beans.factory.annotation.Value;
  25. import org.springframework.web.bind.annotation.*;
  26. import javax.servlet.http.HttpServletRequest;
  27. import javax.servlet.http.HttpServletResponse;
  28. import java.io.File;
  29. import java.io.IOException;
  30. import java.io.OutputStream;
  31. /**
  32. * <p>
  33. * 前端控制器
  34. * </p>
  35. *
  36. * @author
  37. * @since 2024-12-02
  38. */
  39. @RestController
  40. @RequestMapping("/dictFile")
  41. public class DictFileController extends BaseController{
  42. @Autowired
  43. IDictFileService dictFileService;
  44. @Autowired
  45. ICommonUploadService commonUploadService;
  46. @Autowired
  47. UploadToOssUtil uploadToOssUtil;
  48. @Value("${upload.query-path}")
  49. private String queryPath;
  50. @Autowired
  51. IDictService dictService;
  52. @PostMapping("/pageList/{typeKey}")
  53. public ResultData pageList(@RequestBody DictFileParam param, @PathVariable String typeKey){
  54. param.setTypeKey(typeKey);
  55. return ResultData.ok(dictFileService.pageList(param));
  56. }
  57. @PostMapping("/addOrUpdate/{typeKey}")
  58. public ResultData addOrUpdate(@RequestBody DictFile dictFile, @PathVariable String typeKey){
  59. dictFile.setTypeKey(typeKey);
  60. if(dictFile.getId() != null && StringUtils.isNotBlank(dictFile.getName())){
  61. commonUploadService.updateFileName(dictFile.getUploadId(),dictFile.getName());
  62. }
  63. if(dictFile.getId() == null){
  64. dictFile.setSysUserId((String) StpUtil.getLoginId());
  65. }
  66. dictFileService.addOrUpdate(dictFile);
  67. return ResultData.ok();
  68. }
  69. @PostMapping("/del/{typeKey}")
  70. public ResultData del(@RequestBody DictFile dictFile,@PathVariable String typeKey){
  71. dictFileService.del(dictFile);
  72. return ResultData.ok();
  73. }
  74. @GetMapping("/downFile")
  75. public ResultData downFile(@RequestParam(required = false) Integer dictFileId) {
  76. if(dictFileId == null){
  77. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  78. }
  79. DictFile dictFile = dictFileService.getById(dictFileId);
  80. if(dictFile == null){
  81. throw new BusinessException(ResultCode.FILE_NOT_EXIST);
  82. }
  83. CommonUpload commonUpload = commonUploadService.getById(dictFile.getUploadId());
  84. if(commonUpload == null){
  85. throw new BusinessException(ResultCode.FILE_NOT_EXIST);
  86. }
  87. if(StringUtils.isBlank(commonUpload.getSourceFile())){
  88. throw new BusinessException(ResultCode.FILE_NOT_EXIST);
  89. }
  90. return ResultData.ok(commonUpload.getSourceFile());
  91. }
  92. @GetMapping("/downHash")
  93. public ResultData downHash(@RequestParam(required = false) Integer dictFileId) {
  94. if(dictFileId == null){
  95. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  96. }
  97. DictFile dictFile = dictFileService.getById(dictFileId);
  98. if(dictFile == null){
  99. throw new BusinessException(ResultCode.FILE_NOT_EXIST);
  100. }
  101. if(StringUtils.isNotBlank(dictFile.getHashUrl())){
  102. return ResultData.ok(dictFile.getHashUrl());
  103. }
  104. CommonUpload commonUpload = commonUploadService.getById(dictFile.getUploadId());
  105. if(commonUpload == null){
  106. throw new BusinessException(ResultCode.FILE_NOT_EXIST);
  107. }
  108. if(StringUtils.isBlank(commonUpload.getFileUrl())){
  109. throw new BusinessException(ResultCode.FILE_NOT_EXIST);
  110. }
  111. String sceneObjPath = commonUpload.getFileUrl().replace(queryPath,"");
  112. if("las".equals(commonUpload.getFileFormat()) || "laz".equals(commonUpload.getFileFormat()) || "ply".equals(commonUpload.getFileFormat())){
  113. sceneObjPath = sceneObjPath+"/cloud.js";
  114. }
  115. FileInfoVo fileInfo = uploadToOssUtil.getFileInfo(sceneObjPath);
  116. if(fileInfo == null){
  117. throw new BusinessException(ResultCode.FILE_NOT_EXIST);
  118. }
  119. fileInfo.setSize(Long.valueOf(commonUpload.getFileSize()));
  120. String filePath = String.format(CacheUtil.basePath+OssPath.MANAGE_FILE_DOWN_PATH ,dictFileId) ;
  121. String ossPath = String.format(OssPath.MANAGE_FILE_DOWN_PATH ,dictFileId +"/"+ dictFileId + "_hash.txt") ;
  122. File file = new File(filePath +"/"+dictFileId + "_hash.txt");
  123. FileUtil.writeString(fileInfo.toString(),file,"UTF-8");
  124. ShellUtil.yunUpload(file.getPath(),ossPath);
  125. FileUtil.del(file);
  126. String downUrl = queryPath + ossPath;
  127. dictFileService.setDownUrl(dictFileId,downUrl,1);
  128. return ResultData.ok(downUrl);
  129. }
  130. }