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<MinioFile> 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<MinioFile> list = minioFileService.selectMinioFileList(minioFile); 
 | 
        ExcelUtil<MinioFile> util = new ExcelUtil<MinioFile>(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<MultipartFile> 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)); 
 | 
    } 
 | 
  
 | 
} 
 |