DocInfoController.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.doc.biz.controller;
  2. import com.doc.biz.domain.DocInfo;
  3. import com.doc.biz.service.IDocInfoService;
  4. import com.doc.biz.service.IMongoService;
  5. import com.doc.biz.vo.DocumentVO;
  6. import com.doc.common.annotation.Log;
  7. import com.doc.common.core.controller.BaseController;
  8. import com.doc.common.core.domain.AjaxResult;
  9. import com.doc.common.core.page.TableDataInfo;
  10. import com.doc.common.enums.BusinessType;
  11. import com.doc.common.utils.SecurityUtils;
  12. import com.doc.common.utils.poi.ExcelUtil;
  13. import io.swagger.annotations.Api;
  14. import io.swagger.annotations.ApiOperation;
  15. import io.swagger.annotations.ApiParam;
  16. import lombok.extern.slf4j.Slf4j;
  17. import org.springframework.web.bind.annotation.*;
  18. import org.springframework.web.multipart.MultipartFile;
  19. import javax.annotation.Resource;
  20. import javax.servlet.http.HttpServletResponse;
  21. import java.util.List;
  22. /**
  23. * 文件基本信息表Controller
  24. *
  25. * @author wukai
  26. * @date 2023-08-15
  27. */
  28. @Api(tags = "文件基本信息表")
  29. @RestController
  30. @RequestMapping("/biz/info")
  31. @Slf4j
  32. public class DocInfoController extends BaseController {
  33. @Resource
  34. private IDocInfoService docInfoService;
  35. @Resource
  36. private IMongoService mongoService;
  37. /**
  38. * 文件上传
  39. *
  40. * @param file
  41. * @return
  42. */
  43. @ApiOperation("上传文件")
  44. @PostMapping("/upload")
  45. public AjaxResult uploadFile(@ApiParam(value = "文件", required = true) @RequestPart(value = "file") MultipartFile file,
  46. @ApiParam(value = "空间ID", required = true) @RequestParam Long spaceId,
  47. @ApiParam(value = "目录ID", required = true) @RequestParam Long dirId) {
  48. try {
  49. DocumentVO vo = mongoService.uploadFile(file);
  50. DocInfo docInfo = new DocInfo();
  51. docInfo.setSpaceId(spaceId);
  52. docInfo.setDirId(dirId);
  53. docInfo.setFileId(vo.getFileId());
  54. docInfo.setFileName(vo.getFileName());
  55. docInfo.setFileSize(vo.getFileSize());
  56. docInfo.setFileType(vo.getSuffix());
  57. docInfo.setCreateBy(SecurityUtils.getUsername());
  58. return toAjax(docInfoService.insertDocInfo(docInfo));
  59. } catch (Exception e) {
  60. log.error("文件上传失败:", e);
  61. return error(e.getMessage());
  62. }
  63. }
  64. /**
  65. * 多文件上传
  66. *
  67. * @param files
  68. * @return
  69. */
  70. @PostMapping("/uploadFiles")
  71. public AjaxResult uploadFile(@RequestParam(value = "files") List<MultipartFile> files) {
  72. try {
  73. return success(mongoService.uploadFiles(files));
  74. } catch (Exception e) {
  75. return error(e.getMessage());
  76. }
  77. }
  78. /**
  79. * 查询文件基本信息表列表
  80. */
  81. @ApiOperation("查询文件基本信息表列表")
  82. //@PreAuthorize("@ss.hasPermi('biz:info:list')")
  83. @GetMapping("/list")
  84. public TableDataInfo list(DocInfo docInfo) {
  85. startPage();
  86. List<DocInfo> list = docInfoService.selectDocInfoList(docInfo);
  87. return getDataTable(list);
  88. }
  89. /**
  90. * 导出文件基本信息表列表
  91. */
  92. @ApiOperation("导出文件基本信息表列表")
  93. //@PreAuthorize("@ss.hasPermi('biz:info:export')")
  94. @Log(title = "文件基本信息表", businessType = BusinessType.EXPORT)
  95. @PostMapping("/export")
  96. public void export(HttpServletResponse response, DocInfo docInfo) {
  97. List<DocInfo> list = docInfoService.selectDocInfoList(docInfo);
  98. ExcelUtil<DocInfo> util = new ExcelUtil<DocInfo>(DocInfo.class);
  99. util.exportExcel(response, list, "文件基本信息表数据");
  100. }
  101. /**
  102. * 获取文件基本信息表详细信息
  103. */
  104. @ApiOperation("获取文件基本信息表详细信息")
  105. //@PreAuthorize("@ss.hasPermi('biz:info:query')")
  106. @GetMapping(value = "/{docId}")
  107. public AjaxResult getInfo(@PathVariable("docId") Long docId) {
  108. return success(docInfoService.selectDocInfoByDocId(docId));
  109. }
  110. /**
  111. * 新增文件基本信息表
  112. */
  113. @ApiOperation("新增文件基本信息表")
  114. //@PreAuthorize("@ss.hasPermi('biz:info:add')")
  115. @Log(title = "文件基本信息表", businessType = BusinessType.INSERT)
  116. @PostMapping
  117. public AjaxResult add(@RequestBody DocInfo docInfo) {
  118. return toAjax(docInfoService.insertDocInfo(docInfo));
  119. }
  120. /**
  121. * 修改文件基本信息表
  122. */
  123. @ApiOperation("修改文件基本信息表")
  124. //@PreAuthorize("@ss.hasPermi('biz:info:edit')")
  125. @Log(title = "文件基本信息表", businessType = BusinessType.UPDATE)
  126. @PutMapping
  127. public AjaxResult edit(@RequestBody DocInfo docInfo) {
  128. docInfo.setUpdateBy(SecurityUtils.getUsername());
  129. return toAjax(docInfoService.updateDocInfo(docInfo));
  130. }
  131. /**
  132. * 删除文件基本信息表
  133. */
  134. @ApiOperation("删除文件基本信息表")
  135. //@PreAuthorize("@ss.hasPermi('biz:info:remove')")
  136. @Log(title = "文件基本信息表", businessType = BusinessType.DELETE)
  137. @DeleteMapping("/{docIds}")
  138. public AjaxResult remove(@PathVariable Long[] docIds) {
  139. for (Long docId : docIds) {
  140. DocInfo info = docInfoService.selectDocInfoByDocId(docId);
  141. mongoService.removeFile(info.getFileId());
  142. }
  143. return toAjax(docInfoService.deleteDocInfoByDocIds(docIds));
  144. }
  145. }