123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- package com.fd.controller;
- import com.fd.constant.Command;
- import com.fd.constant.MsgCode;
- import com.fd.constant.TypeCode;
- import com.fd.dto.PageDto;
- import com.fd.entity.FileEntity;
- import com.fd.server.CmdServer;
- import com.fd.server.FileServer;
- import com.fd.util.FileUtils;
- import com.fd.util.R;
- import io.swagger.annotations.ApiOperation;
- import lombok.extern.log4j.Log4j2;
- 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 org.springframework.web.multipart.MultipartFile;
- import java.io.File;
- import java.util.Date;
- /**
- * Created by Owen on 2019/11/12 0012 9:40
- *
- * 3D模型数据
- */
- @Log4j2
- @RequestMapping("api/fdModel")
- @RestController
- public class FdModelController {
- @Value("${input.file.path}")
- private String INPUT_FILE_PATH;
- @Autowired
- private FileServer fileServer;
- @Autowired
- private CmdServer cmdServer;
- @ApiOperation("上传3D模型数据,只能上传zip文件")
- @PostMapping(value = "upload", consumes = { "multipart/form-data" })
- private R upload(@RequestParam("file") MultipartFile file){
- log.info("run upload");
- // 文件名全名
- String fileName = file.getOriginalFilename();
- String s = StringUtils.substringAfter(fileName, ".");
- if (!"zip".equals(s)) {
- return new R(50007,MsgCode.E50007);
- }
- return fileServer.uploadBigFile(file, TypeCode.FILE_TYPE_MODEL_OSGB);
- }
- @ApiOperation("解压zip文件")
- @GetMapping("unzip/{fileId}/")
- private R fileUnzip(@PathVariable("fileId") Long fileId) {
- log.info("run fileUnzip: {}", fileId);
- FileEntity entity = fileServer.findById(fileId);
- boolean unzip = FileUtils.unzip(entity.getFileUrl(), INPUT_FILE_PATH);
- if (!unzip) {
- return new R(50006, MsgCode.E50006);
- }
- String fileName = StringUtils.substringBefore(entity.getFileName(), ".");
- FileEntity fileEntity = new FileEntity();
- fileEntity.setFileName(fileName);
- fileEntity.setFileUrl(INPUT_FILE_PATH + File.separator + fileName);
- fileEntity.setCreateTime(new Date());
- fileEntity.setUpdateTime(new Date());
- fileEntity.setType(TypeCode.FILE_TYPE_MODEL_OSGB);
- fileEntity = fileServer.save(fileEntity);
- return new R(200, fileEntity);
- }
- @ApiOperation("获取3D模型数据列表")
- @PostMapping(value = "list")
- private R list(@RequestBody PageDto param){
- log.info("run list");
- return fileServer.findByType(TypeCode.FILE_TYPE_MODEL_OSGB, param);
- }
- /**
- * 删除文件
- */
- @ApiOperation("删除文件")
- @GetMapping("delete/{fileId}/")
- private R deleteFile(@PathVariable("fileId") Long fileId) {
- log.info("run deleteFile: {}", fileId);
- return fileServer.deleteById(fileId);
- }
- @ApiOperation("倾斜摄影数据切片")
- @GetMapping("command/osgb/{fileId}/")
- private R cmdOsgb(@PathVariable("fileId") Long fileId) {
- log.info("run cmdOsgb: {}", fileId);
- FileEntity entity = fileServer.findById(fileId);
- // 传入的是目录
- String cmd = Command.MODEL_OSGB;
- cmd = cmd.replace("@fileName",entity.getFileName());
- log.info("cmd: {}", cmd);
- return cmdServer.exeCmdOsgb(cmd, entity.getFileName());
- }
- @ApiOperation("移动切片数据到服务器")
- @GetMapping("command/move/{fileId}/")
- private R cmdMove(@PathVariable("fileId") Long fileId) {
- log.info("run cmdMove: {}", fileId);
- FileEntity entity = fileServer.findById(fileId);
- String fileName = StringUtils.substringBefore(entity.getFileName(), ".");
- String path = StringUtils.substringBeforeLast(entity.getFileUrl(),"/");
- String cmd = Command.CMD_MV;
- cmd = cmd.replace("@fileName",fileName);
- cmd = cmd.replace("@path", path);
- log.info("cmd: {}", cmd);
- return cmdServer.exeCmd(cmd);
- }
- }
|