package com.doc.biz.controller; import com.doc.biz.domain.DocInfo; import com.doc.biz.service.IDocInfoService; import com.doc.biz.service.IMongoService; import com.doc.biz.vo.DocumentVO; import com.doc.common.annotation.Log; import com.doc.common.core.controller.BaseController; import com.doc.common.core.domain.AjaxResult; import com.doc.common.core.page.TableDataInfo; import com.doc.common.enums.BusinessType; import com.doc.common.utils.SecurityUtils; import com.doc.common.utils.poi.ExcelUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 文件基本信息表Controller * * @author wukai * @date 2023-08-15 */ @Api(tags = "文件基本信息表") @RestController @RequestMapping("/biz/info") @Slf4j public class DocInfoController extends BaseController { @Resource private IDocInfoService docInfoService; @Resource private IMongoService mongoService; /** * 文件上传 * * @param file * @return */ @ApiOperation("上传文件") @PostMapping("/upload") public AjaxResult uploadFile(@ApiParam(value = "文件", required = true) @RequestPart(value = "file") MultipartFile file, @ApiParam(value = "空间ID", required = true) @RequestParam Long spaceId, @ApiParam(value = "目录ID", required = true) @RequestParam Long dirId) { try { DocumentVO vo = mongoService.uploadFile(file); DocInfo docInfo = new DocInfo(); docInfo.setSpaceId(spaceId); docInfo.setDirId(dirId); docInfo.setFileId(vo.getFileId()); docInfo.setFileName(vo.getFileName()); docInfo.setFileSize(vo.getFileSize()); docInfo.setFileType(vo.getSuffix()); docInfo.setCreateBy(SecurityUtils.getUsername()); return toAjax(docInfoService.insertDocInfo(docInfo)); } catch (Exception e) { log.error("文件上传失败:", e); return error(e.getMessage()); } } /** * 多文件上传 * * @param files * @return */ @PostMapping("/uploadFiles") public AjaxResult uploadFile(@RequestParam(value = "files") List files) { try { return success(mongoService.uploadFiles(files)); } catch (Exception e) { return error(e.getMessage()); } } /** * 查询文件基本信息表列表 */ @ApiOperation("查询文件基本信息表列表") //@PreAuthorize("@ss.hasPermi('biz:info:list')") @GetMapping("/list") public TableDataInfo list(DocInfo docInfo) { startPage(); List list = docInfoService.selectDocInfoList(docInfo); return getDataTable(list); } /** * 导出文件基本信息表列表 */ @ApiOperation("导出文件基本信息表列表") //@PreAuthorize("@ss.hasPermi('biz:info:export')") @Log(title = "文件基本信息表", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, DocInfo docInfo) { List list = docInfoService.selectDocInfoList(docInfo); ExcelUtil util = new ExcelUtil(DocInfo.class); util.exportExcel(response, list, "文件基本信息表数据"); } /** * 获取文件基本信息表详细信息 */ @ApiOperation("获取文件基本信息表详细信息") //@PreAuthorize("@ss.hasPermi('biz:info:query')") @GetMapping(value = "/{docId}") public AjaxResult getInfo(@PathVariable("docId") Long docId) { return success(docInfoService.selectDocInfoByDocId(docId)); } /** * 新增文件基本信息表 */ @ApiOperation("新增文件基本信息表") //@PreAuthorize("@ss.hasPermi('biz:info:add')") @Log(title = "文件基本信息表", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody DocInfo docInfo) { return toAjax(docInfoService.insertDocInfo(docInfo)); } /** * 修改文件基本信息表 */ @ApiOperation("修改文件基本信息表") //@PreAuthorize("@ss.hasPermi('biz:info:edit')") @Log(title = "文件基本信息表", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody DocInfo docInfo) { docInfo.setUpdateBy(SecurityUtils.getUsername()); return toAjax(docInfoService.updateDocInfo(docInfo)); } /** * 删除文件基本信息表 */ @ApiOperation("删除文件基本信息表") //@PreAuthorize("@ss.hasPermi('biz:info:remove')") @Log(title = "文件基本信息表", businessType = BusinessType.DELETE) @DeleteMapping("/{docIds}") public AjaxResult remove(@PathVariable Long[] docIds) { for (Long docId : docIds) { DocInfo info = docInfoService.selectDocInfoByDocId(docId); mongoService.removeFile(info.getFileId()); } return toAjax(docInfoService.deleteDocInfoByDocIds(docIds)); } }