From 0b077806196ceb8a68af93f00880ccc70aee50c2 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期四, 07 七月 2022 18:08:14 +0800
Subject: [PATCH] add 整合 springdoc 移除 knife4j

---
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java |  119 +++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 74 insertions(+), 45 deletions(-)

diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
index a3a9d22..d63c317 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
@@ -1,25 +1,34 @@
 package com.ruoyi.demo.controller;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
 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.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
 import com.ruoyi.common.core.validate.QueryGroup;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.excel.ExcelResult;
+import com.ruoyi.common.utils.ValidatorUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.demo.domain.TestDemo;
 import com.ruoyi.demo.domain.bo.TestDemoBo;
+import com.ruoyi.demo.domain.bo.TestDemoImportVo;
 import com.ruoyi.demo.domain.vo.TestDemoVo;
 import com.ruoyi.demo.service.ITestDemoService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotEmpty;
@@ -35,8 +44,8 @@
  * @date 2021-07-26
  */
 @Validated
-@Api(value = "娴嬭瘯鍗曡〃鎺у埗鍣�", tags = {"娴嬭瘯鍗曡〃绠$悊"})
-@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@Tag(name ="娴嬭瘯鍗曡〃鎺у埗鍣�", description = "娴嬭瘯鍗曡〃绠$悊")
+@RequiredArgsConstructor
 @RestController
 @RequestMapping("/demo/demo")
 public class TestDemoController extends BaseController {
@@ -46,83 +55,103 @@
     /**
      * 鏌ヨ娴嬭瘯鍗曡〃鍒楄〃
      */
-    @ApiOperation("鏌ヨ娴嬭瘯鍗曡〃鍒楄〃")
-    @PreAuthorize("@ss.hasPermi('demo:demo:list')")
+    @Operation(summary = "鏌ヨ娴嬭瘯鍗曡〃鍒楄〃")
+    @SaCheckPermission("demo:demo:list")
     @GetMapping("/list")
-    public TableDataInfo<TestDemoVo> list(@Validated(QueryGroup.class) TestDemoBo bo) {
-        return iTestDemoService.queryPageList(bo);
+    public TableDataInfo<TestDemoVo> list(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) {
+        return iTestDemoService.queryPageList(bo, pageQuery);
     }
 
-	/**
-	 * 鑷畾涔夊垎椤垫煡璇�
-	 */
-	@ApiOperation("鑷畾涔夊垎椤垫煡璇�")
-	@PreAuthorize("@ss.hasPermi('demo:demo:list')")
-	@GetMapping("/page")
-	public TableDataInfo<TestDemoVo> page(@Validated TestDemoBo bo) {
-		return iTestDemoService.customPageList(bo);
-	}
+    /**
+     * 鑷畾涔夊垎椤垫煡璇�
+     */
+    @Operation(summary = "鑷畾涔夊垎椤垫煡璇�")
+    @SaCheckPermission("demo:demo:list")
+    @GetMapping("/page")
+    public TableDataInfo<TestDemoVo> page(@Validated(QueryGroup.class) TestDemoBo bo, PageQuery pageQuery) {
+        return iTestDemoService.customPageList(bo, pageQuery);
+    }
 
-	/**
+    @Operation(summary = "瀵煎叆娴嬭瘯-鏍¢獙")
+    @Parameters({
+        @Parameter(name = "file", description = "瀵煎叆鏂囦欢", in = ParameterIn.QUERY, required = true),
+    })
+    @Log(title = "娴嬭瘯鍗曡〃", businessType = BusinessType.IMPORT)
+    @SaCheckPermission("demo:demo:import")
+    @PostMapping("/importData")
+    public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception {
+        ExcelResult<TestDemoImportVo> excelResult = ExcelUtil.importExcel(file.getInputStream(), TestDemoImportVo.class, true);
+        List<TestDemoImportVo> volist = excelResult.getList();
+        List<TestDemo> list = BeanUtil.copyToList(volist, TestDemo.class);
+        iTestDemoService.saveBatch(list);
+        return R.ok(excelResult.getAnalysis());
+    }
+
+    /**
      * 瀵煎嚭娴嬭瘯鍗曡〃鍒楄〃
      */
-    @ApiOperation("瀵煎嚭娴嬭瘯鍗曡〃鍒楄〃")
-    @PreAuthorize("@ss.hasPermi('demo:demo:export')")
+    @Operation(summary = "瀵煎嚭娴嬭瘯鍗曡〃鍒楄〃")
+    @SaCheckPermission("demo:demo:export")
     @Log(title = "娴嬭瘯鍗曡〃", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
+    @PostMapping("/export")
     public void export(@Validated TestDemoBo bo, HttpServletResponse response) {
         List<TestDemoVo> list = iTestDemoService.queryList(bo);
-		// 娴嬭瘯闆姳id瀵煎嚭
+        // 娴嬭瘯闆姳id瀵煎嚭
 //        for (TestDemoVo vo : list) {
-//			vo.setId(1234567891234567893L);
-//		}
-		ExcelUtil.exportExcel(list, "娴嬭瘯鍗曡〃", TestDemoVo.class, response);
+//            vo.setId(1234567891234567893L);
+//        }
+        ExcelUtil.exportExcel(list, "娴嬭瘯鍗曡〃", TestDemoVo.class, response);
     }
 
     /**
      * 鑾峰彇娴嬭瘯鍗曡〃璇︾粏淇℃伅
      */
-    @ApiOperation("鑾峰彇娴嬭瘯鍗曡〃璇︾粏淇℃伅")
-    @PreAuthorize("@ss.hasPermi('demo:demo:query')")
+    @Operation(summary = "鑾峰彇娴嬭瘯鍗曡〃璇︾粏淇℃伅")
+    @SaCheckPermission("demo:demo:query")
     @GetMapping("/{id}")
-    public AjaxResult<TestDemoVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
-                                                  @PathVariable("id") Long id) {
-        return AjaxResult.success(iTestDemoService.queryById(id));
+    public R<TestDemoVo> getInfo(@Parameter(name = "娴嬭瘯ID")
+                                          @NotNull(message = "涓婚敭涓嶈兘涓虹┖")
+                                          @PathVariable("id") Long id) {
+        return R.ok(iTestDemoService.queryById(id));
     }
 
     /**
      * 鏂板娴嬭瘯鍗曡〃
      */
-    @ApiOperation("鏂板娴嬭瘯鍗曡〃")
-    @PreAuthorize("@ss.hasPermi('demo:demo:add')")
+    @Operation(summary = "鏂板娴嬭瘯鍗曡〃")
+    @SaCheckPermission("demo:demo:add")
     @Log(title = "娴嬭瘯鍗曡〃", businessType = BusinessType.INSERT)
-    @RepeatSubmit(interval = 2, timeUnit = TimeUnit.SECONDS, message = "涓嶅厑璁搁噸澶嶆彁浜�")
+    @RepeatSubmit(interval = 2, timeUnit = TimeUnit.SECONDS, message = "{repeat.submit.message}")
     @PostMapping()
-    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody TestDemoBo bo) {
+    public R<Void> add(@RequestBody TestDemoBo bo) {
+        // 浣跨敤鏍¢獙宸ュ叿瀵规爣 @Validated(AddGroup.class) 娉ㄨВ
+        // 鐢ㄤ簬鍦ㄩ潪 Controller 鐨勫湴鏂规牎楠屽璞�
+        ValidatorUtils.validate(bo, AddGroup.class);
         return toAjax(iTestDemoService.insertByBo(bo) ? 1 : 0);
     }
 
     /**
      * 淇敼娴嬭瘯鍗曡〃
      */
-    @ApiOperation("淇敼娴嬭瘯鍗曡〃")
-    @PreAuthorize("@ss.hasPermi('demo:demo:edit')")
+    @Operation(summary = "淇敼娴嬭瘯鍗曡〃")
+    @SaCheckPermission("demo:demo:edit")
     @Log(title = "娴嬭瘯鍗曡〃", businessType = BusinessType.UPDATE)
     @RepeatSubmit
     @PutMapping()
-    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody TestDemoBo bo) {
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody TestDemoBo bo) {
         return toAjax(iTestDemoService.updateByBo(bo) ? 1 : 0);
     }
 
     /**
      * 鍒犻櫎娴嬭瘯鍗曡〃
      */
-    @ApiOperation("鍒犻櫎娴嬭瘯鍗曡〃")
-    @PreAuthorize("@ss.hasPermi('demo:demo:remove')")
-    @Log(title = "娴嬭瘯鍗曡〃" , businessType = BusinessType.DELETE)
+    @Operation(summary = "鍒犻櫎娴嬭瘯鍗曡〃")
+    @SaCheckPermission("demo:demo:remove")
+    @Log(title = "娴嬭瘯鍗曡〃", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
-    public AjaxResult<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
-                                       @PathVariable Long[] ids) {
+    public R<Void> remove(@Parameter(name = "娴嬭瘯ID涓�")
+                                   @NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+                                   @PathVariable Long[] ids) {
         return toAjax(iTestDemoService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
     }
 }

--
Gitblit v1.9.3