From 0a2054c67ba0b243f10edfe84b572c9b4157e3b5 Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期四, 13 二月 2025 10:35:05 +0800 Subject: [PATCH] 20250213 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysRoleController.java | 82 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 82 insertions(+), 0 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysRoleController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysRoleController.java index 7d4215e..6d114cd 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysRoleController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysRoleController.java @@ -1,10 +1,30 @@ package com.ltkj.web.controller.system; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.RandomUtil; +import com.ltkj.db.DataSourceConfig; +import com.ltkj.db.DataSourceContextHolder; +import com.ltkj.hosp.domain.DictHosp; +import com.ltkj.hosp.service.IDictHospService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ClassPathResource; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.util.FileCopyUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -55,6 +75,13 @@ @Autowired private ISysDeptService deptService; + @Autowired + private JdbcTemplate jdbcTemplate; + @Autowired + private IDictHospService dictHospService; + + @Value("${config.path}") + private String path; // @PreAuthorize("@ss.hasPermi('system:role:list')") @GetMapping("/list") @@ -245,4 +272,59 @@ ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); return ajax; } + + @Autowired + private DataSourceConfig dataSourceConfig; + + /** + * 浠庡簱鎵归噺鎵цsql + * 璇诲彇鏈湴sql鏂囦欢 + * @return + */ + @GetMapping("/execUpdateSql") + public AjaxResult execUpdateSql() { + DataSourceContextHolder.setDataSourceKey("default"); + List<DictHosp> list = dictHospService.list(); + List<Map<String, Object>> resultList = new ArrayList<>(); + boolean flag = false; + for (DictHosp dictHosp : list) { + String dbName = dictHosp.getDbname(); + Map<String, Object> dbResult = new HashMap<>(); + dbResult.put("database", dbName); + List<String> successList = new ArrayList<>(); + List<String> errorList = new ArrayList<>(); + try { + InputStreamReader reader = new InputStreamReader(Files.newInputStream(Paths.get(path + File.separator + "update.sql")), StandardCharsets.UTF_8); + String sqlContent = FileCopyUtils.copyToString(reader); + String[] sqlStatements = sqlContent.split("\\|-\\|"); + for (String sql : sqlStatements) { + sql = sql.trim(); + if (!sql.isEmpty()) { + // INSERT INTO `api_config` (`id`, `api_url`, `api_method`, `tab_name`, `is_response`, `primary_keys`, `remark`, `result_code_key`, `result_data_key`, `type`) VALUES (${id}, '${dbName}', '${randowmStr}', '${randowmStr}', 1, 'ResultData', '1.pas 妫�鏌ョ敵璇蜂俊鎭綔搴�', 'ResultCode', 'ResultData', 'pacs'); +// sql = sql.replace("${dbName}",dbName).replace("${id}", IdUtil.getSnowflake().nextIdStr()).replace("${randowmStr}", RandomUtil.randomString(10)); + try { + dataSourceConfig.addDataSource(dbName); + DataSourceContextHolder.setDataSourceKey(dbName); + jdbcTemplate.execute(sql); + successList.add(sql); + } catch (Exception e) { + errorList.add(sql + "\nERROR: " + e.getMessage()); + } + } + } + } catch (IOException e) { + return AjaxResult.error("璇诲彇SQL鏂囦欢澶辫触锛�" + e.getMessage()); + } + dbResult.put("successSQL", successList); + dbResult.put("failedSQL", errorList); + resultList.add(dbResult); + if (!errorList.isEmpty()) + flag = true; + } + DataSourceContextHolder.clear(); + if (flag) + return AjaxResult.error("鎵цsql涓瓨鍦ㄥけ璐�",resultList); + return AjaxResult.success(resultList); + } + } -- Gitblit v1.8.0