diff --git a/austin-common/pom.xml b/austin-common/pom.xml index 067e788..3641e84 100644 --- a/austin-common/pom.xml +++ b/austin-common/pom.xml @@ -17,6 +17,11 @@ org.projectlombok lombok + + + com.alibaba.fastjson2 + fastjson2 + \ No newline at end of file diff --git a/austin-common/src/main/java/com/java3y/austin/common/dto/model/ContentModel.java b/austin-common/src/main/java/com/java3y/austin/common/dto/model/ContentModel.java index f71a0af..76c6892 100644 --- a/austin-common/src/main/java/com/java3y/austin/common/dto/model/ContentModel.java +++ b/austin-common/src/main/java/com/java3y/austin/common/dto/model/ContentModel.java @@ -1,5 +1,7 @@ package com.java3y.austin.common.dto.model; +import com.alibaba.fastjson2.annotation.JSONType; + import java.io.Serializable; /** @@ -8,6 +10,20 @@ import java.io.Serializable; * * @author 3y */ +@JSONType(seeAlso = { + EmailContentModel.class, + SmsContentModel.class, + PushContentModel.class, + OfficialAccountsContentModel.class, + MiniProgramContentModel.class, + AlipayMiniProgramContentModel.class, + EnterpriseWeChatContentModel.class, + EnterpriseWeChatRobotContentModel.class, + FeiShuRobotContentModel.class, + DingDingRobotContentModel.class, + DingDingWorkContentModel.class, + ImContentModel.class +}) public class ContentModel implements Serializable { diff --git a/austin-cron/src/main/java/com/java3y/austin/cron/config/CronAsyncThreadPoolConfig.java b/austin-cron/src/main/java/com/java3y/austin/cron/config/CronAsyncThreadPoolConfig.java index 670221c..f28662a 100644 --- a/austin-cron/src/main/java/com/java3y/austin/cron/config/CronAsyncThreadPoolConfig.java +++ b/austin-cron/src/main/java/com/java3y/austin/cron/config/CronAsyncThreadPoolConfig.java @@ -1,10 +1,10 @@ package com.java3y.austin.cron.config; import cn.hutool.core.thread.ExecutorBuilder; -import com.dtp.common.em.QueueTypeEnum; -import com.dtp.common.em.RejectedTypeEnum; -import com.dtp.core.thread.DtpExecutor; -import com.dtp.core.thread.ThreadPoolBuilder; +import org.dromara.dynamictp.common.em.QueueTypeEnum; +import org.dromara.dynamictp.common.em.RejectedTypeEnum; +import org.dromara.dynamictp.core.executor.DtpExecutor; +import org.dromara.dynamictp.core.support.ThreadPoolBuilder; import com.java3y.austin.common.constant.ThreadPoolConstant; import java.util.concurrent.ExecutorService; diff --git a/austin-cron/src/main/java/com/java3y/austin/cron/handler/CronTaskHandler.java b/austin-cron/src/main/java/com/java3y/austin/cron/handler/CronTaskHandler.java index 0c8efbd..ca9cfeb 100644 --- a/austin-cron/src/main/java/com/java3y/austin/cron/handler/CronTaskHandler.java +++ b/austin-cron/src/main/java/com/java3y/austin/cron/handler/CronTaskHandler.java @@ -1,6 +1,6 @@ package com.java3y.austin.cron.handler; -import com.dtp.core.thread.DtpExecutor; +import org.dromara.dynamictp.core.executor.DtpExecutor; import com.java3y.austin.cron.config.CronAsyncThreadPoolConfig; import com.java3y.austin.cron.service.TaskHandler; import com.java3y.austin.support.utils.ThreadPoolUtils; diff --git a/austin-handler/pom.xml b/austin-handler/pom.xml index 28601fb..ed2ce5b 100644 --- a/austin-handler/pom.xml +++ b/austin-handler/pom.xml @@ -34,10 +34,10 @@ - + - com.sun.mail - javax.mail + org.springframework.boot + spring-boot-starter-mail diff --git a/austin-handler/src/main/java/com/java3y/austin/handler/config/HandlerThreadPoolConfig.java b/austin-handler/src/main/java/com/java3y/austin/handler/config/HandlerThreadPoolConfig.java index ea785ea..edcc044 100644 --- a/austin-handler/src/main/java/com/java3y/austin/handler/config/HandlerThreadPoolConfig.java +++ b/austin-handler/src/main/java/com/java3y/austin/handler/config/HandlerThreadPoolConfig.java @@ -1,9 +1,9 @@ package com.java3y.austin.handler.config; -import com.dtp.common.em.QueueTypeEnum; -import com.dtp.common.em.RejectedTypeEnum; -import com.dtp.core.thread.DtpExecutor; -import com.dtp.core.thread.ThreadPoolBuilder; +import org.dromara.dynamictp.common.em.QueueTypeEnum; +import org.dromara.dynamictp.common.em.RejectedTypeEnum; +import org.dromara.dynamictp.core.executor.DtpExecutor; +import org.dromara.dynamictp.core.support.ThreadPoolBuilder; import com.java3y.austin.common.constant.ThreadPoolConstant; import java.util.concurrent.TimeUnit; diff --git a/austin-handler/src/main/java/com/java3y/austin/handler/handler/impl/EmailHandler.java b/austin-handler/src/main/java/com/java3y/austin/handler/handler/impl/EmailHandler.java index 0640f84..f2c195a 100644 --- a/austin-handler/src/main/java/com/java3y/austin/handler/handler/impl/EmailHandler.java +++ b/austin-handler/src/main/java/com/java3y/austin/handler/handler/impl/EmailHandler.java @@ -17,7 +17,6 @@ import com.java3y.austin.handler.flowcontrol.FlowControlParam; import com.java3y.austin.handler.handler.BaseHandler; import com.java3y.austin.support.utils.AccountUtils; import com.java3y.austin.support.utils.AustinFileUtils; -import com.sun.mail.util.MailSSLSocketFactory; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -80,9 +79,11 @@ public class EmailHandler extends BaseHandler{ private MailAccount getAccountConfig(Integer sendAccount) { MailAccount account = accountUtils.getAccountById(sendAccount, MailAccount.class); try { - MailSSLSocketFactory sf = new MailSSLSocketFactory(); - sf.setTrustAllHosts(true); - account.setAuth(account.isAuth()).setStarttlsEnable(account.isStarttlsEnable()).setSslEnable(account.isSslEnable()).setCustomProperty("mail.smtp.ssl.socketFactory", sf); + account.setAuth(account.isAuth()) + .setStarttlsEnable(account.isStarttlsEnable()) + .setSslEnable(account.isSslEnable()) + .setCustomProperty("mail.smtp.ssl.trust", "*") // 信任所有主机 + .setCustomProperty("mail.smtp.ssl.checkserveridentity", "false"); // 禁用服务器身份验证 account.setTimeout(25000).setConnectionTimeout(25000); } catch (Exception e) { log.error("EmailHandler#getAccount fail!{}", Throwables.getStackTraceAsString(e)); diff --git a/austin-handler/src/main/java/com/java3y/austin/handler/pending/TaskPendingHolder.java b/austin-handler/src/main/java/com/java3y/austin/handler/pending/TaskPendingHolder.java index 1965450..d5b487b 100644 --- a/austin-handler/src/main/java/com/java3y/austin/handler/pending/TaskPendingHolder.java +++ b/austin-handler/src/main/java/com/java3y/austin/handler/pending/TaskPendingHolder.java @@ -1,7 +1,7 @@ package com.java3y.austin.handler.pending; -import com.dtp.core.DtpRegistry; -import com.dtp.core.thread.DtpExecutor; +import org.dromara.dynamictp.core.DtpRegistry; +import org.dromara.dynamictp.core.executor.DtpExecutor; import com.java3y.austin.handler.config.HandlerThreadPoolConfig; import com.java3y.austin.handler.utils.GroupIdMappingUtils; import com.java3y.austin.support.utils.ThreadPoolUtils; @@ -9,9 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.concurrent.ExecutorService; @@ -52,7 +50,7 @@ public class TaskPendingHolder { * @return */ public ExecutorService route(String groupId) { - return DtpRegistry.getExecutor(HandlerThreadPoolConfig.PRE_FIX + groupId); + return (ExecutorService) DtpRegistry.getExecutor(HandlerThreadPoolConfig.PRE_FIX + groupId); } diff --git a/austin-handler/src/main/java/com/java3y/austin/handler/receiver/kafka/ReceiverStart.java b/austin-handler/src/main/java/com/java3y/austin/handler/receiver/kafka/KafkaConsumerConfig.java similarity index 51% rename from austin-handler/src/main/java/com/java3y/austin/handler/receiver/kafka/ReceiverStart.java rename to austin-handler/src/main/java/com/java3y/austin/handler/receiver/kafka/KafkaConsumerConfig.java index cc9aea9..7c9b792 100644 --- a/austin-handler/src/main/java/com/java3y/austin/handler/receiver/kafka/ReceiverStart.java +++ b/austin-handler/src/main/java/com/java3y/austin/handler/receiver/kafka/KafkaConsumerConfig.java @@ -5,60 +5,69 @@ import com.java3y.austin.handler.utils.GroupIdMappingUtils; import com.java3y.austin.support.constans.MessageQueuePipeline; import lombok.extern.slf4j.Slf4j; import org.apache.kafka.common.header.Header; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.beans.factory.SmartInitializingSingleton; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.kafka.annotation.KafkaListenerAnnotationBeanPostProcessor; import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory; import org.springframework.kafka.core.ConsumerFactory; -import org.springframework.stereotype.Service; -import javax.annotation.PostConstruct; import java.lang.reflect.Method; import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Optional; +import java.util.concurrent.atomic.AtomicInteger; /** - * 启动消费者 + * Kafka 消费者配置类 + * 负责配置 Kafka 监听器相关的 Bean 和初始化 Receiver 实例 * * @author 3y - * @date 2021/12/4 */ -@Service +@Configuration @ConditionalOnProperty(name = "austin.mq.pipeline", havingValue = MessageQueuePipeline.KAFKA) @Slf4j -public class ReceiverStart { +public class KafkaConsumerConfig implements SmartInitializingSingleton { /** - * receiver的消费方法常量 + * receiver 的消费方法常量 */ private static final String RECEIVER_METHOD_NAME = "Receiver.consumer"; + /** - * 获取得到所有的groupId + * 获取得到所有的 groupId */ private static final List GROUP_IDS = GroupIdMappingUtils.getAllGroupIds(); + /** - * 下标(用于迭代groupIds位置) + * 下标(用于迭代 groupIds 位置),使用 AtomicInteger 解决并发问题 */ - private static Integer index = 0; - @Autowired - private ApplicationContext context; - @Autowired - private ConsumerFactory consumerFactory; + private static final AtomicInteger index = new AtomicInteger(0); + + private final ApplicationContext applicationContext; + public KafkaConsumerConfig(ApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } /** - * 给每个Receiver对象的consumer方法 @KafkaListener赋值相应的groupId + * 给每个 Receiver 对象的 consumer 方法 @KafkaListener 赋值相应的 groupId + * + * @return AnnotationEnhancer */ @Bean public static KafkaListenerAnnotationBeanPostProcessor.AnnotationEnhancer groupIdEnhancer() { return (attrs, element) -> { if (element instanceof Method) { - String name = ((Method) element).getDeclaringClass().getSimpleName() + StrPool.DOT + ((Method) element).getName(); + String name = ((Method) element).getDeclaringClass().getSimpleName() + + StrPool.DOT + ((Method) element).getName(); if (RECEIVER_METHOD_NAME.equals(name)) { - attrs.put("groupId", GROUP_IDS.get(index++)); + int currentIndex = index.getAndIncrement(); + if (currentIndex < GROUP_IDS.size()) { + attrs.put("groupId", GROUP_IDS.get(currentIndex)); + } } } return attrs; @@ -66,25 +75,22 @@ public class ReceiverStart { } /** - * 为每个渠道不同的消息类型 创建一个Receiver对象 - */ - @PostConstruct - public void init() { - for (int i = 0; i < GROUP_IDS.size(); i++) { - context.getBean(Receiver.class); - } - } - - /** - * 针对tag消息过滤 - * producer 将tag写进header里 - * - * @return true 消息将会被丢弃 + * 针对 tag 消息过滤的容器工厂 + * producer 将 tag 写进 header 里 + * + * @param consumerFactory Kafka 消费者工厂 + * @param tagIdKey tagId 的 key + * @param tagIdValue tagId 的 value + * @return 配置好的容器工厂 */ @Bean - public ConcurrentKafkaListenerContainerFactory filterContainerFactory(@Value("${austin.business.tagId.key}") String tagIdKey, - @Value("${austin.business.tagId.value}") String tagIdValue) { - ConcurrentKafkaListenerContainerFactory factory = new ConcurrentKafkaListenerContainerFactory<>(); + public ConcurrentKafkaListenerContainerFactory filterContainerFactory( + ConsumerFactory consumerFactory, + @Value("${austin.business.tagId.key}") String tagIdKey, + @Value("${austin.business.tagId.value}") String tagIdValue) { + + ConcurrentKafkaListenerContainerFactory factory = + new ConcurrentKafkaListenerContainerFactory<>(); factory.setConsumerFactory(consumerFactory); factory.setAckDiscarded(true); @@ -101,4 +107,16 @@ public class ReceiverStart { }); return factory; } + + /** + * 在所有单例 Bean 初始化完成后,为每个渠道不同的消息类型创建一个 Receiver 对象 + */ + @Override + public void afterSingletonsInstantiated() { + log.info("开始初始化 Receiver 实例,需要创建 {} 个实例", GROUP_IDS.size()); + for (int i = 0; i < GROUP_IDS.size(); i++) { + applicationContext.getBean(Receiver.class); + } + log.info("Receiver 实例初始化完成"); + } } diff --git a/austin-support/pom.xml b/austin-support/pom.xml index e9a9c97..54082ef 100644 --- a/austin-support/pom.xml +++ b/austin-support/pom.xml @@ -94,10 +94,9 @@ - io.github.lyh200 + org.dromara.dynamictp dynamic-tp-spring-boot-starter-apollo - org.springframework.amqp spring-rabbit diff --git a/austin-support/src/main/java/com/java3y/austin/support/domain/ChannelAccount.java b/austin-support/src/main/java/com/java3y/austin/support/domain/ChannelAccount.java index fc72ccf..ddb057b 100644 --- a/austin-support/src/main/java/com/java3y/austin/support/domain/ChannelAccount.java +++ b/austin-support/src/main/java/com/java3y/austin/support/domain/ChannelAccount.java @@ -2,10 +2,10 @@ package com.java3y.austin.support.domain; import lombok.*; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; /** * @author 3y diff --git a/austin-support/src/main/java/com/java3y/austin/support/domain/MessageTemplate.java b/austin-support/src/main/java/com/java3y/austin/support/domain/MessageTemplate.java index 717c36d..de08242 100644 --- a/austin-support/src/main/java/com/java3y/austin/support/domain/MessageTemplate.java +++ b/austin-support/src/main/java/com/java3y/austin/support/domain/MessageTemplate.java @@ -7,10 +7,10 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; import java.io.Serializable; @Data diff --git a/austin-support/src/main/java/com/java3y/austin/support/domain/SmsRecord.java b/austin-support/src/main/java/com/java3y/austin/support/domain/SmsRecord.java index f7ca74e..3b8f70c 100644 --- a/austin-support/src/main/java/com/java3y/austin/support/domain/SmsRecord.java +++ b/austin-support/src/main/java/com/java3y/austin/support/domain/SmsRecord.java @@ -5,10 +5,10 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; @Data @Builder diff --git a/austin-support/src/main/java/com/java3y/austin/support/utils/ThreadPoolUtils.java b/austin-support/src/main/java/com/java3y/austin/support/utils/ThreadPoolUtils.java index e06a111..7360730 100644 --- a/austin-support/src/main/java/com/java3y/austin/support/utils/ThreadPoolUtils.java +++ b/austin-support/src/main/java/com/java3y/austin/support/utils/ThreadPoolUtils.java @@ -1,8 +1,9 @@ package com.java3y.austin.support.utils; -import com.dtp.core.DtpRegistry; -import com.dtp.core.thread.DtpExecutor; +import org.dromara.dynamictp.core.DtpRegistry; +import org.dromara.dynamictp.core.executor.DtpExecutor; import com.java3y.austin.support.config.ThreadPoolExecutorShutdownDefinition; +import org.dromara.dynamictp.core.support.ExecutorWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -23,7 +24,7 @@ public class ThreadPoolUtils { * 2. 注册 线程池 被Spring管理,优雅关闭 */ public void register(DtpExecutor dtpExecutor) { - DtpRegistry.register(dtpExecutor, SOURCE_NAME); + DtpRegistry.registerExecutor(new ExecutorWrapper(dtpExecutor), SOURCE_NAME); shutdownDefinition.registryExecutor(dtpExecutor); } } diff --git a/austin-web/pom.xml b/austin-web/pom.xml index c9d1782..4ad2749 100644 --- a/austin-web/pom.xml +++ b/austin-web/pom.xml @@ -48,9 +48,11 @@ micrometer-registry-prometheus + - io.springfox - springfox-boot-starter + org.springdoc + springdoc-openapi-starter-webmvc-ui + 2.6.0 com.alibaba.fastjson2 diff --git a/austin-web/src/main/java/com/java3y/austin/web/aspect/AustinAspect.java b/austin-web/src/main/java/com/java3y/austin/web/aspect/AustinAspect.java index 82a7bbd..5530274 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/aspect/AustinAspect.java +++ b/austin-web/src/main/java/com/java3y/austin/web/aspect/AustinAspect.java @@ -17,8 +17,8 @@ import org.springframework.stereotype.Component; import org.springframework.validation.BindingResult; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; diff --git a/austin-web/src/main/java/com/java3y/austin/web/config/CommonConfiguration.java b/austin-web/src/main/java/com/java3y/austin/web/config/CommonConfiguration.java index 925ea16..4ec56dc 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/config/CommonConfiguration.java +++ b/austin-web/src/main/java/com/java3y/austin/web/config/CommonConfiguration.java @@ -1,34 +1,10 @@ package com.java3y.austin.web.config; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.google.common.collect.Lists; -import org.springframework.boot.autoconfigure.http.HttpMessageConverters; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; - -import java.util.List; /** - * @author kl - * @version 1.0.0 - * @description 通用配置 - * @date 2023/2/23 10:40 + * Web 层通用配置(保留为空,使用 Spring Boot 默认 Jackson 消息转换器) */ @Configuration public class CommonConfiguration { - - /** - * FastJson 消息转换器 格式化输出json - * - * @return - */ - @Bean - public HttpMessageConverters fastJsonHttpMessageConverters() { - FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); - List supportedMediaTypes = Lists.newArrayList(); - supportedMediaTypes.add(MediaType.APPLICATION_JSON); - fastConverter.setSupportedMediaTypes(supportedMediaTypes); - return new HttpMessageConverters(fastConverter); - } } diff --git a/austin-web/src/main/java/com/java3y/austin/web/config/SwaggerConfiguration.java b/austin-web/src/main/java/com/java3y/austin/web/config/SwaggerConfiguration.java index f3b543e..df5db05 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/config/SwaggerConfiguration.java +++ b/austin-web/src/main/java/com/java3y/austin/web/config/SwaggerConfiguration.java @@ -1,56 +1,11 @@ package com.java3y.austin.web.config; -import io.swagger.annotations.ApiModel; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Component; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.oas.annotations.EnableOpenApi; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.Contact; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; - +import org.springframework.context.annotation.Configuration; /** - * swagger配置类 - * - * @author 3y + * OpenAPI 使用 springdoc 自动配置,无需手写 Docket。 + * 访问:/swagger-ui/index.html 或 /v3/api-docs */ -@Component -@EnableOpenApi -@ApiModel +@Configuration public class SwaggerConfiguration { - /** - * 对C端用户的接口文档 - *

- * 地址:http://localhost:8080/swagger-ui/index.html - * - * @return - */ - @Bean - public Docket webApiDoc() { - return new Docket(DocumentationType.OAS_30) - .groupName("用户端接口文档") - .pathMapping("/") - //定义是否开启Swagger,false是关闭,可以通过变量去控制,线上关闭 - .enable(true) - //配置文档的元信息 - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.basePackage("com.java3y.austin.web.controller")) - //正则匹配请求路径,并分配到当前项目组 - //.paths(PathSelectors.ant("/api/**")) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title("austin平台") - .description("消息推送接口接口文档") - .contact(new Contact("3y", "http://gitee.com/zhongfucheng/austin", "403686131@qq.com")) - .version("v1.0") - .build(); - } - } \ No newline at end of file diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/AlipayMiniProgramController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/AlipayMiniProgramController.java index 129580b..8977438 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/AlipayMiniProgramController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/AlipayMiniProgramController.java @@ -18,8 +18,8 @@ import com.java3y.austin.web.annotation.AustinResult; import com.java3y.austin.web.exception.CommonException; import com.java3y.austin.web.utils.Convert4Amis; import com.java3y.austin.web.vo.amis.CommonAmisVo; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -40,14 +40,14 @@ import java.util.Objects; @AustinAspect @RestController @RequestMapping("/alipayMiniProgram") -@Api("支付宝小程序") +@Tag(name = "支付宝小程序") public class AlipayMiniProgramController { @Autowired private AccountUtils accountUtils; @GetMapping("/template/list") - @ApiOperation("/根据账号Id获取模板列表") + @Operation(summary = "/根据账号Id获取模板列表") @AustinResult public List queryList(Integer id) { try { @@ -95,7 +95,7 @@ public class AlipayMiniProgramController { * @return */ @PostMapping("/detailTemplate") - @ApiOperation("/根据账号Id和模板ID获取模板列表") + @Operation(summary = "/根据账号Id和模板ID获取模板列表") @AustinResult public CommonAmisVo queryDetailList(Integer id, String alipayTemplateId) { if (Objects.isNull(id) || Objects.isNull(alipayTemplateId)) { @@ -144,7 +144,7 @@ public class AlipayMiniProgramController { * @return */ @GetMapping("/sync/openid") - @ApiOperation("登录凭证校验") + @Operation(summary = "登录凭证校验") public String syncOpenId(String code, String appId, String secret) { String url = SendChanelUrlConstant.WE_CHAT_MINI_PROGRAM_OPENID_SYNC .replace("", appId).replace("", code).replace("", secret); diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/ChannelAccountController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/ChannelAccountController.java index 6879228..8ff6d9f 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/ChannelAccountController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/ChannelAccountController.java @@ -13,8 +13,8 @@ import com.java3y.austin.web.service.ChannelAccountService; import com.java3y.austin.web.utils.Convert4Amis; import com.java3y.austin.web.utils.LoginUtils; import com.java3y.austin.web.vo.amis.CommonAmisVo; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -33,7 +33,7 @@ import java.util.stream.Collectors; @AustinResult @RestController @RequestMapping("/account") -@Api("渠道账号管理接口") +@Tag(name = "渠道账号管理接口") public class ChannelAccountController { @Autowired @@ -47,7 +47,7 @@ public class ChannelAccountController { * 如果Id不存在,则保存 */ @PostMapping("/save") - @ApiOperation("/保存数据") + @Operation(summary = "/保存数据") public ChannelAccount saveOrUpdate(@RequestBody ChannelAccount channelAccount) { if (loginUtils.needLogin() && CharSequenceUtil.isBlank(channelAccount.getCreator())) { throw new CommonException(RespStatusEnum.NO_LOGIN.getCode(), RespStatusEnum.NO_LOGIN.getMsg()); @@ -61,7 +61,7 @@ public class ChannelAccountController { * 根据渠道标识查询渠道账号相关的信息 */ @GetMapping("/queryByChannelType") - @ApiOperation("/根据渠道标识查询相关的记录") + @Operation(summary = "/根据渠道标识查询相关的记录") public List query(Integer channelType, String creator) { if (loginUtils.needLogin() && CharSequenceUtil.isBlank(creator)) { throw new CommonException(RespStatusEnum.NO_LOGIN.getCode(), RespStatusEnum.NO_LOGIN.getMsg()); @@ -76,7 +76,7 @@ public class ChannelAccountController { * 所有的渠道账号信息 */ @GetMapping("/list") - @ApiOperation("/渠道账号列表信息") + @Operation(summary = "/渠道账号列表信息") public List list(String creator) { if (loginUtils.needLogin() && CharSequenceUtil.isBlank(creator)) { throw new CommonException(RespStatusEnum.NO_LOGIN.getCode(), RespStatusEnum.NO_LOGIN.getMsg()); @@ -92,7 +92,7 @@ public class ChannelAccountController { * id多个用逗号分隔开 */ @DeleteMapping("delete/{id}") - @ApiOperation("/根据Ids删除") + @Operation(summary = "/根据Ids删除") public void deleteByIds(@PathVariable("id") String id) { if (CharSequenceUtil.isNotBlank(id)) { List idList = Arrays.stream(id.split(StrPool.COMMA)).map(Long::valueOf).collect(Collectors.toList()); diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/DataController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/DataController.java index c1c00fd..d8c1948 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/DataController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/DataController.java @@ -8,8 +8,8 @@ import com.java3y.austin.web.vo.DataParam; import com.java3y.austin.web.vo.amis.EchartsVo; import com.java3y.austin.web.vo.amis.SmsTimeLineVo; import com.java3y.austin.web.vo.amis.UserTimeLineVo; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; import org.assertj.core.util.Lists; import org.springframework.beans.factory.annotation.Autowired; @@ -31,13 +31,13 @@ import java.util.Objects; @AustinResult @RestController @RequestMapping("/trace") -@Api("获取数据接口(全链路追踪)") +@Tag(name = "获取数据接口(全链路追踪)") public class DataController { @Autowired private DataService dataService; @PostMapping("/message") - @ApiOperation("/获取【72小时】发送消息的全链路数据") + @Operation(summary = "/获取【72小时】发送消息的全链路数据") public UserTimeLineVo getMessageData(@RequestBody DataParam dataParam) { if (Objects.isNull(dataParam) || CharSequenceUtil.isBlank(dataParam.getMessageId())) { return UserTimeLineVo.builder().items(new ArrayList<>()).build(); @@ -46,7 +46,7 @@ public class DataController { } @PostMapping("/user") - @ApiOperation("/获取【当天】用户接收消息的全链路数据") + @Operation(summary = "/获取【当天】用户接收消息的全链路数据") public UserTimeLineVo getUserData(@RequestBody DataParam dataParam) { if (Objects.isNull(dataParam) || CharSequenceUtil.isBlank(dataParam.getReceiver())) { return UserTimeLineVo.builder().items(new ArrayList<>()).build(); @@ -55,7 +55,7 @@ public class DataController { } @PostMapping("/messageTemplate") - @ApiOperation("/获取消息模板全链路数据") + @Operation(summary = "/获取消息模板全链路数据") public EchartsVo getMessageTemplateData(@RequestBody DataParam dataParam) { EchartsVo echartsVo = EchartsVo.builder().build(); if (CharSequenceUtil.isNotBlank(dataParam.getBusinessId())) { @@ -65,7 +65,7 @@ public class DataController { } @PostMapping("/sms") - @ApiOperation("/获取短信下发数据") + @Operation(summary = "/获取短信下发数据") public SmsTimeLineVo getSmsData(@RequestBody DataParam dataParam) { if (Objects.isNull(dataParam) || Objects.isNull(dataParam.getDateTime()) || CharSequenceUtil.isBlank(dataParam.getReceiver())) { return SmsTimeLineVo.builder().items(Lists.newArrayList()).build(); diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/HealthController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/HealthController.java index 8f582cc..5fe334d 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/HealthController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/HealthController.java @@ -1,8 +1,8 @@ package com.java3y.austin.web.controller; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -14,10 +14,10 @@ import org.springframework.web.bind.annotation.RestController; */ @Slf4j @RestController -@Api("健康检测") +@Tag(name = "健康检测") public class HealthController { @GetMapping("/") - @ApiOperation("/健康检测") + @Operation(summary = "/健康检测") public String health() { return "success"; } diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/MaterialController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/MaterialController.java index c0cf255..5bea917 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/MaterialController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/MaterialController.java @@ -5,8 +5,8 @@ import com.java3y.austin.common.enums.ChannelType; import com.java3y.austin.common.vo.BasicResultVO; import com.java3y.austin.web.annotation.AustinAspect; import com.java3y.austin.web.service.MaterialService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -25,7 +25,7 @@ import org.springframework.web.multipart.MultipartFile; @AustinAspect @RestController @RequestMapping("/material") -@Api("素材管理接口") +@Tag(name = "素材管理接口") public class MaterialController { @Autowired @@ -42,7 +42,7 @@ public class MaterialController { * @return */ @PostMapping("/upload") - @ApiOperation("/素材上传接口") + @Operation(summary = "/素材上传接口") public BasicResultVO uploadMaterial(@RequestParam("file") MultipartFile file, String sendAccount, Integer sendChannel, String fileType) { if (ChannelType.DING_DING_WORK_NOTICE.getCode().equals(sendChannel)) { return materialService.dingDingMaterialUpload(file, sendAccount, fileType); diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/MessageTemplateController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/MessageTemplateController.java index 3f046ad..a0e70ea 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/MessageTemplateController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/MessageTemplateController.java @@ -25,8 +25,8 @@ import com.java3y.austin.web.utils.LoginUtils; import com.java3y.austin.web.vo.MessageTemplateParam; import com.java3y.austin.web.vo.MessageTemplateVo; import com.java3y.austin.web.vo.amis.CommonAmisVo; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -53,7 +53,7 @@ import java.util.stream.Collectors; @AustinResult @RestController @RequestMapping("/messageTemplate") -@Api("发送消息") +@Tag(name = "发送消息") public class MessageTemplateController { @Autowired @@ -76,7 +76,7 @@ public class MessageTemplateController { * 如果Id不存在,则保存 */ @PostMapping("/save") - @ApiOperation("/保存数据") + @Operation(summary = "/保存数据") public MessageTemplate saveOrUpdate(@RequestBody MessageTemplate messageTemplate) { if (loginUtils.needLogin() && CharSequenceUtil.isBlank(messageTemplate.getCreator())) { throw new CommonException(RespStatusEnum.NO_LOGIN.getCode(), RespStatusEnum.NO_LOGIN.getMsg()); @@ -88,7 +88,7 @@ public class MessageTemplateController { * 列表数据 */ @GetMapping("/list") - @ApiOperation("/列表页") + @Operation(summary = "/列表页") public MessageTemplateVo queryList(@Validated MessageTemplateParam messageTemplateParam) { if (loginUtils.needLogin() && CharSequenceUtil.isBlank(messageTemplateParam.getCreator())) { throw new CommonException(RespStatusEnum.NO_LOGIN.getCode(), RespStatusEnum.NO_LOGIN.getMsg()); @@ -102,7 +102,7 @@ public class MessageTemplateController { * 根据Id查找 */ @GetMapping("query/{id}") - @ApiOperation("/根据Id查找") + @Operation(summary = "/根据Id查找") public Map queryById(@PathVariable("id") Long id) { return Convert4Amis.flatSingleMap(messageTemplateService.queryById(id)); } @@ -111,7 +111,7 @@ public class MessageTemplateController { * 根据Id复制 */ @PostMapping("copy/{id}") - @ApiOperation("/根据Id复制") + @Operation(summary = "/根据Id复制") public void copyById(@PathVariable("id") Long id) { messageTemplateService.copy(id); } @@ -122,7 +122,7 @@ public class MessageTemplateController { * id多个用逗号分隔开 */ @DeleteMapping("delete/{id}") - @ApiOperation("/根据Ids删除") + @Operation(summary = "/根据Ids删除") public void deleteByIds(@PathVariable("id") String id) { if (CharSequenceUtil.isNotBlank(id)) { List idList = Arrays.stream(id.split(StrPool.COMMA)).map(Long::valueOf).collect(Collectors.toList()); @@ -135,7 +135,7 @@ public class MessageTemplateController { * 测试发送接口 */ @PostMapping("test") - @ApiOperation("/测试发送接口") + @Operation(summary = "/测试发送接口") public SendResponse test(@RequestBody MessageTemplateParam messageTemplateParam) { Map variables = JSON.parseObject(messageTemplateParam.getMsgContent(), new TypeReference>() {}); @@ -152,7 +152,7 @@ public class MessageTemplateController { * 获取需要测试的模板占位符,透出给Amis */ @PostMapping("test/content") - @ApiOperation("/测试发送接口") + @Operation(summary = "/测试发送接口") public CommonAmisVo test(Long id) { MessageTemplate messageTemplate = messageTemplateService.queryById(id); return Convert4Amis.getTestContent(messageTemplate.getMsgContent()); @@ -163,7 +163,7 @@ public class MessageTemplateController { * 撤回接口(根据模板id撤回) */ @PostMapping("recall/{id}") - @ApiOperation("/撤回消息接口") + @Operation(summary = "/撤回消息接口") public SendResponse recall(@PathVariable("id") String id) { SendRequest sendRequest = SendRequest.builder().code(BusinessCode.RECALL.getCode()).messageTemplateId(Long.valueOf(id)).build(); SendResponse response = recallService.recall(sendRequest); @@ -178,7 +178,7 @@ public class MessageTemplateController { * 启动模板的定时任务 */ @PostMapping("start/{id}") - @ApiOperation("/启动模板的定时任务") + @Operation(summary = "/启动模板的定时任务") public BasicResultVO start(@RequestBody @PathVariable("id") Long id) { return messageTemplateService.startCronTask(id); } @@ -187,7 +187,7 @@ public class MessageTemplateController { * 暂停模板的定时任务 */ @PostMapping("stop/{id}") - @ApiOperation("/暂停模板的定时任务") + @Operation(summary = "/暂停模板的定时任务") public BasicResultVO stop(@RequestBody @PathVariable("id") Long id) { return messageTemplateService.stopCronTask(id); } @@ -196,7 +196,7 @@ public class MessageTemplateController { * 上传人群文件 */ @PostMapping("upload") - @ApiOperation("/上传人群文件") + @Operation(summary = "/上传人群文件") public Map upload(@RequestParam("file") MultipartFile file) { String filePath = dataPath + IdUtil.fastSimpleUUID() + file.getOriginalFilename(); try { diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/MiniProgramController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/MiniProgramController.java index c548b09..27009d6 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/MiniProgramController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/MiniProgramController.java @@ -12,8 +12,8 @@ import com.java3y.austin.web.annotation.AustinResult; import com.java3y.austin.web.exception.CommonException; import com.java3y.austin.web.utils.Convert4Amis; import com.java3y.austin.web.vo.amis.CommonAmisVo; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.bean.subscribemsg.TemplateInfo; import org.springframework.beans.factory.annotation.Autowired; @@ -35,14 +35,14 @@ import java.util.Objects; @AustinAspect @RestController @RequestMapping("/miniProgram") -@Api("微信服务号") +@Tag(name = "微信服务号") public class MiniProgramController { @Autowired private AccountUtils accountUtils; @GetMapping("/template/list") - @ApiOperation("/根据账号Id获取模板列表") + @Operation(summary = "/根据账号Id获取模板列表") @AustinResult public List queryList(Integer id) { try { @@ -67,7 +67,7 @@ public class MiniProgramController { * @return */ @PostMapping("/detailTemplate") - @ApiOperation("/根据账号Id和模板ID获取模板列表") + @Operation(summary = "/根据账号Id和模板ID获取模板列表") @AustinResult public CommonAmisVo queryDetailList(Integer id, String wxTemplateId) { if (Objects.isNull(id) || Objects.isNull(wxTemplateId)) { @@ -93,7 +93,7 @@ public class MiniProgramController { * @return */ @GetMapping("/sync/openid") - @ApiOperation("登录凭证校验") + @Operation(summary = "登录凭证校验") public String syncOpenId(String code, String appId, String secret) { String url = SendChanelUrlConstant.WE_CHAT_MINI_PROGRAM_OPENID_SYNC .replace("", appId).replace("", code).replace("", secret); diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/OfficialAccountController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/OfficialAccountController.java index bd8a7b1..7e99702 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/OfficialAccountController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/OfficialAccountController.java @@ -19,8 +19,8 @@ import com.java3y.austin.web.exception.CommonException; import com.java3y.austin.web.utils.Convert4Amis; import com.java3y.austin.web.utils.LoginUtils; import com.java3y.austin.web.vo.amis.CommonAmisVo; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; @@ -35,7 +35,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.util.*; /** @@ -47,7 +47,7 @@ import java.util.*; @AustinAspect @RequestMapping("/officialAccount") @RestController -@Api("微信服务号") +@Tag(name = "微信服务号") public class OfficialAccountController { @Autowired @@ -65,7 +65,7 @@ public class OfficialAccountController { * @return */ @GetMapping("/template/list") - @ApiOperation("/根据账号Id获取模板列表") + @Operation(summary = "/根据账号Id获取模板列表") @AustinResult public List queryList(Integer id) { try { @@ -91,7 +91,7 @@ public class OfficialAccountController { * @return */ @PostMapping("/detailTemplate") - @ApiOperation("/根据账号Id和模板ID获取模板列表") + @Operation(summary = "/根据账号Id和模板ID获取模板列表") @AustinResult public CommonAmisVo queryDetailList(Integer id, String wxTemplateId) { if (Objects.isNull(id) || Objects.isNull(wxTemplateId)) { @@ -117,7 +117,7 @@ public class OfficialAccountController { * @return */ @RequestMapping(value = "/receipt", produces = {CommonConstant.CONTENT_TYPE_XML}) - @ApiOperation("/接收微信的事件消息") + @Operation(summary = "/接收微信的事件消息") public String receiptMessage(HttpServletRequest request) { try { WeChatLoginConfig configService = loginUtils.getLoginConfig(); @@ -168,7 +168,7 @@ public class OfficialAccountController { * @return */ @PostMapping("/qrCode") - @ApiOperation("/生成 服务号 二维码") + @Operation(summary = "/生成 服务号 二维码") @AustinResult public CommonAmisVo getQrCode() { try { @@ -193,7 +193,7 @@ public class OfficialAccountController { * @return */ @RequestMapping("/check/login") - @ApiOperation("/检查是否已经登录") + @Operation(summary = "/检查是否已经登录") @AustinResult public WxMpUser checkLogin(String sceneId) { String userInfo = redisTemplate.opsForValue().get(sceneId); @@ -213,7 +213,7 @@ public class OfficialAccountController { * @return */ @RequestMapping("/delete/test/user") - @ApiOperation("/删除测试号的测试用户") + @Operation(summary = "/删除测试号的测试用户") @AustinResult public void deleteTestUser(HttpServletRequest request) { try { diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/RefreshTokenController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/RefreshTokenController.java index d6b98ef..c12da0e 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/RefreshTokenController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/RefreshTokenController.java @@ -5,8 +5,8 @@ import com.java3y.austin.common.enums.ChannelType; import com.java3y.austin.cron.handler.RefreshDingDingAccessTokenHandler; import com.java3y.austin.cron.handler.RefreshGeTuiAccessTokenHandler; import com.java3y.austin.web.annotation.AustinAspect; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.RestController; */ @AustinAspect -@Api(tags = {"手动刷新token的接口"}) +@Tag(name = "手动刷新token的接口") @RestController public class RefreshTokenController { @@ -33,7 +33,7 @@ public class RefreshTokenController { * @param channelType * @return */ - @ApiOperation(value = "手动刷新token", notes = "钉钉/个推 token刷新") + @Operation(summary = "手动刷新token", description = "钉钉/个推 token刷新") @GetMapping("/refresh") public String refresh(Integer channelType) { if (ChannelType.PUSH.getCode().equals(channelType)) { diff --git a/austin-web/src/main/java/com/java3y/austin/web/controller/SendController.java b/austin-web/src/main/java/com/java3y/austin/web/controller/SendController.java index c8a8a7e..e9e6889 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/controller/SendController.java +++ b/austin-web/src/main/java/com/java3y/austin/web/controller/SendController.java @@ -7,8 +7,8 @@ import com.java3y.austin.service.api.domain.SendResponse; import com.java3y.austin.service.api.service.RecallService; import com.java3y.austin.service.api.service.SendService; import com.java3y.austin.web.annotation.AustinAspect; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController; * @author 三歪 */ -@Api(tags = {"发送消息"}) +@Tag(name = "发送消息") @RestController @AustinAspect public class SendController { @@ -36,7 +36,7 @@ public class SendController { * @param sendRequest * @return */ - @ApiOperation(value = "下发接口", notes = "多渠道多类型下发消息,目前支持邮件和短信,类型支持:验证码、通知类、营销类。") + @Operation(summary = "下发接口", description = "多渠道多类型下发消息,目前支持邮件和短信,类型支持:验证码、通知类、营销类。") @PostMapping("/send") public SendResponse send(@RequestBody SendRequest sendRequest) { return sendService.send(sendRequest); @@ -48,7 +48,7 @@ public class SendController { * @param batchSendRequest * @return */ - @ApiOperation(value = "batch下发接口", notes = "多渠道多类型下发消息,目前支持邮件和短信,类型支持:验证码、通知类、营销类。") + @Operation(summary = "batch下发接口", description = "多渠道多类型下发消息,目前支持邮件和短信,类型支持:验证码、通知类、营销类。") @PostMapping("/batchSend") public SendResponse batchSend(@RequestBody BatchSendRequest batchSendRequest) { return sendService.batchSend(batchSendRequest); @@ -60,7 +60,7 @@ public class SendController { * @param sendRequest * @return */ - @ApiOperation(value = "撤回消息接口", notes = "优先根据messageId撤回消息,如果messageId不存在则根据模板id撤回") + @Operation(summary = "撤回消息接口", description = "优先根据messageId撤回消息,如果messageId不存在则根据模板id撤回") @PostMapping("/recall") public SendResponse recall(@RequestBody SendRequest sendRequest) { return recallService.recall(sendRequest); diff --git a/austin-web/src/main/java/com/java3y/austin/web/service/impl/MessageTemplateServiceImpl.java b/austin-web/src/main/java/com/java3y/austin/web/service/impl/MessageTemplateServiceImpl.java index d7c33f2..f9e84f7 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/service/impl/MessageTemplateServiceImpl.java +++ b/austin-web/src/main/java/com/java3y/austin/web/service/impl/MessageTemplateServiceImpl.java @@ -23,7 +23,7 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import javax.persistence.criteria.Predicate; +import jakarta.persistence.criteria.Predicate; import java.util.ArrayList; import java.util.List; import java.util.Objects; diff --git a/austin-web/src/main/java/com/java3y/austin/web/vo/MessageTemplateParam.java b/austin-web/src/main/java/com/java3y/austin/web/vo/MessageTemplateParam.java index 847c54c..9db2da1 100644 --- a/austin-web/src/main/java/com/java3y/austin/web/vo/MessageTemplateParam.java +++ b/austin-web/src/main/java/com/java3y/austin/web/vo/MessageTemplateParam.java @@ -5,7 +5,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** diff --git a/austin-web/src/main/resources/application.properties b/austin-web/src/main/resources/application.properties index ba937f0..45b9f32 100644 --- a/austin-web/src/main/resources/application.properties +++ b/austin-web/src/main/resources/application.properties @@ -3,11 +3,11 @@ spring.application.name=austin ########################################## database start ########################################## # TODO required! -# notice:mysql version 5.7x !!! +# notice:mysql version 8.x !!! spring.datasource.url=jdbc:mysql://${austin.database.ip:austin-mysql}:${austin.database.port:3306}/austin?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull spring.datasource.username=${austin.database.username:root} spring.datasource.password=${austin.database.password:root123_A} -spring.datasource.driver-class-name=com.mysql.jdbc.Driver +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.type=com.zaxxer.hikari.HikariDataSource spring.datasource.hikari.minimum-idle=10 spring.datasource.hikari.maximum-pool-size=30 @@ -22,9 +22,10 @@ spring.datasource.hikari.validation-timeout=1000 ########################################## redis start ########################################## # TODO required! -spring.redis.host=${austin.redis.ip:austin-redis} -spring.redis.port=${austin.redis.port:6379} -spring.redis.password=${austin.redis.password:austin} +spring.data.redis.host=${austin.redis.ip:austin-redis} +spring.data.redis.port=${austin.redis.port:6379} +spring.data.redis.password=${austin.redis.password:austin} +spring.data.redis.connect-timeout=20s ########################################## redis end ########################################## @@ -123,10 +124,8 @@ ok.http.write-timeout=30 ########################################## monitor start ########################################## management.endpoint.health.show-details=always -management.endpoint.metrics.enabled=true -management.endpoint.prometheus.enabled=true management.endpoints.web.exposure.include=* -management.metrics.export.prometheus.enabled=true +management.prometheus.metrics.export.enabled=true management.health.rabbit.enabled=false ########################################## monitor end ########################################## @@ -134,3 +133,4 @@ management.health.rabbit.enabled=false server.shutdown=graceful ########################################## system end ########################################## +spring.main.allow-circular-references=true \ No newline at end of file diff --git a/austin-web/src/main/resources/logback.xml b/austin-web/src/main/resources/logback.xml index 785d5cd..fff2147 100644 --- a/austin-web/src/main/resources/logback.xml +++ b/austin-web/src/main/resources/logback.xml @@ -30,14 +30,14 @@ UTF-8 - + ${log.path}/logs/austin-info-%d{yyyy-MM-dd}.%i.log.gz - - 1000MB - + 1000MB 3 + + 100GB @@ -57,13 +57,13 @@ UTF-8 - + ${log.path}/logs/austin-error-%d{yyyy-MM-dd}.%i.log.gz - - 1000MB - + 1000MB 3 + + 10GB diff --git a/pom.xml b/pom.xml index e92c6bf..1727a55 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ org.springframework.boot spring-boot-starter-parent - 2.5.6 + 3.5.7 @@ -35,23 +35,22 @@ 0.0.1-SNAPSHOT - 1.8 - 1.8 + 25 + 25 ${target.java.version} ${target.java.version} UTF-8 - 5.1.35 + 8.0.33 5.7.15 - 31.0.1-jre + 33.5.0-jre 4.9.2 2.0.60 3.1.510 0.2.12 2.1.0 1.0.4.1 - 1.6.2 3.0.0 3.0.0 2.3.0 @@ -61,7 +60,7 @@ 1.16.0 2.3.4 4.5.3.B - 1.0.2 + 1.2.2-x 4.39.19.ALL 2.0.0 2.2.2 @@ -187,13 +186,6 @@ ${log-record-starter.version} - - - com.sun.mail - javax.mail - ${javax.mail.version} - - io.springfox @@ -279,7 +271,7 @@ - io.github.lyh200 + org.dromara.dynamictp dynamic-tp-spring-boot-starter-apollo ${dynamic-tp-spring-boot-starter-apollo.version}