data-dump/src/main/java/com/celnet/datadump/controller/FileManagerController.java

120 lines
5.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.celnet.datadump.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.celnet.datadump.entity.DataObject;
import com.celnet.datadump.entity.OrgConfig;
import com.celnet.datadump.global.Result;
import com.celnet.datadump.param.DumpFileParam;
import com.celnet.datadump.service.DataObjectService;
import com.celnet.datadump.service.FileManagerService;
import com.celnet.datadump.service.FileService;
import com.celnet.datadump.util.DataUtil;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.log.XxlJobLogger;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@Api(value = "fileManager", tags = "文件管理")
@RequestMapping("/fileManager")
@Slf4j
public class FileManagerController {
@Autowired
private FileManagerService fileManagerService;
@Autowired
private FileService fileService;
@Autowired
private DataObjectService dataObjectService;
@GetMapping("/documentPage")
@ApiOperation("document page")
public Result documentPage(@RequestParam("isDump") Integer isDump, @RequestParam("isUpload")Integer isUpload,
@RequestParam(value = "Name", required = false)String Name, @RequestParam("current")Integer page,
@RequestParam("size")Integer pageSize) {
return Result.success(fileManagerService.getDocFileList(isDump, isUpload, Name, page, pageSize));
}
@GetMapping("/attachmentPage")
@ApiOperation("attachment page")
public Result attachmentPage(@RequestParam("isDump") Integer isDump, @RequestParam("isUpload")Integer isUpload,
@RequestParam(value = "Name", required = false)String Name, @RequestParam("current")Integer page,
@RequestParam("size")Integer pageSize) {
return Result.success(fileManagerService.getAttachmentFileList(isDump, isUpload, Name, page, pageSize));
}
@GetMapping("/dumpImg")
public Result dumpImg(@RequestParam("token") String token) {
return Result.success(fileManagerService.dumpImg(token));
}
@GetMapping("/uploadImg")
public Result uploadImg(@RequestParam("token") String token) {
return Result.success(fileManagerService.uploadImg(token));
}
@PostMapping("/dumpFileLocal")
@ApiOperation("附件下载")
public ReturnT<String> dumpFileLocal(String paramStr) throws Exception {
log.info("dumpFileLocal execute start ..................");
DumpFileParam param = new DumpFileParam();
try {
if (StringUtils.isNotBlank(paramStr)) {
param = JSON.parseObject(paramStr, DumpFileParam.class);
}
} catch (Throwable throwable) {
return new ReturnT<>(500, "参数解析失败!");
}
if (StringUtils.isBlank(param.getApi())) {
return new ReturnT<>(500, "api参数缺失");
}
for (String api : DataUtil.toIdList(param.getApi())) {
DataObject dataObject = dataObjectService.getById(api);
String blobField = dataObject.getBlobField();
if (StringUtils.isBlank(blobField)) {
log.error("api:{} does not have blob field", api);
XxlJobLogger.log("api:{} does not have blob field", api);
}
fileService.dumpFile(api, blobField, param.getSingleThread());
}
return ReturnT.SUCCESS;
}
@PostMapping("/uploadFileLocal")
@ApiOperation("附件上传")
public ReturnT<String> uploadFileLocal(String paramStr) throws Exception {
log.info("uploadFileJob execute start ..................");
DumpFileParam param = new DumpFileParam();
try {
if (StringUtils.isNotBlank(paramStr)) {
param = JSON.parseObject(paramStr, DumpFileParam.class);
}
} catch (Throwable throwable) {
return new ReturnT<>(500, "参数解析失败!");
}
if (StringUtils.isBlank(param.getApi())) {
return new ReturnT<>(500, "api参数缺失");
}
for (String api : DataUtil.toIdList(param.getApi())) {
DataObject dataObject = dataObjectService.getById(api);
String blobField = dataObject.getBlobField();
if (StringUtils.isBlank(blobField)) {
log.error("api:{} does not have blob field", api);
XxlJobLogger.log("api:{} does not have blob field", api);
}
if ("Attachment".equals(api)){
fileService.uploadFileToAttachment(api, blobField, param.getSingleThread());
}else {
fileService.uploadFile(api, blobField, param.getSingleThread());
}
}
return ReturnT.SUCCESS;
}
}