package com.dji.sample.media.controller;
|
|
import com.dji.sample.common.model.CustomClaim;
|
import com.dji.sample.common.model.PaginationData;
|
import com.dji.sample.common.model.ResponseResult;
|
import com.dji.sample.media.model.FileUploadDTO;
|
import com.dji.sample.media.model.MediaFileDTO;
|
import com.dji.sample.media.model.MediaFileEntity;
|
import com.dji.sample.media.model.MediaFileQueryParam;
|
import com.dji.sample.media.service.IFileService;
|
import com.drew.imaging.ImageProcessingException;
|
import org.apache.ibatis.annotations.Update;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.awt.*;
|
import java.io.IOException;
|
import java.net.URL;
|
import java.util.List;
|
|
import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM;
|
|
/**
|
* @author sean
|
* @version 0.2
|
* @date 2021/12/9
|
*/
|
@RestController
|
@RequestMapping("${url.media.prefix}${url.media.version}/files")
|
public class FileController {
|
|
@Autowired
|
private IFileService fileService;
|
|
/**
|
* Get information about all the media files in this workspace based on the workspace id.
|
* 根据工作空间id获取有关此工作空间中所有媒体文件的信息。
|
*
|
* @param workspaceId
|
* @return
|
*/
|
@GetMapping("/{workspace_id}/files")
|
public ResponseResult<PaginationData<MediaFileEntity>> getFilesList(@RequestParam(defaultValue = "1") Long page,
|
@RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
|
@PathVariable(name = "workspace_id") String workspaceId,
|
MediaFileQueryParam mediaFileQueryParam) {
|
PaginationData<MediaFileEntity> filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize, mediaFileQueryParam);
|
return ResponseResult.success(filesList);
|
}
|
|
@GetMapping("/{workspace_id}/listAdded")
|
public ResponseResult listIsadd(@RequestParam String dkbh,
|
@PathVariable(name = "workspace_id") String workspaceId) {
|
List<MediaFileEntity> entityList = fileService.listByIsadd(dkbh, workspaceId);
|
return ResponseResult.success(entityList);
|
}
|
|
@PutMapping("/examine")
|
public ResponseResult examineData(@RequestParam String fileId) {
|
return fileService.updateExamByFileId(fileId);
|
}
|
|
@GetMapping("/getMediaInfo")
|
public ResponseResult mediaInfo(@RequestParam String fileName) {
|
return ResponseResult.success(fileService.mediaInfo(fileName));
|
}
|
|
@GetMapping("/{workspace_id}/files/{job_id}")
|
public ResponseResult findFilesList(@PathVariable(name = "workspace_id") String workspaceId, @PathVariable(name = "job_id") String jobId) {
|
return ResponseResult.success(fileService.listMediaFileEntity(workspaceId, jobId));
|
}
|
|
@GetMapping("dataShow/{workspace_id}")
|
public ResponseResult getMeidaData(@PathVariable(name = "workspace_id") String workspaceId,
|
@RequestParam Integer page,
|
@RequestParam(name = "page_size", defaultValue = "10") Integer pageSize,
|
@RequestParam(name = "photoStart", required = false) Long updateStart,
|
@RequestParam(name = "photoEnd", required = false) Long updateEnd,
|
@RequestParam(name = "updateStart", required = false) Long photoStart,
|
@RequestParam(name = "updateEnd", required = false) Long photoEnd,
|
@RequestParam(name = "jobName", required = false) String jobName) {
|
|
return ResponseResult.success(fileService.MediaQuery(page, pageSize, updateStart, updateEnd, photoStart, photoEnd, jobName,workspaceId));
|
|
}
|
|
@PostMapping("/{workspace_id}/updateFile")
|
public ResponseResult updateFile(HttpServletRequest request, @PathVariable(name = "workspace_id") String workspaceId, @RequestBody MediaFileEntity mediaFileEntity) {
|
CustomClaim claims = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
|
mediaFileEntity.setUserId(claims.getId());
|
return ResponseResult.success(fileService.updateMediaFile(workspaceId, mediaFileEntity));
|
}
|
|
@DeleteMapping("/{workspace_id}/deleteFile")
|
public ResponseResult deleteFile(@PathVariable(name = "workspace_id") String workspaceId, @RequestParam String fileId) {
|
//根据fileId删除图片
|
int count = fileService.deleteMedia(workspaceId, fileId);
|
if (count == 0) {
|
return ResponseResult.error("删除失败");
|
}
|
return ResponseResult.success();
|
}
|
|
|
/**
|
* Query the download address of the file according to the media file id,
|
* and redirect to this address directly for download.
|
*
|
* @param workspaceId
|
* @param fileId
|
* @param response
|
*/
|
@GetMapping("/{workspace_id}/file/{file_id}/url")
|
public void getFileUrl(@PathVariable(name = "workspace_id") String workspaceId,
|
@PathVariable(name = "file_id") String fileId, HttpServletResponse response) {
|
|
try {
|
URL url = fileService.getObjectUrl(workspaceId, fileId);
|
response.sendRedirect(url.toString());
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|