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 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 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; } }