123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package com.fdkankan.fusion.controller;
- import cn.hutool.core.io.FileUtil;
- import com.fdkankan.fusion.common.FilePath;
- import com.fdkankan.fusion.common.ResultCode;
- import com.fdkankan.fusion.common.ResultData;
- import com.fdkankan.fusion.common.util.UploadToOssUtil;
- import com.fdkankan.fusion.config.CacheUtil;
- import com.fdkankan.fusion.exception.BusinessException;
- import com.fdkankan.fusion.httpClient.request.LaserSceneParam;
- import com.fdkankan.fusion.request.ScenePram;
- import com.fdkankan.fusion.response.FileInfoVo;
- import com.fdkankan.fusion.service.ISceneService;
- 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;
- @RestController
- @RequestMapping("/scene")
- public class SceneController extends BaseController{
- @Autowired
- ISceneService sceneService;
- @PostMapping("/list")
- public ResultData list(@RequestBody ScenePram param){
- param.setShare(getShare());
- return ResultData.ok(sceneService.pageList(param));
- }
- @GetMapping("/getFdTokenByNum")
- public Object getFdTokenByNum(@RequestParam(required = false) String num){
- return sceneService.getFdTokenByNum(num);
- }
- @GetMapping("/deleteNum")
- public ResultData deleteNum(@RequestParam(required = false) String num){
- sceneService.deleteNum(num);
- return ResultData.ok();
- }
- @PostMapping("/sceneDetail")
- public ResultData sceneDetail(@RequestBody LaserSceneParam param){
- return ResultData.ok(sceneService.sceneDetail(param));
- }
- @PostMapping("/buildSceneObj")
- public ResultData buildSceneObj(@RequestBody LaserSceneParam param){
- sceneService.buildSceneObj(param);
- return ResultData.ok();
- }
- @PostMapping("/copyScene")
- public ResultData copyScene(@RequestBody ScenePram param){
- sceneService.copyScene(param);
- return ResultData.ok();
- }
- @Autowired
- UploadToOssUtil uploadToOssUtil;
- @Value("${spring.profiles.active}")
- private String environment;
- @GetMapping("/downMD5")
- public void downMD5(@RequestParam(required = false) String num,
- @RequestParam(required = false) Integer type,
- HttpServletResponse res, HttpServletRequest req) throws IOException {
- if(StringUtils.isBlank(num) || type == null){
- throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
- }
- // 设置响应头,指定文件类型和内容长度
- OutputStream os = null;
- try {
- FileInfoVo fileInfo = null;
- Long size = null;
- String sceneObjPath =null;
- if(type == 2 || type == 5){ //点云
- String scenePath = null;
- if(CacheUtil.environment.contains("prod" )){
- sceneObjPath = String.format(FilePath.LASER_OSS_PATH, num,num)+"/cloud.js" ;
- scenePath = String.format(FilePath.LASER_OSS_PATH, num,num);
- }else {
- sceneObjPath = String.format(FilePath.LASER_OSS_PATH_TEST, num,num)+"/cloud.js" ;
- scenePath = String.format(FilePath.LASER_OSS_PATH_TEST, num,num);
- }
- fileInfo = uploadToOssUtil.getFileInfo(sceneObjPath,"laser-data");
- size = uploadToOssUtil.getSize(scenePath,"laser-data");
- }else {
- sceneObjPath = String.format(FilePath.OBJ_OSS_PATH,num) + "/images/3dtiles/tileset.json";
- if(!uploadToOssUtil.existKey(sceneObjPath)){
- sceneObjPath = String.format(FilePath.OBJ_OSS_PATH,num) + "/data/mesh/mesh.json";
- }
- if(!uploadToOssUtil.existKey(sceneObjPath)){
- sceneObjPath = String.format(FilePath.OBJ_OSS_PATH,num) + "/data/mesh/mesh.obj";
- }
- fileInfo = uploadToOssUtil.getFileInfo(sceneObjPath);
- String scenePath = String.format(FilePath.OBJ_OSS_PATH, num);
- size = uploadToOssUtil.getSize(scenePath);
- }
- if(fileInfo == null){
- throw new BusinessException(ResultCode.FILE_NOT_EXIST);
- }
- fileInfo.setSize(size);
- String objPath = String.format(FilePath.OBJ_LOCAL_PATH,environment , num) ;
- File file = new File(objPath +"/"+num + "_hash.txt");
- res.setContentType("application/octet-stream");
- res.setHeader("Content-Disposition", "attachment; filename="+num + "_hash.txt");
- os = res.getOutputStream();
- FileUtil.writeString(fileInfo.toString(),file,"UTF-8");
- os.write(FileUtils.readFileToByteArray(file));
- os.flush();
- } finally {
- if(os!=null){
- os.close();
- }
- }
- }
- }
|