案例管理

This commit is contained in:
xiezhijun
2021-03-05 20:15:05 +08:00
parent a15e90171b
commit b4d5eabf32
16 changed files with 1147 additions and 49 deletions

View File

@ -20,8 +20,8 @@ public class MyApplicationRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("项目启动调用方法");
/* System.out.println("项目启动调用方法");
String path = AliyunOSSUtils.uploadFileInputSteam(AliyunOSSConfig.casePrefix,"ceshi.png",new File("D:\\ceshi.png"));
System.out.println(path);
System.out.println(path);*/
}
}

View File

@ -1,16 +1,30 @@
package com.stdiet.web.controller.custom;
import java.io.InputStream;
import java.net.URLEncoder;
import java.util.List;
import com.stdiet.common.config.AliyunOSSConfig;
import com.stdiet.common.config.RuoYiConfig;
import com.stdiet.common.constant.Constants;
import com.stdiet.common.exception.file.FileNameLengthLimitExceededException;
import com.stdiet.common.utils.StringUtils;
import com.stdiet.common.utils.file.FileUploadUtils;
import com.stdiet.common.utils.file.FileUtils;
import com.stdiet.common.utils.file.MimeTypeUtils;
import com.stdiet.common.utils.oss.AliyunOSSUtils;
import com.stdiet.custom.domain.SysCustomerCaseFile;
import com.stdiet.custom.dto.request.FileRequest;
import com.sun.deploy.net.HttpResponse;
import io.swagger.models.auth.In;
import org.aspectj.weaver.loadtime.Aj;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.http.StreamingHttpOutputMessage;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.stdiet.common.annotation.Log;
import com.stdiet.common.core.controller.BaseController;
import com.stdiet.common.core.domain.AjaxResult;
@ -19,6 +33,10 @@ import com.stdiet.custom.domain.SysCustomerCase;
import com.stdiet.custom.service.ISysCustomerCaseService;
import com.stdiet.common.utils.poi.ExcelUtil;
import com.stdiet.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 客户案例管理Controller
@ -100,4 +118,80 @@ public class SysCustomerCaseController extends BaseController
{
return toAjax(sysCustomerCaseService.deleteSysCustomerCaseByIds(ids));
}
/**
* 查询客户案例文件列表
*/
@GetMapping("/getFileListByCaseId")
@PreAuthorize("@ss.hasPermi('custom:customerCase:list')")
public TableDataInfo getFileListByCaseId(@RequestParam("caseId")Long caseId)
{
List<SysCustomerCaseFile> list = sysCustomerCaseService.getFileListByCaseId(caseId);
return getDataTable(list);
}
/**
* 上传文件到OSS返回URL
*/
@PostMapping("/uploadCaseFile")
@PreAuthorize("@ss.hasPermi('custom:customerCase:list')")
public AjaxResult uploadCseFile(MultipartFile file) throws Exception {
try {
if(file == null){
return AjaxResult.error("文件不存在");
}
int fileNameLength = file.getOriginalFilename().length();
if (fileNameLength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH)
{
throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);
}
FileUploadUtils.assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
String fileUrl = AliyunOSSUtils.uploadFileInputSteam(AliyunOSSConfig.casePrefix, file.getOriginalFilename(), file);
AjaxResult ajax = null;
if(StringUtils.isNotEmpty(fileUrl)){
ajax = AjaxResult.success();
ajax.put("fileUrl", fileUrl);
ajax.put("fileName", file.getOriginalFilename());
}else{
ajax = AjaxResult.error("文件上传失败");
}
return ajax;
} catch (Exception e) {
return AjaxResult.error("文件上传失败");
}
}
/**
* 下载案例文件
* @param
* @return
*/
@PostMapping("/downCaseFile")
@PreAuthorize("@ss.hasPermi('custom:customerCase:list')")
public void downCaseFile(@RequestBody FileRequest fileRequest, HttpServletRequest request, HttpServletResponse response) {
/*try{
InputStream fileStream = AliyunOSSUtils.downloadFile(fileRequest.getFileUrl());
byte[] body = new byte[fileStream.available()];
fileStream.read(body);
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Disposition", "attchement;filename=" + fileRequest.getFileName());
HttpStatus statusCode = HttpStatus.OK;
ResponseEntity<byte[]> entity = new ResponseEntity<byte[]>(body, headers, statusCode);
return entity;
}catch (Exception e) {
e.printStackTrace();
}
return null;*/
try {
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition",
"attachment;fileName=" + FileUtils.setFileDownloadHeader(request, fileRequest.getFileName()));
FileUtils.writeBytes(AliyunOSSUtils.downloadFile(fileRequest.getFileUrl()), response.getOutputStream());
}catch (Exception e){
e.printStackTrace();
}
}
}