From 9bf01de0bbc8e5ad07cd4a77e70bc742cec91d25 Mon Sep 17 00:00:00 2001 From: tangwei Date: Thu, 9 Jul 2026 11:27:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yfd/platform/config/SwaggerConfig.java | 80 +++++++++---------- .../controller/PushConfigController.java | 7 ++ .../system/service/IPushConfigService.java | 2 + .../service/impl/PushConfigServiceImpl.java | 70 +++++++++++++--- 4 files changed, 108 insertions(+), 51 deletions(-) diff --git a/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java b/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java index 07e8b737..11b80203 100644 --- a/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java +++ b/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java @@ -14,56 +14,56 @@ import io.swagger.v3.oas.models.info.Contact; public class SwaggerConfig { - @Bean - public OpenAPI projectOpenAPI() { - return new OpenAPI() - .info(new Info() - .title("项目API 接口文档") - .version("3.0") - .description("") - .contact(new Contact().name("郑顺利").email("13910913995@163.com")) - ); - } - - // @Bean // public OpenAPI projectOpenAPI() { -// // 1. 定义第一个 Header:token -// SecurityScheme tokenScheme = new SecurityScheme() -// .type(SecurityScheme.Type.APIKEY) -// .in(SecurityScheme.In.HEADER) -// .name("token") -// .description("用户认证 Token"); -// -// // 2. 定义第二个 Header:租户ID(示例) -// SecurityScheme tenantScheme = new SecurityScheme() -// .type(SecurityScheme.Type.APIKEY) -// .in(SecurityScheme.In.HEADER) -// .name("Tenant_Id") -// .description("租户标识"); -// -// // 3. 将两个安全方案注册到 Components -// Components components = new Components() -// .addSecuritySchemes("tokenAuth", tokenScheme) -// .addSecuritySchemes("tenantAuth", tenantScheme); -// -// // 4. 创建 SecurityRequirement,同时要求两个 Header 都必须提供 -// SecurityRequirement securityRequirement = new SecurityRequirement() -// .addList("tokenAuth") // 引用 token 方案 -// .addList("tenantAuth"); // 引用 tenant 方案 -// -// // return new OpenAPI() // .info(new Info() // .title("项目API 接口文档") // .version("3.0") // .description("") // .contact(new Contact().name("郑顺利").email("13910913995@163.com")) -// ) -// .components(components) -// .addSecurityItem(securityRequirement); // 一次性添加 +// ); // } + + @Bean + public OpenAPI projectOpenAPI() { + // 1. 定义第一个 Header:token + SecurityScheme tokenScheme = new SecurityScheme() + .type(SecurityScheme.Type.APIKEY) + .in(SecurityScheme.In.HEADER) + .name("token") + .description("用户认证 Token"); + + // 2. 定义第二个 Header:租户ID(示例) + SecurityScheme tenantScheme = new SecurityScheme() + .type(SecurityScheme.Type.APIKEY) + .in(SecurityScheme.In.HEADER) + .name("Tenant_Id") + .description("租户标识"); + + // 3. 将两个安全方案注册到 Components + Components components = new Components() + .addSecuritySchemes("tokenAuth", tokenScheme) + .addSecuritySchemes("tenantAuth", tenantScheme); + + // 4. 创建 SecurityRequirement,同时要求两个 Header 都必须提供 + SecurityRequirement securityRequirement = new SecurityRequirement() + .addList("tokenAuth") // 引用 token 方案 + .addList("tenantAuth"); // 引用 tenant 方案 + + + return new OpenAPI() + .info(new Info() + .title("项目API 接口文档") + .version("3.0") + .description("") + .contact(new Contact().name("郑顺利").email("13910913995@163.com")) + ) + .components(components) + .addSecurityItem(securityRequirement); // 一次性添加 + } + // @Bean // public GroupedOpenApi groupPlatformApi() { // return GroupedOpenApi.builder() diff --git a/backend/src/main/java/com/yfd/platform/system/controller/PushConfigController.java b/backend/src/main/java/com/yfd/platform/system/controller/PushConfigController.java index 74cbdb19..06a1e4c9 100644 --- a/backend/src/main/java/com/yfd/platform/system/controller/PushConfigController.java +++ b/backend/src/main/java/com/yfd/platform/system/controller/PushConfigController.java @@ -74,6 +74,13 @@ public class PushConfigController { return pushConfigService.setPushConfigStatus(id, status) ? ResponseResult.success() : ResponseResult.error("设置失败"); } + @Log(module = "推送配置", value = "设置短信推送开关") + @Operation(summary = "设置短信推送开关") + @PostMapping("/setPushConfigSmsSwitch") + public ResponseResult setPushConfigSmsSwitch(@RequestParam String id, @RequestParam Integer isSms) { + return pushConfigService.setPushConfigSmsSwitch(id, isSms) ? ResponseResult.success() : ResponseResult.error("设置失败"); + } + @Log(module = "推送配置", value = "保存推送目标") @Operation(summary = "保存推送目标") @PostMapping("/savePushTargets") diff --git a/backend/src/main/java/com/yfd/platform/system/service/IPushConfigService.java b/backend/src/main/java/com/yfd/platform/system/service/IPushConfigService.java index a1688de6..d103ee2d 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/IPushConfigService.java +++ b/backend/src/main/java/com/yfd/platform/system/service/IPushConfigService.java @@ -27,6 +27,8 @@ public interface IPushConfigService extends IService { boolean setPushConfigStatus(String id, Integer status); + boolean setPushConfigSmsSwitch(String id, Integer isSms); + boolean savePushTargets(PushConfigTargetRequest request); List getPushTargets(String configId); diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/PushConfigServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/PushConfigServiceImpl.java index df558a96..1636eb31 100644 --- a/backend/src/main/java/com/yfd/platform/system/service/impl/PushConfigServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/system/service/impl/PushConfigServiceImpl.java @@ -29,6 +29,7 @@ import org.quartz.CronExpression; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.sql.Timestamp; import java.util.ArrayList; import java.util.Collections; import java.util.Date; @@ -93,11 +94,7 @@ public class PushConfigServiceImpl extends ServiceImpl list = quartzJobService.list(new LambdaQueryWrapper() .eq(QuartzJob::getCustom1, QUARTZ_BIZ_TYPE) .eq(QuartzJob::getCustom2, configId)); - return list.isEmpty() ? null : list.get(0); + return list.isEmpty() ? null : list.getFirst(); } private List resolveTargets(PushConfig config) {