rasa 初始化文件保存功能

dev_v1.0.1
xueqingkun 2 years ago
parent 5273e79278
commit cd895db85f

@ -41,6 +41,7 @@
<poi-ooxml.version>4.1.2</poi-ooxml.version> <poi-ooxml.version>4.1.2</poi-ooxml.version>
<freemarker.version>2.3.31</freemarker.version> <freemarker.version>2.3.31</freemarker.version>
<mysql-connector-java.version>8.0.26</mysql-connector-java.version> <mysql-connector-java.version>8.0.26</mysql-connector-java.version>
<io-swagger.version>1.5.22</io-swagger.version>
</properties> </properties>
<dependencyManagement> <dependencyManagement>
@ -112,6 +113,11 @@
<artifactId>poi-ooxml</artifactId> <artifactId>poi-ooxml</artifactId>
<version>${poi-ooxml.version}</version> <version>${poi-ooxml.version}</version>
</dependency> </dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>

@ -41,8 +41,10 @@
<dependency> <dependency>
<groupId>io.swagger</groupId> <groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId> <artifactId>swagger-annotations</artifactId>
<version>1.5.22</version> </dependency>
<scope>compile</scope> <dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>

@ -1,44 +0,0 @@
package com.superversion.rasa.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
@Api(tags = "辅助检查")
@RestController
@RequestMapping("askAncillary")
@RequiredArgsConstructor
public class AskAncillaryController {
@ApiOperation("接收页面的语音消息(暂时不用这个接口,主要使用websocket进行通信)")
@PostMapping("/receiveVoiceFile")
public String receiveVoiceFile(@RequestParam("file") MultipartFile file) throws IOException {
//return askService.receiveVoiceFile(file);
if (file != null && !file.isEmpty()) {
String fileName1 = file.getOriginalFilename(); //获取保存文件名
String suffixName=fileName1.substring(fileName1.lastIndexOf(".")); //文件格式
String fileName= UUID.randomUUID()+suffixName;//重命名a.jpg
//保存文件到对应位置
File dir = new File("F:\\tmp\\"+fileName);
if (!dir.getParentFile().exists()) {
dir.getParentFile().mkdirs();
}
try {
file.transferTo(dir);
} catch (IOException e) {
//抛出异常
}
}
return "";
}
}

@ -0,0 +1,12 @@
package com.superversion.rasa.controller;
import cn.hutool.core.util.ZipUtil;
import java.io.File;
public class RasaCmdController {
public static void main(String[] args) {
}
}

@ -0,0 +1,37 @@
package com.superversion.rasa.controller;
import com.superversion.rasa.service.RasaFileService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
@Api(tags = "辅助检查")
@RestController
@RequestMapping("rasaFile")
@RequiredArgsConstructor
public class RasaFileController {
@Autowired
private RasaFileService rasaFileService;
@ApiOperation("接受并保存rasa文件")
@PostMapping("/saveRasaFile")
public String saveRasaFile(@RequestParam("file") MultipartFile file) throws Exception {
if (file == null || file.isEmpty()) {
return "file is empty";
}
rasaFileService.saveRasaFile(file);
return "ok";
}
}

@ -0,0 +1,4 @@
package com.superversion.rasa.service;
public interface RasaCmdService {
}

@ -0,0 +1,8 @@
package com.superversion.rasa.service;
import org.springframework.web.multipart.MultipartFile;
public interface RasaFileService {
void saveRasaFile(MultipartFile file) throws Exception;
}

@ -0,0 +1,6 @@
package com.superversion.rasa.service.impl;
import com.superversion.rasa.service.RasaCmdService;
public class RasaCmdServiceImpl implements RasaCmdService {
}

@ -0,0 +1,67 @@
package com.superversion.rasa.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ZipUtil;
import com.superversion.rasa.service.RasaFileService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
@Service
@Slf4j
@RequiredArgsConstructor
public class RasaFileServiceImpl implements RasaFileService {
@Value("${rasa.file-path:/home/rasa}")
private String rasaFilePath;
@Value("${rasa.file-name:rasa.zip}")
private String rasaFileName;
@Override
public void saveRasaFile(MultipartFile file) throws Exception {
//初始化目录
File dir = new File(rasaFilePath);
if (!dir.exists()){
FileUtil.mkdir(dir);
}
String suffix = "_back";
String rasaFullPath = String.join(File.separator, rasaFilePath, rasaFileName);
String rasaBackFullPath = String.join(File.separator, rasaFilePath, rasaFileName + suffix);
//1.检查路径下是否存在文件
File oldFile = new File(rasaFullPath);
if (oldFile.exists()){
//1.1 如果存在文件,先备份文件
FileUtil.rename(oldFile,rasaBackFullPath,true);
}
try {
//2.把流文件保存到本地
file.transferTo(new File(rasaFullPath));
//3.解压文件
ZipUtil.unzip(rasaFullPath);
//4.删除备份文件
FileUtil.del(rasaBackFullPath);
} catch (IOException e) {
// 恢复文件
File backFile = new File(rasaBackFullPath);
if (backFile.exists()){ //恢复文件
FileUtil.rename(oldFile,rasaFullPath,true);
}
throw new Exception(e);
}
}
}

@ -0,0 +1,7 @@
server:
port: 8081
servlet:
context-path: /
rasa:
file-path: F:\tmp

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="TRACE"/>
<!-- 开发、测试环境 -->
<springProfile name="dev,test,local">
<logger name="org.springframework.web" level="DEBUG"/>
<logger name="org.springboot.sample" level="DEBUG"/>
<logger name="com.supervision" level="DEBUG"/>
<logger name="org.springframework.scheduling" level="DEBUG"/>
</springProfile>
<!-- 生产环境 -->
<springProfile name="prod">
<logger name="org.springframework.web" level="ERROR"/>
<logger name="org.springboot.sample" level="ERROR"/>
<logger name="com.supervision" level="INFO"/>
</springProfile>
</configuration>
Loading…
Cancel
Save