SysOssController.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package com.kmall.admin.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.kmall.admin.entity.SysOssEntity;
  4. import com.kmall.common.fileserver.util.FileManager;
  5. import com.kmall.common.oss.CloudStorageConfig;
  6. import com.kmall.admin.fromcomm.service.SysConfigService;
  7. import com.kmall.admin.service.SysOssService;
  8. import com.kmall.common.utils.*;
  9. import com.kmall.common.validator.ValidatorUtils;
  10. import com.kmall.common.validator.group.AliyunGroup;
  11. import com.kmall.common.validator.group.QcloudGroup;
  12. import com.kmall.common.validator.group.QiniuGroup;
  13. import org.apache.shiro.authz.annotation.RequiresPermissions;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.web.bind.annotation.RequestBody;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RequestParam;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import org.springframework.web.multipart.MultipartFile;
  20. import java.util.ArrayList;
  21. import java.util.Date;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. * 文件上传
  26. *
  27. * @author Scott
  28. * @email
  29. * @date 2017-03-25 12:13:26
  30. */
  31. @RestController
  32. @RequestMapping("sys/oss")
  33. public class SysOssController {
  34. @Autowired
  35. private SysOssService sysOssService;
  36. @Autowired
  37. private SysConfigService sysConfigService;
  38. private final static String KEY = ConfigConstant.CLOUD_STORAGE_CONFIG_KEY;
  39. /**
  40. * 列表
  41. */
  42. @RequestMapping("/list")
  43. @RequiresPermissions("sys:oss:all")
  44. public R list(@RequestParam Map<String, Object> params) {
  45. //查询列表数据
  46. Query query = new Query(params);
  47. List<SysOssEntity> sysOssList = sysOssService.queryList(query);
  48. int total = sysOssService.queryTotal(query);
  49. PageUtils pageUtil = new PageUtils(sysOssList, total, query.getLimit(), query.getPage());
  50. return R.ok().put("page", pageUtil);
  51. }
  52. /**
  53. * 云存储配置信息
  54. */
  55. @RequestMapping("/config")
  56. @RequiresPermissions("sys:oss:all")
  57. public R config() {
  58. CloudStorageConfig config = sysConfigService.getConfigObject(KEY, CloudStorageConfig.class);
  59. return R.ok().put("config", config);
  60. }
  61. /**
  62. * 保存云存储配置信息
  63. */
  64. @RequestMapping("/saveConfig")
  65. @RequiresPermissions("sys:oss:all")
  66. public R saveConfig(@RequestBody CloudStorageConfig config) {
  67. //校验类型
  68. ValidatorUtils.validateEntity(config);
  69. if (config.getType() == Constant.CloudService.QINIU.getValue()) {
  70. //校验七牛数据
  71. ValidatorUtils.validateEntity(config, QiniuGroup.class);
  72. } else if (config.getType() == Constant.CloudService.ALIYUN.getValue()) {
  73. //校验阿里云数据
  74. ValidatorUtils.validateEntity(config, AliyunGroup.class);
  75. } else if (config.getType() == Constant.CloudService.QCLOUD.getValue()) {
  76. //校验腾讯云数据
  77. ValidatorUtils.validateEntity(config, QcloudGroup.class);
  78. }
  79. sysConfigService.updateValueByKey(KEY, JSON.toJSONString(config));
  80. return R.ok();
  81. }
  82. /**
  83. * 上传文件
  84. */
  85. @RequestMapping("/upload")
  86. @RequiresPermissions("sys:oss:all")
  87. public R upload(@RequestParam("file") MultipartFile file) throws Exception {
  88. if (file.isEmpty()) {
  89. throw new RRException("上传文件不能为空");
  90. }
  91. // String name = file.getOriginalFilename();
  92. // Thumbnails.of(name).size(200, 200).keepAspectRatio(false).allowOverwrite(true).toFile(name);
  93. int AllowImgFileSize=0; //允许上传图片文件的大小 0为无限制 单位:KB
  94. Long size = file.getSize();
  95. int ImgFileSize=Math.round(size/1024*100)/100;//取得图片文件的大小
  96. if(ImgFileSize > 200){
  97. throw new RRException("上传图片,不能超过 300k");
  98. }
  99. //上传文件
  100. String url = FileManager.upload(file);
  101. //保存文件信息
  102. SysOssEntity ossEntity = new SysOssEntity();
  103. ossEntity.setUrl(url);
  104. ossEntity.setCreateDate(new Date());
  105. sysOssService.save(ossEntity);
  106. R r = new R();
  107. r.put("url", url);
  108. r.put("link", url);
  109. return r;
  110. }
  111. /**
  112. * 删除
  113. */
  114. @RequestMapping("/delete")
  115. @RequiresPermissions("sys:oss:all")
  116. public R delete(@RequestBody Long[] ids) {
  117. sysOssService.deleteBatch(ids);
  118. return R.ok();
  119. }
  120. /**
  121. * 查询所有列表
  122. */
  123. @RequestMapping("/queryAll")
  124. public List<String> queryAll(@RequestParam Map<String, Object> params) {
  125. //查询列表数据
  126. List<SysOssEntity> sysOssList = sysOssService.queryList(params);
  127. List<String> list = new ArrayList<>();
  128. if (null != sysOssList && sysOssList.size() > 0) {
  129. for (SysOssEntity item : sysOssList) {
  130. list.add(item.getUrl());
  131. }
  132. }
  133. return list;
  134. }
  135. }