| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- package com.goldenwater.web.controller.efinder;
- import com.goldenwater.slgc.entity.efinder.DocFile;
- import com.goldenwater.slgc.service.efinder.IDocFileService;
- import com.goldenwater.common.core.controller.BaseController;
- import com.goldenwater.common.core.domain.AjaxResult;
- import com.goldenwater.common.core.page.TableDataInfo;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import com.goldenwater.common.annotation.Log;
- import com.goldenwater.common.enums.BusinessType;
- import org.springframework.validation.annotation.Validated;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.Parameter;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import jakarta.servlet.http.HttpServletResponse;
- import java.util.List;
- import java.util.Map;
- @Tag(name = "01.02 文件管理-文件", description = "文件管理相关接口")
- @RestController
- @Validated
- @RequestMapping("/efinder/file")
- public class DocFileController extends BaseController {
- @Autowired
- private IDocFileService docFileService;
- /**
- * 查询文件列表
- */
- @Operation(summary = "查询文件列表")
- @GetMapping("/list")
- public TableDataInfo list(@Parameter(description = "文件查询条件") DocFile docFile) {
- startPage();
- List<DocFile> list = docFileService.selectList(docFile);
- return getDataTable(list);
- }
- /**
- * 获取文件详细信息
- */
- @Operation(summary = "获取文件详细信息")
- @GetMapping("/{id}")
- public AjaxResult getInfo(@Parameter(description = "文件ID") @PathVariable Long id) {
- return success(docFileService.selectById(id));
- }
- /**
- * 下载文件
- */
- @Operation(summary = "下载文件")
- @GetMapping("/download/{id}")
- public void download(@Parameter(description = "文件ID") @PathVariable Long id, HttpServletResponse response) {
- docFileService.download(id, response);
- }
- /**
- * 预览文件
- */
- @Operation(summary = "预览文件")
- @GetMapping("/preview/{id}")
- public void preview(@Parameter(description = "文件ID") @PathVariable Long id, HttpServletResponse response) {
- docFileService.download(id, response);
- }
- /**
- * 新增文件
- */
- @Operation(summary = "新增文件")
- @Log(title = "文件管理", businessType = BusinessType.INSERT)
- @PostMapping
- public AjaxResult add(@Parameter(description = "文件信息") @RequestBody DocFile docFile) {
- return toAjax(docFileService.insert(docFile));
- }
- /**
- * 上传文件
- */
- @Operation(summary = "上传文件")
- @PostMapping("/upload")
- public AjaxResult upload(@Parameter(description = "上传的文件") @RequestParam("file") org.springframework.web.multipart.MultipartFile file,
- @Parameter(description = "父级文件夹ID") @RequestParam(required = false) Long pid) {
- return success(docFileService.upload(file, pid));
- }
- /**
- * 修改文件
- */
- @Operation(summary = "修改文件")
- @Log(title = "文件管理", businessType = BusinessType.UPDATE)
- @PutMapping
- public AjaxResult edit(@Parameter(description = "文件信息") @RequestBody DocFile docFile) {
- return toAjax(docFileService.update(docFile));
- }
- /**
- * 重命名文件
- */
- @Operation(summary = "重命名文件")
- @Log(title = "文件管理", businessType = BusinessType.UPDATE)
- @PutMapping("/rename")
- public AjaxResult rename(@Parameter(description = "文件信息") @RequestBody DocFile docFile) {
- return toAjax(docFileService.update(docFile));
- }
- /**
- * 移动文件
- */
- @Operation(summary = "移动文件")
- @Log(title = "文件管理", businessType = BusinessType.UPDATE)
- @PutMapping("/move")
- public AjaxResult move(@Parameter(description = "文件信息") @RequestBody DocFile docFile) {
- return toAjax(docFileService.update(docFile));
- }
- /**
- * 删除文件
- */
- @Operation(summary = "删除文件")
- @Log(title = "文件管理", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public AjaxResult remove(@Parameter(description = "文件ID数组") @PathVariable Long[] ids) {
- return toAjax(docFileService.deleteByIds(ids));
- }
- /**
- * 查看文本文件内容
- */
- @Operation(summary = "查看文本文件内容")
- @GetMapping("/txt/view")
- public AjaxResult txtView(@Parameter(description = "文件ID") @RequestParam Long id,
- @Parameter(description = "字符编码") @RequestParam(required = false, defaultValue = "UTF-8") String charset) {
- return success(docFileService.readTextContent(id, charset));
- }
- /**
- * 获取ZIP文件条目列表
- */
- @Operation(summary = "获取ZIP文件条目列表")
- @GetMapping("/zip/itemlist")
- public AjaxResult zipItemList(@Parameter(description = "文件ID") @RequestParam Long id) {
- return success(docFileService.listZipEntries(id));
- }
- /**
- * 下载ZIP文件中的单个文件
- */
- @Operation(summary = "下载ZIP文件中的单个文件")
- @GetMapping("/zip/download")
- public void zipDownload(@Parameter(description = "文件ID") @RequestParam Long id,
- @Parameter(description = "ZIP内条目路径") @RequestParam String entryPath,
- HttpServletResponse response) {
- docFileService.downloadZipEntry(id, entryPath, response);
- }
- /**
- * 流式播放媒体文件
- */
- @Operation(summary = "流式播放媒体文件")
- @GetMapping("/media/{id}")
- public void media(@Parameter(description = "文件ID") @PathVariable Long id, HttpServletResponse response) {
- docFileService.streamMedia(id, response);
- }
- }
|