From e3d7fbd5918b5f425c027debd1032a192543e005 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Tue, 2 Jun 2026 17:43:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(app):=20=E6=B7=BB=E5=8A=A0=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E7=94=9F=E6=88=90=E5=BA=94=E7=94=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在AppController中新增regenerateConfigFile接口 - 在AppService中实现重新生成配置文件的业务逻辑 - 记录重新生成配置文件的操作日志 - 在前端API中添加重新生成功能调用方法 - 在应用详情页面添加重新生成按钮和确认对话框 - 实现重新生成配置文件的前端交互逻辑 --- .../com/xuqm/tenant/controller/AppController.java | 7 +++++++ .../java/com/xuqm/tenant/service/AppService.java | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/tenant-service/src/main/java/com/xuqm/tenant/controller/AppController.java b/tenant-service/src/main/java/com/xuqm/tenant/controller/AppController.java index 1b6acf8..2a5ecbd 100644 --- a/tenant-service/src/main/java/com/xuqm/tenant/controller/AppController.java +++ b/tenant-service/src/main/java/com/xuqm/tenant/controller/AppController.java @@ -182,6 +182,13 @@ public class AppController { .body(encrypted.getBytes(java.nio.charset.StandardCharsets.UTF_8)); } + @PostMapping("/{appKey}/config-file/regenerate") + public ResponseEntity> regenerateConfigFile(@PathVariable String appKey, + @AuthenticationPrincipal String tenantId) { + appService.regenerateConfigFile(appKey, tenantId); + return ResponseEntity.ok(ApiResponse.ok()); + } + /** * Parse an uploaded config file and return its decrypted contents. * Used by the security center to verify config file information. diff --git a/tenant-service/src/main/java/com/xuqm/tenant/service/AppService.java b/tenant-service/src/main/java/com/xuqm/tenant/service/AppService.java index 4e33183..1dd1227 100644 --- a/tenant-service/src/main/java/com/xuqm/tenant/service/AppService.java +++ b/tenant-service/src/main/java/com/xuqm/tenant/service/AppService.java @@ -100,6 +100,18 @@ public class AppService { return content; } + @Transactional + public String regenerateConfigFile(String appKey, String tenantId) { + AppEntity app = getByAppKey(appKey, tenantId); + String content = generateConfigFileContent(app); + app.setConfigFileContent(content); + appRepository.save(app); + operationLogService.record(tenantId, "APP", "APP", appKey, "REGENERATE_CONFIG", + "重新生成应用「" + app.getName() + "」的 Config 文件", + Map.of("name", app.getName())); + return content; + } + public AppEntity update(String appKey, String tenantId, CreateAppRequest req) { AppEntity app = getByAppKey(appKey, tenantId); Map before = new LinkedHashMap<>();