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) {