diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamProjectServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamProjectServiceImpl.java index 4608a74d..294193ff 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamProjectServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/EamProjectServiceImpl.java @@ -44,6 +44,7 @@ import jakarta.mail.internet.MimeMessage; import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServletResponse; import java.io.*; +import java.net.InetAddress; import java.net.URLEncoder; import java.sql.CallableStatement; import java.sql.Connection; @@ -74,6 +75,9 @@ public class EamProjectServiceImpl implements EamProjectService { @Value("${sys-file.file-path}") private String filePath; + @Value("${spring.datasource.druid.url}") + private String datasourceUrl; + @Autowired private EamProjectMapper EamProjectMapper; @@ -1034,6 +1038,38 @@ public class EamProjectServiceImpl implements EamProjectService { // 创建 StringBuilder 对象 StringBuilder s = new StringBuilder(); s.append("
    "); + + // 获取服务器IP地址 + String serverIp = ""; + try { + serverIp = InetAddress.getLocalHost().getHostAddress(); + } catch (Exception e) { + serverIp = "无法获取"; + logger.error("获取服务器IP失败: " + e.getMessage(), e); + } + + // 从数据库URL中解析数据库名称 + String databaseName = ""; + try { + if (datasourceUrl != null && datasourceUrl.contains("databaseName=")) { + databaseName = datasourceUrl.substring(datasourceUrl.indexOf("databaseName=") + "databaseName=".length()); + // 如果URL后面还有其他参数,需要截取 + if (databaseName.contains(";")) { + databaseName = databaseName.substring(0, databaseName.indexOf(";")); + } + } else { + databaseName = "无法获取"; + } + } catch (Exception e) { + databaseName = "无法获取"; + logger.error("解析数据库名称失败: " + e.getMessage(), e); + } + + // 添加服务器信息和数据库信息 + s.append("

    服务器IP地址: ").append(serverIp).append("

    "); + s.append("

    数据库名称: ").append(databaseName).append("

    "); + s.append("
    "); + // 邮件内容模板 s.append(""); s.append("");