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 @@