From 3eeeb27d70ad7d761b1e280d24d717a4ee775a3b Mon Sep 17 00:00:00 2001
From: sxq <812980466@qq.com>
Date: 星期三, 20 十月 2021 11:32:53 +0800
Subject: [PATCH] 集成xxl-job-admin控制台。
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java | 155 +++++++++++++++++++++++++++++++--------------------
1 files changed, 93 insertions(+), 62 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
index 7610197..cfa4c7b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysOssController.java
@@ -2,18 +2,26 @@
import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.http.HttpException;
import cn.hutool.http.HttpUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.exception.CustomException;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.file.FileUtils;
+import com.ruoyi.oss.constant.CloudConstant;
+import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.domain.SysOss;
import com.ruoyi.system.domain.bo.SysOssBo;
import com.ruoyi.system.domain.vo.SysOssVo;
+import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysOssService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -30,8 +38,6 @@
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import java.io.IOException;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@@ -42,73 +48,98 @@
* @author Lion Li
*/
@Validated
-@Api(value = "OSS浜戝瓨鍌ㄦ帶鍒跺櫒", tags = {"OSS浜戝瓨鍌ㄧ鐞�"})
+@Api(value = "OSS瀵硅薄瀛樺偍鎺у埗鍣�", tags = {"OSS瀵硅薄瀛樺偍绠$悊"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/system/oss")
public class SysOssController extends BaseController {
- private final ISysOssService iSysOssService;
+ private final ISysOssService iSysOssService;
+ private final ISysConfigService iSysConfigService;
- /**
- * 鏌ヨOSS浜戝瓨鍌ㄥ垪琛�
- */
- @ApiOperation("鏌ヨOSS浜戝瓨鍌ㄥ垪琛�")
- @PreAuthorize("@ss.hasPermi('system:oss:list')")
- @GetMapping("/list")
- public TableDataInfo<SysOssVo> list(@Validated SysOssBo bo) {
- return iSysOssService.queryPageList(bo);
- }
+ /**
+ * 鏌ヨOSS瀵硅薄瀛樺偍鍒楄〃
+ */
+ @ApiOperation("鏌ヨOSS瀵硅薄瀛樺偍鍒楄〃")
+ @PreAuthorize("@ss.hasPermi('system:oss:list')")
+ @GetMapping("/list")
+ public TableDataInfo<SysOssVo> list(@Validated(QueryGroup.class) SysOssBo bo) {
+ return iSysOssService.queryPageList(bo);
+ }
- /**
- * 涓婁紶OSS浜戝瓨鍌�
- */
- @ApiOperation("涓婁紶OSS浜戝瓨鍌�")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "file", value = "鏂囦欢", dataType = "java.io.File", required = true),
- })
- @PreAuthorize("@ss.hasPermi('system:oss:upload')")
- @Log(title = "OSS浜戝瓨鍌�", businessType = BusinessType.INSERT)
- @RepeatSubmit
- @PostMapping("/upload")
- public AjaxResult<Map<String, String>> upload(@RequestPart("file") MultipartFile file) {
- if (file.isEmpty()) {
- throw new CustomException("涓婁紶鏂囦欢涓嶈兘涓虹┖");
- }
- SysOss oss = iSysOssService.upload(file);
- Map<String, String> map = new HashMap<>(2);
- map.put("url", oss.getUrl());
- map.put("fileName", oss.getFileName());
- return AjaxResult.success(map);
- }
+ /**
+ * 涓婁紶OSS瀵硅薄瀛樺偍
+ */
+ @ApiOperation("涓婁紶OSS瀵硅薄瀛樺偍")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "file", value = "鏂囦欢", dataType = "java.io.File", required = true),
+ })
+ @PreAuthorize("@ss.hasPermi('system:oss:upload')")
+ @Log(title = "OSS瀵硅薄瀛樺偍", businessType = BusinessType.INSERT)
+ @RepeatSubmit
+ @PostMapping("/upload")
+ public AjaxResult<Map<String, String>> upload(@RequestPart("file") MultipartFile file) {
+ if (ObjectUtil.isNull(file)) {
+ throw new ServiceException("涓婁紶鏂囦欢涓嶈兘涓虹┖");
+ }
+ SysOss oss = iSysOssService.upload(file);
+ Map<String, String> map = new HashMap<>(2);
+ map.put("url", oss.getUrl());
+ map.put("fileName", oss.getFileName());
+ return AjaxResult.success(map);
+ }
- @ApiOperation("涓嬭浇OSS浜戝瓨鍌�")
- @PreAuthorize("@ss.hasPermi('system:oss:download')")
- @GetMapping("/download/{ossId}")
- public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException {
- SysOss sysOss = iSysOssService.getById(ossId);
- if (sysOss == null) {
- throw new CustomException("鏂囦欢鏁版嵁涓嶅瓨鍦�!");
- }
- response.reset();
- response.addHeader("Access-Control-Allow-Origin", "*");
- response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
- FileUtils.setAttachmentResponseHeader(response, URLEncoder.encode(sysOss.getOriginalName(), StandardCharsets.UTF_8.toString()));
- response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8");
- long data = HttpUtil.download(sysOss.getUrl(), response.getOutputStream(), false);
- response.setContentLength(Convert.toInt(data));
- }
+ @ApiOperation("涓嬭浇OSS瀵硅薄瀛樺偍")
+ @PreAuthorize("@ss.hasPermi('system:oss:download')")
+ @GetMapping("/download/{ossId}")
+ public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException {
+ SysOss sysOss = iSysOssService.getById(ossId);
+ if (ObjectUtil.isNull(sysOss)) {
+ throw new ServiceException("鏂囦欢鏁版嵁涓嶅瓨鍦�!");
+ }
+ response.reset();
+ response.addHeader("Access-Control-Allow-Origin", "*");
+ response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
+ FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName());
+ response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8");
+ long data;
+ try {
+ data = HttpUtil.download(sysOss.getUrl(), response.getOutputStream(), false);
+ } catch (HttpException e) {
+ if (e.getMessage().contains("403")) {
+ throw new ServiceException("鏃犺鍙栨潈闄�, 璇峰湪瀵瑰簲鐨凮SS寮�鍚�'鍏湁璇�'鏉冮檺!");
+ } else {
+ throw new ServiceException(e.getMessage());
+ }
+ }
+ response.setContentLength(Convert.toInt(data));
+ }
- /**
- * 鍒犻櫎OSS浜戝瓨鍌�
- */
- @ApiOperation("鍒犻櫎OSS浜戝瓨鍌�")
- @PreAuthorize("@ss.hasPermi('system:oss:remove')")
- @Log(title = "OSS浜戝瓨鍌�" , businessType = BusinessType.DELETE)
- @DeleteMapping("/{ossIds}")
- public AjaxResult<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
- @PathVariable Long[] ossIds) {
- return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true) ? 1 : 0);
- }
+ /**
+ * 鍒犻櫎OSS瀵硅薄瀛樺偍
+ */
+ @ApiOperation("鍒犻櫎OSS瀵硅薄瀛樺偍")
+ @PreAuthorize("@ss.hasPermi('system:oss:remove')")
+ @Log(title = "OSS瀵硅薄瀛樺偍", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ossIds}")
+ public AjaxResult<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+ @PathVariable Long[] ossIds) {
+ return toAjax(iSysOssService.deleteWithValidByIds(Arrays.asList(ossIds), true) ? 1 : 0);
+ }
+
+ /**
+ * 鍙樻洿鍥剧墖鍒楄〃棰勮鐘舵��
+ */
+ @ApiOperation("鍙樻洿鍥剧墖鍒楄〃棰勮鐘舵��")
+ @PreAuthorize("@ss.hasPermi('system:oss:edit')")
+ @Log(title = "OSS瀵硅薄瀛樺偍", businessType = BusinessType.UPDATE)
+ @PutMapping("/changePreviewListResource")
+ public AjaxResult<Void> changePreviewListResource(@RequestBody String body) {
+ Map<String, Boolean> map = JsonUtils.parseMap(body);
+ SysConfig config = iSysConfigService.getOne(new LambdaQueryWrapper<SysConfig>()
+ .eq(SysConfig::getConfigKey, CloudConstant.PEREVIEW_LIST_RESOURCE_KEY));
+ config.setConfigValue(map.get("previewListResource").toString());
+ return toAjax(iSysConfigService.updateConfig(config));
+ }
}
--
Gitblit v1.9.3