SysOssController.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package com.platform.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.platform.annotation.SysLog;
  4. import com.platform.entity.SysOssEntity;
  5. import com.platform.oss.CloudStorageConfig;
  6. import com.platform.oss.OSSFactory;
  7. import com.platform.service.SysConfigService;
  8. import com.platform.service.SysOssService;
  9. import com.platform.utils.Constant;
  10. import com.platform.utils.PageUtilsPlus;
  11. import com.platform.utils.R;
  12. import com.platform.utils.RRException;
  13. import com.platform.validator.ValidatorUtils;
  14. import com.platform.validator.group.*;
  15. import org.apache.shiro.authz.annotation.RequiresPermissions;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.RequestBody;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RequestParam;
  20. import org.springframework.web.bind.annotation.RestController;
  21. import org.springframework.web.multipart.MultipartFile;
  22. import java.util.Arrays;
  23. import java.util.Date;
  24. import java.util.Map;
  25. /**
  26. * 文件上传Controller
  27. *
  28. * @author lipengjun
  29. * @email 939961241@qq.com
  30. * @gitee https://gitee.com/fuyang_lipengjun/platform
  31. * @date 2017-03-25 12:13:26
  32. */
  33. @RestController
  34. @RequestMapping("sys/oss")
  35. public class SysOssController {
  36. @Autowired
  37. private SysOssService sysOssService;
  38. @Autowired
  39. private SysConfigService sysConfigService;
  40. private final static String KEY = Constant.CLOUD_STORAGE_CONFIG_KEY;
  41. /**
  42. * 列表
  43. *
  44. * @param params 请求参数
  45. * @return R
  46. */
  47. @RequestMapping("/list")
  48. @RequiresPermissions("sys:oss:all")
  49. public R list(@RequestParam Map<String, Object> params) {
  50. //查询列表数据
  51. PageUtilsPlus pageUtil = sysOssService.queryPage(params);
  52. return R.ok().put("page", pageUtil);
  53. }
  54. /**
  55. * 获取云存储配置信息
  56. *
  57. * @return R
  58. */
  59. @RequestMapping("/config")
  60. @RequiresPermissions("sys:oss:all")
  61. public R config() {
  62. CloudStorageConfig config = sysConfigService.getConfigObject(KEY, CloudStorageConfig.class);
  63. return R.ok().put("config", config);
  64. }
  65. /**
  66. * 保存云存储配置信息
  67. *
  68. * @param config 配置信息
  69. * @return R
  70. */
  71. @SysLog("保存云存储配置信息")
  72. @RequestMapping("/saveConfig")
  73. @RequiresPermissions("sys:oss:all")
  74. public R saveConfig(@RequestBody CloudStorageConfig config) {
  75. //校验类型
  76. ValidatorUtils.validateEntity(config);
  77. if (config.getType() == Constant.CloudService.QINIU.getValue()) {
  78. //校验七牛数据
  79. ValidatorUtils.validateEntity(config, QiniuGroup.class);
  80. } else if (config.getType() == Constant.CloudService.ALIYUN.getValue()) {
  81. //校验阿里云数据
  82. ValidatorUtils.validateEntity(config, AliyunGroup.class);
  83. } else if (config.getType() == Constant.CloudService.QCLOUD.getValue()) {
  84. //校验腾讯云数据
  85. ValidatorUtils.validateEntity(config, QcloudGroup.class);
  86. } else if (config.getType() == Constant.CloudService.DISCK.getValue()) {
  87. //校验腾讯云数据
  88. ValidatorUtils.validateEntity(config, DiskGroup.class);
  89. }else if (config.getType() == Constant.CloudService.MINIO.getValue()) {
  90. //校验MINIO数据
  91. ValidatorUtils.validateEntity(config, MinioGroup.class);
  92. }
  93. sysConfigService.updateValueByKey(KEY, JSON.toJSONString(config));
  94. return R.ok();
  95. }
  96. /**
  97. * 上传文件
  98. *
  99. * @param file 文件
  100. * @return R
  101. * @throws Exception 异常
  102. */
  103. @RequestMapping("/upload")
  104. public R upload(@RequestParam("file") MultipartFile file) throws Exception {
  105. if (file.isEmpty()) {
  106. throw new RRException("上传文件不能为空");
  107. }
  108. //上传文件
  109. String url = OSSFactory.build().upload(file);
  110. //保存文件信息
  111. SysOssEntity ossEntity = new SysOssEntity();
  112. ossEntity.setUrl(url);
  113. ossEntity.setCreateDate(new Date());
  114. sysOssService.save(ossEntity);
  115. R r = new R();
  116. r.put("url", url);
  117. r.put("link", url);
  118. return r;
  119. }
  120. /**
  121. * 删除图片
  122. *
  123. * @param ids 主键集
  124. * @return R
  125. */
  126. @SysLog("删除图片")
  127. @RequestMapping("/delete")
  128. @RequiresPermissions("sys:oss:all")
  129. public R delete(@RequestBody Long[] ids) {
  130. sysOssService.removeByIds(Arrays.asList(ids));
  131. return R.ok();
  132. }
  133. }