diff --git a/yudao-dependencies/pom.xml b/yudao-dependencies/pom.xml index f5a03a90bd37ee038491dcf8ec7eb85f0e9923e7..025269a4fa4ae3d39d497d0d6e2e0fedaacc2343 100644 --- a/yudao-dependencies/pom.xml +++ b/yudao-dependencies/pom.xml @@ -31,7 +31,7 @@ 3.26.0 8.1.3.62 - 2.2.3 + 2.3.0 2.2.7 2.1.0 diff --git a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/config/YudaoRabbitMQAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/config/YudaoRabbitMQAutoConfiguration.java index 770c50ff7da4c373e6ee09a616b41a4c20e48355..af1467376424280ea12452a83dad6885a30a4371 100644 --- a/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/config/YudaoRabbitMQAutoConfiguration.java +++ b/yudao-framework/yudao-spring-boot-starter-mq/src/main/java/cn/iocoder/yudao/framework/mq/rabbitmq/config/YudaoRabbitMQAutoConfiguration.java @@ -1,12 +1,11 @@ package cn.iocoder.yudao.framework.mq.rabbitmq.config; -import cn.hutool.core.util.ReflectUtil; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.utils.SerializationUtils; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; - -import java.lang.reflect.Field; +import org.springframework.context.annotation.Bean; /** * RabbitMQ 消息队列配置类 @@ -18,12 +17,12 @@ import java.lang.reflect.Field; @ConditionalOnClass(name = "org.springframework.amqp.rabbit.core.RabbitTemplate") public class YudaoRabbitMQAutoConfiguration { - static { - // 强制设置 SerializationUtils 的 TRUST_ALL 为 true,避免 RabbitMQ Consumer 反序列化消息报错 - // 为什么不通过设置 spring.amqp.deserialization.trust.all 呢?因为可能在 SerializationUtils static 初始化后 - Field trustAllField = ReflectUtil.getField(SerializationUtils.class, "TRUST_ALL"); - ReflectUtil.removeFinalModify(trustAllField); - ReflectUtil.setFieldValue(SerializationUtils.class, trustAllField, true); + /** + * Jackson2JsonMessageConverter Bean:使用 jackson 序列化消息 + */ + @Bean + public MessageConverter createMessageConverter() { + return new Jackson2JsonMessageConverter(); } } diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/clue/CrmClueServiceImpl.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/clue/CrmClueServiceImpl.java index 70ebeb44da1ff790571721c1ffc904a508cbcd60..9724eeaf27498954efdaed098247043f465dc184 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/clue/CrmClueServiceImpl.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/clue/CrmClueServiceImpl.java @@ -120,7 +120,7 @@ public class CrmClueServiceImpl implements CrmClueService { } @Override - @LogRecord(type = CRM_CLUE_TYPE, subType = CRM_CLUE_FOLLOW_UP_SUB_TYPE, bizNo = "{{#id}", + @LogRecord(type = CRM_CLUE_TYPE, subType = CRM_CLUE_FOLLOW_UP_SUB_TYPE, bizNo = "{{#id}}", success = CRM_CLUE_FOLLOW_UP_SUCCESS) @CrmPermission(bizType = CrmBizTypeEnum.CRM_CLUE, bizId = "#id", level = CrmPermissionLevelEnum.WRITE) public void updateClueFollowUp(Long id, LocalDateTime contactNextTime, String contactLastContent) { diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/resources/mapper/statistics/CrmStatisticsCustomerMapper.xml b/yudao-module-crm/yudao-module-crm-biz/src/main/resources/mapper/statistics/CrmStatisticsCustomerMapper.xml index 7c1016dffa4bf96af87b9dce5e9b6d01bc0b2b66..dc10f12218473538b77bd04396c078d527731904 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/resources/mapper/statistics/CrmStatisticsCustomerMapper.xml +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/resources/mapper/statistics/CrmStatisticsCustomerMapper.xml @@ -243,14 +243,17 @@