120 lines
5.0 KiB
Java
120 lines
5.0 KiB
Java
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;
|
||
}
|
||
}
|