SysOssController.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.ruoyi.system.controller;
  2. import com.ruoyi.common.annotation.Log;
  3. import com.ruoyi.common.annotation.RepeatSubmit;
  4. import com.ruoyi.common.core.controller.BaseController;
  5. import com.ruoyi.common.core.domain.AjaxResult;
  6. import com.ruoyi.common.core.page.TableDataInfo;
  7. import com.ruoyi.common.enums.BusinessType;
  8. import com.ruoyi.common.exception.CustomException;
  9. import com.ruoyi.system.bo.SysOssQueryBo;
  10. import com.ruoyi.system.domain.SysOss;
  11. import com.ruoyi.system.service.ISysOssService;
  12. import com.ruoyi.system.vo.SysOssVo;
  13. import io.swagger.annotations.Api;
  14. import io.swagger.annotations.ApiImplicitParam;
  15. import io.swagger.annotations.ApiImplicitParams;
  16. import io.swagger.annotations.ApiOperation;
  17. import lombok.RequiredArgsConstructor;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.security.access.prepost.PreAuthorize;
  20. import org.springframework.validation.annotation.Validated;
  21. import org.springframework.web.bind.annotation.*;
  22. import org.springframework.web.multipart.MultipartFile;
  23. import javax.validation.constraints.NotEmpty;
  24. import java.util.Arrays;
  25. import java.util.HashMap;
  26. import java.util.Map;
  27. /**
  28. * 文件上传 控制层
  29. *
  30. * @author Lion Li
  31. */
  32. @Validated
  33. @Api(value = "OSS云存储控制器", tags = {"OSS云存储管理"})
  34. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  35. @RestController
  36. @RequestMapping("/system/oss")
  37. public class SysOssController extends BaseController {
  38. private final ISysOssService iSysOssService;
  39. /**
  40. * 查询OSS云存储列表
  41. */
  42. @ApiOperation("查询OSS云存储列表")
  43. @PreAuthorize("@ss.hasPermi('system:oss:list')")
  44. @GetMapping("/list")
  45. public TableDataInfo<SysOssVo> list(@Validated SysOssQueryBo bo) {
  46. return iSysOssService.queryPageList(bo);
  47. }
  48. /**
  49. * 上传OSS云存储
  50. */
  51. @ApiOperation("上传OSS云存储")
  52. @ApiImplicitParams({
  53. @ApiImplicitParam(name = "file", value = "文件", dataType = "java.io.File", required = true),
  54. })
  55. @PreAuthorize("@ss.hasPermi('system:oss:upload')")
  56. @Log(title = "OSS云存储", businessType = BusinessType.INSERT)
  57. @RepeatSubmit
  58. @PostMapping("/upload")
  59. public AjaxResult<Map<String, String>> upload(@RequestPart("file") MultipartFile file) {
  60. if (file.isEmpty()) {
  61. throw new CustomException("上传文件不能为空");
  62. }
  63. SysOss oss = iSysOssService.upload(file);
  64. Map<String, String> map = new HashMap<>(2);
  65. map.put("url", oss.getUrl());
  66. map.put("fileName", oss.getFileName());
  67. return AjaxResult.success(map);
  68. }
  69. /**
  70. * 删除OSS云存储
  71. */
  72. @ApiOperation("删除OSS云存储")
  73. @PreAuthorize("@ss.hasPermi('system:oss:remove')")
  74. @Log(title = "OSS云存储" , businessType = BusinessType.DELETE)
  75. @DeleteMapping("/{ossIds}")
  76. public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
  77. @PathVariable Long[] ossIds) {
  78. return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true) ? 1 : 0);
  79. }
  80. }