zenglf
2023-08-18 a693d3897dc9739dee07e4f15dd5eeb086f4d9ab
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUploadController.java
@@ -1,21 +1,30 @@
package org.jeecg.modules.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.CommonUtils;
import org.jeecg.common.util.MinioUtil;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.oss.entity.OssFile;
import org.jeecg.modules.oss.service.IOssFileService;
import org.jeecg.common.system.base.entity.SysUpload;
import org.jeecg.modules.system.service.IUploadService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
 * minio文件上传示例
@@ -27,6 +36,9 @@
public class SysUploadController {
    @Autowired
    private IOssFileService ossFileService;
    @Autowired
    private IUploadService uploadService;
    /**
     * 上传
@@ -65,4 +77,53 @@
        result.setSuccess(true);
        return result;
    }
    @GetMapping(value = "/list")
    public Result<?> list(SysUpload upload, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                          @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
        QueryWrapper<SysUpload> queryWrapper = QueryGenerator.initQueryWrapper(upload, req.getParameterMap());
        Page<SysUpload> page = new Page<SysUpload>(pageNo, pageSize);
        IPage<SysUpload> pageList = uploadService.page(page, queryWrapper);
        return Result.ok(pageList);
    }
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
        uploadService.removeById(id);
        return Result.ok("删除成功!");
    }
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
        uploadService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.ok("批量删除成功!");
    }
    @PostMapping("/batchUploadFile")
    public Result<?> batchUploadFile(HttpServletRequest request)  {
        // 创建一个通用的多部分解析器
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
        // 判断 request 是否有文件上传,即多部分请求
        if (multipartResolver.isMultipart(request)) {
            // 转换成多部分request
            MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
            List<MultipartFile> files = multiRequest.getFiles("files[]");
            String type = multiRequest.getParameter("type");
            String description = multiRequest.getParameter("description");
            try {
                List<SysUpload> sysUploads = uploadService.batchUploadFile(type, files, description);
                return Result.ok(sysUploads);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
        return Result.error("操作失败");
    }
    @GetMapping("/downloadFile")
    public void downloadFile(@RequestParam("id") String id, HttpServletResponse response) {
        uploadService.downloadFile(response, uploadService.getById(id));
    }
}