package com.ruoyi.web.controller.smartor; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.MinioFile; import com.smartor.service.IMinioFileService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 【请填写功能名称】Controller * * @author ruoyi * @date 2023-06-19 */ @Api(description = "文件管理(文档、图片...)") @RestController @RequestMapping("/system/file") public class MinioFileController extends BaseController { @Autowired private IMinioFileService minioFileService; /** * 查询【请填写功能名称】列表 */ //@PreAuthorize("@ss.hasPermi('system:file:list')") @PostMapping("/list") public TableDataInfo list(@RequestBody MinioFile minioFile) { startPage(); List list = minioFileService.selectMinioFileList(minioFile); return getDataTable(list); } /** * 导出【请填写功能名称】列表 */ //@PreAuthorize("@ss.hasPermi('system:file:export')") @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, MinioFile minioFile) { List list = minioFileService.selectMinioFileList(minioFile); ExcelUtil util = new ExcelUtil(MinioFile.class); util.exportExcel(response, list, "【请填写功能名称】数据"); } /** * 获取【请填写功能名称】详细信息 */ //@PreAuthorize("@ss.hasPermi('system:file:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(minioFileService.selectMinioFileById(id)); } /** * 新增【请填写功能名称】 */ //@PreAuthorize("@ss.hasPermi('system:file:add')") @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody MinioFile minioFile) { return toAjax(minioFileService.insertMinioFile(minioFile)); } /** * 修改【请填写功能名称】 */ //@PreAuthorize("@ss.hasPermi('system:file:edit')") @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) @PostMapping("/edit") public AjaxResult edit(@RequestBody MinioFile minioFile) { return toAjax(minioFileService.updateMinioFile(minioFile)); } /** * 删除【请填写功能名称】 */ //@PreAuthorize("@ss.hasPermi('system:file:remove')") @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) @GetMapping("/remove/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(minioFileService.deleteMinioFileByIds(ids)); } /** * 上传文件到文件管理,支持批量上传 * * @param files * @return */ @PostMapping(value = {"/admin/uploadFile"}) @ResponseBody @ApiOperation(value = "上传文件到文件管理,支持批量上传") @ApiImplicitParam(name = "files", value = "文件对象", dataType = "File") public AjaxResult commonUploadFile(@RequestParam(value = "path",required = false) String path, @RequestParam("files") List files) { if (CollectionUtils.isEmpty(files)) { return error("未选择文件!"); } return success(minioFileService.commonUploadFile(path, files)); } /** * 获取(宣教)引用模板 */ //@PreAuthorize("@ss.hasPermi('system:file:list')") @ApiOperation(value = "获取(宣教)引用模板") @GetMapping("/getEduTemplage") public AjaxResult getEduTemplage() { // startPage(); return success(minioFileService.getEduTemplage()); } /** * 下载文件,以流的形式返回 * * @return */ @ApiOperation(value = "下载文件,以输出流的形式返回, 入参的fileName为全路径文件名") @GetMapping("/downloadFile") public void downloadFile(HttpServletResponse response, @RequestParam("fileName") String fileName) { minioFileService.downloadFile(response, fileName); } /** * 获取图片、音频、视频 的URL * * @return */ @ApiOperation(value = "获取图片、音频、视频 的URL, 入参的fileName为全路径文件名,expires为链接过期时间") @GetMapping("/getFileUrl") public AjaxResult getFileUrl(@RequestParam("fileName") String fileName, @RequestParam("expires") Integer expires) { return success(minioFileService.getFileUrl(fileName, expires)); } }