From 0c9398776a3338d7fe7f2194c19c22c7dcb0f0aa Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期二, 26 七月 2022 20:20:20 +0800
Subject: [PATCH] fix 修复 幂等组件 逻辑问题导致线程变量未清除
---
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java | 175 ++++++++++++++++++++++++++++------------------------------
1 files changed, 85 insertions(+), 90 deletions(-)
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java
index 548b4b5..77df9fd 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java
@@ -1,96 +1,86 @@
package com.ruoyi.generator.controller;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.io.IoUtil;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+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.enums.BusinessType;
+import com.ruoyi.generator.domain.GenTable;
+import com.ruoyi.generator.domain.GenTableColumn;
+import com.ruoyi.generator.service.IGenTableService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.io.IOUtils;
-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.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.annotation.Log;
-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.text.Convert;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.generator.domain.GenTable;
-import com.ruoyi.generator.domain.GenTableColumn;
-import com.ruoyi.generator.service.IGenTableColumnService;
-import com.ruoyi.generator.service.IGenTableService;
/**
* 浠g爜鐢熸垚 鎿嶄綔澶勭悊
- *
- * @author ruoyi
+ *
+ * @author Lion Li
*/
+@Validated
+@RequiredArgsConstructor
@RestController
@RequestMapping("/tool/gen")
-public class GenController extends BaseController
-{
- @Autowired
- private IGenTableService genTableService;
+public class GenController extends BaseController {
- @Autowired
- private IGenTableColumnService genTableColumnService;
+ private final IGenTableService genTableService;
/**
* 鏌ヨ浠g爜鐢熸垚鍒楄〃
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:list')")
+ @SaCheckPermission("tool:gen:list")
@GetMapping("/list")
- public TableDataInfo genList(GenTable genTable)
- {
- startPage();
- List<GenTable> list = genTableService.selectGenTableList(genTable);
- return getDataTable(list);
+ public TableDataInfo<GenTable> genList(GenTable genTable, PageQuery pageQuery) {
+ return genTableService.selectPageGenTableList(genTable, pageQuery);
}
/**
* 淇敼浠g爜鐢熸垚涓氬姟
+ *
+ * @param tableId 琛↖D
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:query')")
- @GetMapping(value = "/{talbleId}")
- public AjaxResult getInfo(@PathVariable Long talbleId)
- {
- GenTable table = genTableService.selectGenTableById(talbleId);
- List<GenTableColumn> list = genTableColumnService.selectGenTableColumnListByTableId(talbleId);
+ @SaCheckPermission("tool:gen:query")
+ @GetMapping(value = "/{tableId}")
+ public R<Map<String, Object>> getInfo(@PathVariable Long tableId) {
+ GenTable table = genTableService.selectGenTableById(tableId);
+ List<GenTable> tables = genTableService.selectGenTableAll();
+ List<GenTableColumn> list = genTableService.selectGenTableColumnListByTableId(tableId);
Map<String, Object> map = new HashMap<String, Object>();
map.put("info", table);
map.put("rows", list);
- return AjaxResult.success(map);
+ map.put("tables", tables);
+ return R.ok(map);
}
/**
* 鏌ヨ鏁版嵁搴撳垪琛�
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:list')")
+ @SaCheckPermission("tool:gen:list")
@GetMapping("/db/list")
- public TableDataInfo dataList(GenTable genTable)
- {
- startPage();
- List<GenTable> list = genTableService.selectDbTableList(genTable);
- return getDataTable(list);
+ public TableDataInfo<GenTable> dataList(GenTable genTable, PageQuery pageQuery) {
+ return genTableService.selectPageDbTableList(genTable, pageQuery);
}
/**
* 鏌ヨ鏁版嵁琛ㄥ瓧娈靛垪琛�
+ *
+ * @param tableId 琛↖D
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:list')")
- @GetMapping(value = "/column/{talbleId}")
- public TableDataInfo columnList(Long tableId)
- {
- TableDataInfo dataInfo = new TableDataInfo();
- List<GenTableColumn> list = genTableColumnService.selectGenTableColumnListByTableId(tableId);
+ @SaCheckPermission("tool:gen:list")
+ @GetMapping(value = "/column/{tableId}")
+ public TableDataInfo<GenTableColumn> columnList(Long tableId) {
+ TableDataInfo<GenTableColumn> dataInfo = new TableDataInfo<>();
+ List<GenTableColumn> list = genTableService.selectGenTableColumnListByTableId(tableId);
dataInfo.setRows(list);
dataInfo.setTotal(list.size());
return dataInfo;
@@ -98,99 +88,105 @@
/**
* 瀵煎叆琛ㄧ粨鏋勶紙淇濆瓨锛�
+ *
+ * @param tables 琛ㄥ悕涓�
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:list')")
+ @SaCheckPermission("tool:gen:import")
@Log(title = "浠g爜鐢熸垚", businessType = BusinessType.IMPORT)
@PostMapping("/importTable")
- public AjaxResult importTableSave(String tables)
- {
+ public R<Void> importTableSave(String tables) {
String[] tableNames = Convert.toStrArray(tables);
// 鏌ヨ琛ㄤ俊鎭�
List<GenTable> tableList = genTableService.selectDbTableListByNames(tableNames);
genTableService.importGenTable(tableList);
- return AjaxResult.success();
+ return R.ok();
}
/**
* 淇敼淇濆瓨浠g爜鐢熸垚涓氬姟
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:edit')")
+ @SaCheckPermission("tool:gen:edit")
@Log(title = "浠g爜鐢熸垚", businessType = BusinessType.UPDATE)
@PutMapping
- public AjaxResult editSave(@Validated @RequestBody GenTable genTable)
- {
+ public R<Void> editSave(@Validated @RequestBody GenTable genTable) {
genTableService.validateEdit(genTable);
genTableService.updateGenTable(genTable);
- return AjaxResult.success();
+ return R.ok();
}
/**
* 鍒犻櫎浠g爜鐢熸垚
+ *
+ * @param tableIds 琛↖D涓�
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:remove')")
+ @SaCheckPermission("tool:gen:remove")
@Log(title = "浠g爜鐢熸垚", businessType = BusinessType.DELETE)
@DeleteMapping("/{tableIds}")
- public AjaxResult remove(@PathVariable Long[] tableIds)
- {
+ public R<Void> remove(@PathVariable Long[] tableIds) {
genTableService.deleteGenTableByIds(tableIds);
- return AjaxResult.success();
+ return R.ok();
}
/**
* 棰勮浠g爜
+ *
+ * @param tableId 琛↖D
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:preview')")
+ @SaCheckPermission("tool:gen:preview")
@GetMapping("/preview/{tableId}")
- public AjaxResult preview(@PathVariable("tableId") Long tableId) throws IOException
- {
+ public R<Map<String, String>> preview(@PathVariable("tableId") Long tableId) throws IOException {
Map<String, String> dataMap = genTableService.previewCode(tableId);
- return AjaxResult.success(dataMap);
+ return R.ok(dataMap);
}
/**
* 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級
+ *
+ * @param tableName 琛ㄥ悕
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:code')")
+ @SaCheckPermission("tool:gen:code")
@Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE)
@GetMapping("/download/{tableName}")
- public void download(HttpServletResponse response, @PathVariable("tableName") String tableName) throws IOException
- {
+ public void download(HttpServletResponse response, @PathVariable("tableName") String tableName) throws IOException {
byte[] data = genTableService.downloadCode(tableName);
genCode(response, data);
}
/**
* 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛�
+ *
+ * @param tableName 琛ㄥ悕
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:code')")
+ @SaCheckPermission("tool:gen:code")
@Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE)
@GetMapping("/genCode/{tableName}")
- public AjaxResult genCode(@PathVariable("tableName") String tableName)
- {
+ public R<Void> genCode(@PathVariable("tableName") String tableName) {
genTableService.generatorCode(tableName);
- return AjaxResult.success();
+ return R.ok();
}
/**
* 鍚屾鏁版嵁搴�
+ *
+ * @param tableName 琛ㄥ悕
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:edit')")
+ @SaCheckPermission("tool:gen:edit")
@Log(title = "浠g爜鐢熸垚", businessType = BusinessType.UPDATE)
@GetMapping("/synchDb/{tableName}")
- public AjaxResult synchDb(@PathVariable("tableName") String tableName)
- {
+ public R<Void> synchDb(@PathVariable("tableName") String tableName) {
genTableService.synchDb(tableName);
- return AjaxResult.success();
+ return R.ok();
}
/**
* 鎵归噺鐢熸垚浠g爜
+ *
+ * @param tables 琛ㄥ悕涓�
*/
- @PreAuthorize("@ss.hasPermi('tool:gen:code')")
+ @SaCheckPermission("tool:gen:code")
@Log(title = "浠g爜鐢熸垚", businessType = BusinessType.GENCODE)
@GetMapping("/batchGenCode")
- public void batchGenCode(HttpServletResponse response, String tables) throws IOException
- {
+ public void batchGenCode(HttpServletResponse response, String tables) throws IOException {
String[] tableNames = Convert.toStrArray(tables);
byte[] data = genTableService.downloadCode(tableNames);
genCode(response, data);
@@ -199,14 +195,13 @@
/**
* 鐢熸垚zip鏂囦欢
*/
- private void genCode(HttpServletResponse response, byte[] data) throws IOException
- {
+ private void genCode(HttpServletResponse response, byte[] data) throws IOException {
response.reset();
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-Disposition", "attachment; filename=\"ruoyi.zip\"");
response.addHeader("Content-Length", "" + data.length);
response.setContentType("application/octet-stream; charset=UTF-8");
- IOUtils.write(data, response.getOutputStream());
+ IoUtil.write(response.getOutputStream(), false, data);
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.3