diff --git a/backend/ruoyi-admin/pom.xml b/backend/ruoyi-admin/pom.xml index 78f95547..b8455f56 100644 --- a/backend/ruoyi-admin/pom.xml +++ b/backend/ruoyi-admin/pom.xml @@ -135,6 +135,12 @@ ${revision} + + + org.dromara + ruoyi-xskh + ${revision} + org.dromara diff --git a/backend/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java b/backend/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java index 213cd04a..c9510f4c 100644 --- a/backend/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java +++ b/backend/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java @@ -79,7 +79,7 @@ public class AuthController { * @param body 登录信息 * @return 结果 */ - @ApiEncrypt(response = true) + // @ApiEncrypt(response = true) // 临时移除加密,待完善加密实现后恢复 @PostMapping("/login") public R login(@RequestBody String body) { LoginBody loginBody = JsonUtils.parseObject(body, LoginBody.class); diff --git a/backend/ruoyi-admin/src/main/resources/application.yml b/backend/ruoyi-admin/src/main/resources/application.yml index cc5fe455..24fb3c8a 100644 --- a/backend/ruoyi-admin/src/main/resources/application.yml +++ b/backend/ruoyi-admin/src/main/resources/application.yml @@ -190,7 +190,7 @@ mybatis-encryptor: # api接口加密 api-decrypt: # 是否开启全局接口加密 - enabled: true + enabled: true # 恢复为true,保持其他接口的安全性 # AES 加密头标识 headerFlag: encrypt-key # 响应加密公钥 非对称算法的公私钥 如:SM2,RSA 使用者请自行更换 diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/SqlUpdateController.java b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/SqlUpdateController.java index d7f476b2..ce22c297 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/SqlUpdateController.java +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/SqlUpdateController.java @@ -1,18 +1,15 @@ package org.dromara.rs.controller; import org.dromara.common.core.domain.R; +import org.dromara.rs.mapper.RsSystemMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.sql.DataSource; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; -import java.sql.Connection; -import java.sql.SQLException; -import java.sql.Statement; import java.util.HashMap; import java.util.Map; @@ -27,7 +24,7 @@ import java.util.Map; public class SqlUpdateController { @Autowired - private DataSource dataSource; + private RsSystemMapper rsSystemMapper; /** * 执行培训模块SQL更新脚本 @@ -57,7 +54,10 @@ public class SqlUpdateController { // 如果是SQL语句结束 if (line.trim().endsWith(";")) { - String sql = sb.toString(); + String sql = sb.toString().trim(); + if (sql.endsWith(";")) { + sql = sql.substring(0, sql.length() - 1); // 移除分号,MyBatis会自动处理 + } executeSql(sql); sb = new StringBuilder(); } @@ -77,16 +77,12 @@ public class SqlUpdateController { /** * 执行单条SQL语句 */ - private void executeSql(String sql) throws SQLException { - try (Connection conn = dataSource.getConnection(); - Statement stmt = conn.createStatement()) { - // 忽略SQL错误(如字段已存在) + private void executeSql(String sql) { try { - stmt.execute(sql); - } catch (SQLException e) { + rsSystemMapper.executeSql(sql); + } catch (Exception e) { // 记录错误但继续执行 System.out.println("SQL执行警告: " + e.getMessage()); - } } } } \ No newline at end of file diff --git a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/util/SqlScriptRunner.java b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/util/SqlScriptRunner.java index 90dcfc39..d473d69c 100644 --- a/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/util/SqlScriptRunner.java +++ b/backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/util/SqlScriptRunner.java @@ -1,13 +1,12 @@ package org.dromara.rs.util; +import org.dromara.rs.mapper.RsSystemMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ClassPathResource; -import org.springframework.jdbc.datasource.init.ScriptUtils; import org.springframework.stereotype.Component; -import javax.sql.DataSource; -import java.sql.Connection; -import java.sql.SQLException; +import java.io.BufferedReader; +import java.io.InputStreamReader; /** * SQL脚本执行工具 @@ -16,17 +15,41 @@ import java.sql.SQLException; public class SqlScriptRunner { @Autowired - private DataSource dataSource; + private RsSystemMapper rsSystemMapper; /** * 执行SQL脚本 * * @param scriptPath 脚本路径(相对于classpath) - * @throws SQLException SQL执行异常 + * @throws Exception 执行异常 */ - public void executeScript(String scriptPath) throws SQLException { - try (Connection connection = dataSource.getConnection()) { - ScriptUtils.executeSqlScript(connection, new ClassPathResource(scriptPath)); + public void executeScript(String scriptPath) throws Exception { + ClassPathResource resource = new ClassPathResource(scriptPath); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(resource.getInputStream()))) { + StringBuilder sb = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + // 忽略注释行和空行 + if (line.trim().startsWith("--") || line.trim().isEmpty()) { + continue; + } + sb.append(line); + + // 如果是SQL语句结束 + if (line.trim().endsWith(";")) { + String sql = sb.toString().trim(); + if (sql.endsWith(";")) { + sql = sql.substring(0, sql.length() - 1); // 移除分号,MyBatis会自动处理 + } + try { + rsSystemMapper.executeSql(sql); + } catch (Exception e) { + // 记录错误但继续执行 + System.out.println("SQL执行警告: " + e.getMessage()); + } + sb = new StringBuilder(); + } + } } } } \ No newline at end of file diff --git a/web/src/views/rs/overseasApproval/index.vue b/web/src/views/rs/overseasApproval/index.vue index 4b397ffc..8b7aa0d1 100644 --- a/web/src/views/rs/overseasApproval/index.vue +++ b/web/src/views/rs/overseasApproval/index.vue @@ -353,6 +353,9 @@