From 4a388770b0193f2c4592ab76db2c5238f58484ca Mon Sep 17 00:00:00 2001 From: Binlin B Wang Date: Mon, 18 Jul 2022 14:30:06 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E8=BF=94=E5=9B=9E=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ebts/common/utils/MapExcelUtil.java | 61 ++++++++ .../generator/controller/QueryController.java | 62 +++----- .../ebts/generator/service/QueryService.java | 12 +- .../service/impl/QueryServiceImpl.java | 143 ++++++++---------- .../service/impl/UniQueryServiceImpl.java | 1 - 5 files changed, 154 insertions(+), 125 deletions(-) diff --git a/ebts/ebts-common/src/main/java/com/ebts/common/utils/MapExcelUtil.java b/ebts/ebts-common/src/main/java/com/ebts/common/utils/MapExcelUtil.java index 3716f9d..e4a61c1 100644 --- a/ebts/ebts-common/src/main/java/com/ebts/common/utils/MapExcelUtil.java +++ b/ebts/ebts-common/src/main/java/com/ebts/common/utils/MapExcelUtil.java @@ -1,6 +1,7 @@ package com.ebts.common.utils; import com.ebts.common.config.EBTSConfig; +import com.ebts.common.core.entity.Result; import com.ebts.common.core.entity.ResultBackI; import com.ebts.common.exception.CustomException; import org.apache.poi.ss.usermodel.*; @@ -68,6 +69,17 @@ public class MapExcelUtil { this.init(list, sheetName); return exportExcel(); } + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @return 结果 + */ + public Result exportExcelResult(List> list, String sheetName) { + this.init(list, sheetName); + return exportExcelResult(); + } public void init(List> list, String sheetName) { @@ -292,4 +304,53 @@ public class MapExcelUtil { } } + + /** + * 对list数据源将其里面的数据导入到excel表单 + * + * @return 结果 + */ + public Result exportExcelResult() { + OutputStream out = null; + try { + // 取出一共有多少个sheet. + double sheetNo = Math.ceil(list.size() / sheetSize); + for (int index = 0; index <= sheetNo; index++) { + createSheet(sheetNo, index); + + // 产生一行 + Row row = sheet.createRow(0); + int column = 0; + // 写入各个字段的列头名称 + for (String herder : herders) { + //设置列名称 + this.createCell(row, herder, column++); + } + fillExcelData(index, row); + } + String filename = encodingFilename(sheetName); + out = new FileOutputStream(getAbsoluteFile(filename)); + wb.write(out); + return Result.ok(filename); + } catch (Exception e) { + logger.error("导出Excel异常{}", e.getMessage()); + throw new CustomException("导出Excel失败,请联系网站管理员!"); + } finally { + if (wb != null) { + try { + wb.close(); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + if (out != null) { + try { + out.close(); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + } + } + } diff --git a/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/QueryController.java b/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/QueryController.java index ac85b22..e3a4848 100644 --- a/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/QueryController.java +++ b/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/QueryController.java @@ -1,9 +1,8 @@ package com.ebts.generator.controller; import com.ebts.common.core.controller.BaseController; -import com.ebts.common.core.entity.ResultBackI; +import com.ebts.common.core.entity.Result; import com.ebts.common.utils.MapExcelUtil; -import com.ebts.common.utils.ServerResult; import com.ebts.common.utils.StringUtils; import com.ebts.generator.utils.sql.GenSqlUtil; import com.github.pagehelper.PageHelper; @@ -31,8 +30,6 @@ import java.util.Map; @RestController @RequestMapping("/query") public class QueryController extends BaseController { - private Logger logger = LoggerFactory.getLogger(QueryController.class); - @Autowired private QueryService queryService; @@ -45,18 +42,18 @@ public class QueryController extends BaseController { */ @PreAuthorize("@ebts.hasPermi('query:list')") @GetMapping("/{id}") - public ResultBackI Info(@PathVariable("id") Long id) { - ServerResult ServerResult = queryService.selectQueryById(id); - if (ServerResult.isStart()) { - UniQuery uniQuery = ServerResult.getData(); + public Result> Info(@PathVariable("id") Long id) { + Result result = queryService.selectQueryById(id); + if (result.isSuccess()) { + UniQuery uniQuery = result.getData(); Map modeMap = new HashMap<>(); List uniCons = uniQuery.getUniCons(); uniQuery.setUniCons(null); modeMap.put("info", uniQuery); modeMap.put("list", uniCons); - return ResultBackI.success(modeMap); + return Result.ok(modeMap); } else { - return ResultBackI.error(ServerResult.getMsg()); + return Result.error(result.getMsg()); } } @@ -68,13 +65,8 @@ public class QueryController extends BaseController { */ @PreAuthorize("@ebts.hasPermi('query:edit')") @PutMapping - public ResultBackI edit(@Validated @RequestBody UniQuery uniQuery) { - ServerResult ServerResult = queryService.updateQueryInfo(uniQuery); - if (ServerResult.isStart()) { - return ResultBackI.success(); - } else { - return ResultBackI.error(ServerResult.getMsg()); - } + public Result edit(@Validated @RequestBody UniQuery uniQuery) { + return queryService.updateQueryInfo(uniQuery); } /** @@ -85,12 +77,12 @@ public class QueryController extends BaseController { */ @PreAuthorize("@ebts.hasAnyPermi('query:export')") @PutMapping("export") - public ResultBackI export(@Validated @RequestBody UniQuery uniQuery) { - ServerResult>> ServerResult = queryService.previewQuery(uniQuery); - if (ServerResult.isStart()) { - return new MapExcelUtil().exportExcel(ServerResult.getData(), uniQuery.getUqName()); + public Serializable export(@Validated @RequestBody UniQuery uniQuery) { + Result>> result = queryService.previewQuery(uniQuery); + if (result.isSuccess()) { + return new MapExcelUtil().exportExcelResult(result.getData(), uniQuery.getUqName()); } else { - return ResultBackI.error(ServerResult.getMsg()); + return result; } } @@ -104,11 +96,11 @@ public class QueryController extends BaseController { @PutMapping("preview") public Serializable Preview(@Validated @RequestBody UniQuery uniQuery) { startPage(uniQuery); - ServerResult>> ServerResult = queryService.previewQuery(uniQuery); - if (ServerResult.isStart()) { - return getDataTable(ServerResult.getData()); + Result>> result = queryService.previewQuery(uniQuery); + if (result.isSuccess()) { + return getDataTable(result.getData()); } else { - return ResultBackI.error(ServerResult.getMsg()); + return result; } } @@ -120,20 +112,14 @@ public class QueryController extends BaseController { */ @PreAuthorize("@ebts.hasPermi('query:release')") @PutMapping("/release") - public ResultBackI Release(@RequestBody UniQuery uniQuery) { + public Result Release(@RequestBody UniQuery uniQuery) { if (uniQuery.getId() == null) { - return ResultBackI.error("id不能为空!"); + return Result.error("id不能为空!"); + } + if (uniQuery.getIsRelease() == 1 || uniQuery.getIsRelease() == 2) { + return queryService.Release(uniQuery); } else { - if (uniQuery.getIsRelease() == 1 || uniQuery.getIsRelease() == 2) { - ServerResult ServerResult = queryService.Release(uniQuery); - if (ServerResult.isStart()) { - return ResultBackI.success(); - } else { - return ResultBackI.error(ServerResult.getMsg()); - } - } else { - return ResultBackI.error("状态输入错误!"); - } + return Result.error("状态输入错误!"); } } diff --git a/ebts/ebts-generator/src/main/java/com/ebts/generator/service/QueryService.java b/ebts/ebts-generator/src/main/java/com/ebts/generator/service/QueryService.java index d728160..ba42b59 100644 --- a/ebts/ebts-generator/src/main/java/com/ebts/generator/service/QueryService.java +++ b/ebts/ebts-generator/src/main/java/com/ebts/generator/service/QueryService.java @@ -1,6 +1,6 @@ package com.ebts.generator.service; -import com.ebts.common.utils.ServerResult; +import com.ebts.common.core.entity.Result; import com.ebts.generator.entity.UniQuery; import java.util.List; @@ -18,7 +18,7 @@ public interface QueryService { * @param id * @return */ - ServerResult selectQueryById(Long id); + Result selectQueryById(Long id); /** * 修改基础信息 @@ -26,7 +26,7 @@ public interface QueryService { * @param uniQuery * @return */ - ServerResult updateQueryInfo(UniQuery uniQuery); + Result updateQueryInfo(UniQuery uniQuery); /** * 预览万能查询数据 @@ -34,11 +34,13 @@ public interface QueryService { * @param uniQuery * @return */ - ServerResult>> previewQuery(UniQuery uniQuery); + Result>> previewQuery(UniQuery uniQuery); /** + * 发布 + * * @param uniQuery * @return */ - ServerResult Release(UniQuery uniQuery); + Result Release(UniQuery uniQuery); } diff --git a/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/QueryServiceImpl.java b/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/QueryServiceImpl.java index 346a2c9..975d1ee 100644 --- a/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/QueryServiceImpl.java +++ b/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/QueryServiceImpl.java @@ -2,10 +2,9 @@ package com.ebts.generator.service.impl; import com.alibaba.fastjson.JSONObject; import com.ebts.common.constant.ReturnConstants; +import com.ebts.common.core.entity.Result; import com.ebts.common.core.entity.entity.Menu; -import com.ebts.common.exception.EbtsException; import com.ebts.common.utils.SecurityUtils; -import com.ebts.common.utils.ServerResult; import com.ebts.generator.dao.QueryDao; import com.ebts.generator.dao.UniQueryDao; import com.ebts.generator.entity.UniCon; @@ -13,11 +12,12 @@ import com.ebts.generator.entity.UniQuery; import com.ebts.generator.service.QueryService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; +import javax.annotation.Resource; import java.util.List; import java.util.Map; @@ -30,10 +30,10 @@ import java.util.Map; public class QueryServiceImpl implements QueryService { private final Logger logger = LoggerFactory.getLogger(QueryServiceImpl.class); - @Autowired + @Resource private QueryDao queryDao; - @Autowired + @Resource private UniQueryDao uniQueryDao; @@ -41,54 +41,45 @@ public class QueryServiceImpl implements QueryService { * 查询万能查询的基本信息和条件信息 */ @Override - public ServerResult selectQueryById(Long id) { - try { - UniQuery uniQuery = queryDao.selectQueryInfo(id); - if (uniQuery != null) { - return new ServerResult<>(true, uniQuery); - } else { - return new ServerResult<>(false, ReturnConstants.RESULT_EMPTY); - } - } catch (RuntimeException e) { - logger.error(e.getMessage()); - throw new EbtsException(ReturnConstants.OP_ERROR,e); + @Transactional(propagation = Propagation.SUPPORTS, rollbackFor = Exception.class) + public Result selectQueryById(Long id) { + UniQuery uniQuery = queryDao.selectQueryInfo(id); + if (uniQuery != null) { + return Result.ok(uniQuery); + } else { + return Result.info(ReturnConstants.RESULT_EMPTY); } } @Override - @Transactional(rollbackFor = Exception.class) - public ServerResult Release(UniQuery uniQuery) { - try { - Integer isRelease = queryDao.Release(uniQuery.getId()); - if ((isRelease == 1 && uniQuery.getIsRelease() == 2) || (isRelease == 2 && uniQuery.getIsRelease() == 1)) { - if (uniQuery.getIsRelease() == 1) { - UniQuery query = uniQueryDao.selectUniQueryById(uniQuery.getId()); - Menu Menu = new Menu(query.getId(), query.getUqName(), SecurityUtils.getUserId()); - Integer insermenu = queryDao.insertMenu(Menu); - if (insermenu == 0) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return new ServerResult<>(false, ReturnConstants.OP_ERROR); - } - } else { - Integer deleteMenu = queryDao.deleteMenu("data/" + uniQuery.getId()); - if (deleteMenu == 0) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return new ServerResult<>(false, ReturnConstants.OP_ERROR); - } - } - Integer release = queryDao.changeRelease(uniQuery); - if (release > 0) { - return new ServerResult<>(true); - } else { + @Transactional(propagation = Propagation.SUPPORTS, rollbackFor = Exception.class) + public Result Release(UniQuery uniQuery) { + Integer isRelease = queryDao.Release(uniQuery.getId()); + if ((isRelease == 1 && uniQuery.getIsRelease() == 2) || (isRelease == 2 && uniQuery.getIsRelease() == 1)) { + if (uniQuery.getIsRelease() == 1) { + UniQuery query = uniQueryDao.selectUniQueryById(uniQuery.getId()); + Menu Menu = new Menu(query.getId(), query.getUqName(), SecurityUtils.getUserId()); + Integer insermenu = queryDao.insertMenu(Menu); + if (insermenu == 0) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return new ServerResult<>(false, ReturnConstants.OP_ERROR); + return Result.error(ReturnConstants.OP_ERROR); } } else { - return new ServerResult<>(false, ReturnConstants.STATE_ERROR); + Integer deleteMenu = queryDao.deleteMenu("data/" + uniQuery.getId()); + if (deleteMenu == 0) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return Result.error(ReturnConstants.OP_ERROR); + } } - } catch (RuntimeException e) { - logger.error(e.getMessage()); - throw new EbtsException(ReturnConstants.OP_ERROR,e); + Integer release = queryDao.changeRelease(uniQuery); + if (release > 0) { + return Result.ok(); + } else { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return Result.error(ReturnConstants.OP_ERROR); + } + } else { + return Result.error(ReturnConstants.STATE_ERROR); } } @@ -96,51 +87,41 @@ public class QueryServiceImpl implements QueryService { * 更新万能查询基本信息和条件 */ @Override - @Transactional(rollbackFor = Exception.class) - public ServerResult updateQueryInfo(UniQuery uniQuery) { - try { - int uqrenewal = uniQueryDao.updateUniQuery(uniQuery); - if (uqrenewal > 0) { - if (uniQuery.getUniCons() != null && uniQuery.getUniCons().size() > 0) { - queryDao.deleteUniCon(uniQuery.getId()); - Integer ucrenewal = queryDao.insertUniCon(uniQuery.getUniCons()); - if (ucrenewal == 0) { - return new ServerResult<>(false, ReturnConstants.OP_ERROR); - } + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) + public Result updateQueryInfo(UniQuery uniQuery) { + int uqrenewal = uniQueryDao.updateUniQuery(uniQuery); + if (uqrenewal > 0) { + if (uniQuery.getUniCons() != null && uniQuery.getUniCons().size() > 0) { + queryDao.deleteUniCon(uniQuery.getId()); + Integer ucrenewal = queryDao.insertUniCon(uniQuery.getUniCons()); + if (ucrenewal == 0) { + return Result.error(ReturnConstants.OP_ERROR); } - return new ServerResult<>(true); } - return new ServerResult<>(false, ReturnConstants.OP_ERROR); - } catch (RuntimeException e) { - logger.error(e.getMessage()); - throw new EbtsException(ReturnConstants.OP_ERROR,e); + return Result.ok(); } + return Result.error(ReturnConstants.OP_ERROR); } @Override - public ServerResult>> previewQuery(UniQuery uniQuery) { - try { - StringBuilder sql = new StringBuilder(uniQuery.getUqSql().toLowerCase()); - List uniConList = uniQuery.getUniCons(); - if (sql.toString().contains("insert") || sql.toString().contains("delete ") || sql.toString().contains("update ") || - sql.toString().contains("drop ") || sql.toString().contains("database ") || sql.toString().contains("create ") || - sql.toString().contains("view ") || sql.toString().contains("alter ") || sql.toString().contains("gen_")) { - return new ServerResult<>(false, "sql语句含有insert,delete,update,drop,database,view,alter,gen_等特殊字符!"); - } - if (uniConList.size() > 0) { - sql.append(" where 1 = 1"); - for (UniCon uniCon : uniConList) { - if (!uniCon.getUcMock().equals("") && uniCon.getUcMock() != null) { - sql.append(conversionPreview(uniCon)); - } + public Result>> previewQuery(UniQuery uniQuery) { + StringBuilder sql = new StringBuilder(uniQuery.getUqSql().toLowerCase()); + List uniConList = uniQuery.getUniCons(); + if (sql.toString().contains("insert") || sql.toString().contains("delete ") || sql.toString().contains("update ") || + sql.toString().contains("drop ") || sql.toString().contains("database ") || sql.toString().contains("create ") || + sql.toString().contains("view ") || sql.toString().contains("alter ") || sql.toString().contains("gen_")) { + return Result.error("sql语句含有insert,delete,update,drop,database,view,alter,gen_等特殊字符!"); + } + if (uniConList.size() > 0) { + sql.append(" where 1 = 1"); + for (UniCon uniCon : uniConList) { + if (!uniCon.getUcMock().equals("") && uniCon.getUcMock() != null) { + sql.append(conversionPreview(uniCon)); } } - List> dataMap = queryDao.UniQuery(sql.toString()); - return new ServerResult<>(true, dataMap); - } catch (RuntimeException e) { - logger.error(e.getMessage()); - return new ServerResult<>(false, e.getMessage()); } + List> dataMap = queryDao.UniQuery(sql.toString()); + return Result.ok(dataMap); } /** diff --git a/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/UniQueryServiceImpl.java b/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/UniQueryServiceImpl.java index 4d181ff..7668ae8 100644 --- a/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/UniQueryServiceImpl.java +++ b/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/UniQueryServiceImpl.java @@ -39,7 +39,6 @@ public class UniQueryServiceImpl implements UniQueryService { @Override public Result selectUniQueryById(Long id) { UniQuery uniQuery = uniQueryDao.selectUniQueryById(id); - System.out.println(1/0); if (uniQuery != null) { return Result.ok(uniQuery); } else {