liusheng
21 小时以前 e4e220916dd2a4aa649a9b0162e5b5ed0dc9d7e5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
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));
    }
 
}