123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- package com.fdkankan.fusion.controller;
- import cn.hutool.core.io.FileUtil;
- import com.fdkankan.fusion.common.FilePath;
- import com.fdkankan.fusion.common.OssPath;
- import com.fdkankan.fusion.common.ResultCode;
- import com.fdkankan.fusion.common.ResultData;
- import com.fdkankan.fusion.common.util.ShellUtil;
- import com.fdkankan.fusion.common.util.UploadToOssUtil;
- import com.fdkankan.fusion.config.CacheUtil;
- import com.fdkankan.fusion.entity.CommonUpload;
- import com.fdkankan.fusion.entity.Dict;
- import com.fdkankan.fusion.entity.DictFile;
- import com.fdkankan.fusion.entity.Model;
- import com.fdkankan.fusion.exception.BusinessException;
- import com.fdkankan.fusion.request.DictFileParam;
- import com.fdkankan.fusion.response.FileInfoVo;
- import com.fdkankan.fusion.service.ICommonUploadService;
- import com.fdkankan.fusion.service.IDictFileService;
- import org.apache.commons.io.FileUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.File;
- import java.io.IOException;
- import java.io.OutputStream;
- /**
- * <p>
- * 前端控制器
- * </p>
- *
- * @author
- * @since 2024-12-02
- */
- @RestController
- @RequestMapping("/dictFile")
- public class DictFileController extends BaseController{
- @Autowired
- IDictFileService dictFileService;
- @Autowired
- ICommonUploadService commonUploadService;
- @Autowired
- UploadToOssUtil uploadToOssUtil;
- @Value("${upload.query-path}")
- private String queryPath;
- @PostMapping("/pageList/{typeKey}")
- public ResultData pageList(@RequestBody DictFileParam param, @PathVariable String typeKey){
- param.setTypeKey(typeKey);
- return ResultData.ok(dictFileService.pageList(param));
- }
- @PostMapping("/addOrUpdate/{typeKey}")
- public ResultData addOrUpdate(@RequestBody DictFile dictFile, @PathVariable String typeKey){
- dictFile.setTypeKey(typeKey);
- if(dictFile.getId() != null && StringUtils.isNotBlank(dictFile.getName())){
- commonUploadService.updateFileName(dictFile.getUploadId(),dictFile.getName());
- }
- dictFileService.addOrUpdate(dictFile);
- return ResultData.ok();
- }
- @PostMapping("/del/{typeKey}")
- public ResultData del(@RequestBody DictFile dictFile,@PathVariable String typeKey){
- dictFileService.del(dictFile);
- return ResultData.ok();
- }
- @GetMapping("/downFile")
- public ResultData downFile(@RequestParam(required = false) Integer dictFileId) {
- if(dictFileId == null){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- DictFile dictFile = dictFileService.getById(dictFileId);
- if(dictFile == null){
- throw new BusinessException(ResultCode.FILE_NOT_EXIST);
- }
- if(StringUtils.isNotBlank(dictFile.getDownUrl())){
- return ResultData.ok(dictFile.getDownUrl());
- }
- CommonUpload commonUpload = commonUploadService.getById(dictFile.getUploadId());
- if(commonUpload == null){
- throw new BusinessException(ResultCode.FILE_NOT_EXIST);
- }
- if(StringUtils.isBlank(commonUpload.getFileUrl())){
- throw new BusinessException(ResultCode.FILE_NOT_EXIST);
- }
- String sceneObjPath = commonUpload.getFileUrl().replace(queryPath,"");
- String foName = new File(sceneObjPath).getName();
- if(!"las".equals(commonUpload.getFileFormat()) && !"laz".equals(commonUpload.getFileFormat()) && !"ply".equals(commonUpload.getFileFormat())
- && !"obj".equals(commonUpload.getFileFormat()) && !"osgb".equals(commonUpload.getFileFormat()) && !"b3dm".equals(commonUpload.getFileFormat())){
- dictFileService.setDownUrl(dictFileId,commonUpload.getFileUrl(),0);
- return ResultData.ok(commonUpload.getFileUrl());
- }
- if("obj".equals(commonUpload.getFileFormat()) || "osgb".equals(commonUpload.getFileFormat()) || "b3dm".equals(commonUpload.getFileFormat())){
- File parentFile = new File(sceneObjPath).getParentFile();
- sceneObjPath = parentFile.getPath();
- foName = parentFile.getName();
- }
- String filePath = String.format(CacheUtil.basePath+OssPath.MANAGE_FILE_DOWN_PATH ,dictFileId) ;
- String ossPath = String.format(OssPath.MANAGE_FILE_DOWN_PATH ,dictFileId +"/"+dictFileId +".zip") ;
- ShellUtil.yunDownload(sceneObjPath,filePath);
- ShellUtil.zip(dictFileId+".zip",filePath+"/"+foName);
- ShellUtil.yunUpload(filePath +"/"+foName +"/"+dictFileId +".zip",ossPath);
- FileUtil.del(filePath);
- String downUrl = queryPath + ossPath;
- dictFileService.setDownUrl(dictFileId,downUrl,0);
- return ResultData.ok(downUrl);
- }
- @GetMapping("/downHash")
- public ResultData downHash(@RequestParam(required = false) Integer dictFileId) {
- if(dictFileId == null){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- DictFile dictFile = dictFileService.getById(dictFileId);
- if(dictFile == null){
- throw new BusinessException(ResultCode.FILE_NOT_EXIST);
- }
- if(StringUtils.isNotBlank(dictFile.getHashUrl())){
- return ResultData.ok(dictFile.getHashUrl());
- }
- CommonUpload commonUpload = commonUploadService.getById(dictFile.getUploadId());
- if(commonUpload == null){
- throw new BusinessException(ResultCode.FILE_NOT_EXIST);
- }
- if(StringUtils.isBlank(commonUpload.getFileUrl())){
- throw new BusinessException(ResultCode.FILE_NOT_EXIST);
- }
- String sceneObjPath = commonUpload.getFileUrl().replace(queryPath,"");
- if("las".equals(commonUpload.getFileFormat()) || "laz".equals(commonUpload.getFileFormat()) || "ply".equals(commonUpload.getFileFormat())){
- sceneObjPath = sceneObjPath+"/cloud.js";
- }
- FileInfoVo fileInfo = uploadToOssUtil.getFileInfo(sceneObjPath);
- if(fileInfo == null){
- throw new BusinessException(ResultCode.FILE_NOT_EXIST);
- }
- fileInfo.setSize(Long.valueOf(commonUpload.getFileSize()));
- String filePath = String.format(CacheUtil.basePath+OssPath.MANAGE_FILE_DOWN_PATH ,dictFileId) ;
- String ossPath = String.format(OssPath.MANAGE_FILE_DOWN_PATH ,dictFileId +"/"+ dictFileId + "_hash.txt") ;
- File file = new File(filePath +"/"+dictFileId + "_hash.txt");
- FileUtil.writeString(fileInfo.toString(),file,"UTF-8");
- ShellUtil.yunUpload(file.getPath(),ossPath);
- FileUtil.del(file);
- String downUrl = queryPath + ossPath;
- dictFileService.setDownUrl(dictFileId,downUrl,1);
- return ResultData.ok(downUrl);
- }
- }
|