diff --git a/beacon-common/pom.xml b/beacon-common/pom.xml index 68a9389..6f3be0d 100644 --- a/beacon-common/pom.xml +++ b/beacon-common/pom.xml @@ -24,6 +24,16 @@ org.springframework.cloud spring-cloud-starter-openfeign + + com.fasterxml.jackson.core + jackson-databind + 2.12.5 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + 2.12.5 + \ No newline at end of file diff --git a/beacon-common/src/main/java/com/mashibing/common/pojo/StandardSubmit.java b/beacon-common/src/main/java/com/mashibing/common/pojo/StandardSubmit.java index b638864..76f8dac 100644 --- a/beacon-common/src/main/java/com/mashibing/common/pojo/StandardSubmit.java +++ b/beacon-common/src/main/java/com/mashibing/common/pojo/StandardSubmit.java @@ -1,5 +1,9 @@ package com.mashibing.common.pojo; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import com.mashibing.common.annotation.Description; import lombok.AllArgsConstructor; import lombok.Data; @@ -44,6 +48,8 @@ public class StandardSubmit implements Serializable { @Description("短信内容") private String text; + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) @Description("短信的发送时间") private LocalDateTime sendTime; diff --git a/beacon-common/src/main/java/com/mashibing/common/utils/JsonUtil.java b/beacon-common/src/main/java/com/mashibing/common/utils/JsonUtil.java new file mode 100644 index 0000000..cf5301c --- /dev/null +++ b/beacon-common/src/main/java/com/mashibing/common/utils/JsonUtil.java @@ -0,0 +1,24 @@ +package com.mashibing.common.utils; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +/** + * @author heqijun + * @ClassName: JsonUtil + * @Description: TODO(这里用一句话描述这个类的作用) + * @date 2025/6/12 18:46 + */ + +public class JsonUtil { + + private static ObjectMapper objectMapper = new ObjectMapper(); + + public static String obj2Json(Object obj) { + try { + return objectMapper.writeValueAsString(obj); + } catch (JsonProcessingException e) { + throw new RuntimeException("转换JSON失败!!!"); + } + } +} diff --git a/beacon-search/src/main/java/com/mashibing/search/mq/SmsWriteLogListener.java b/beacon-search/src/main/java/com/mashibing/search/mq/SmsWriteLogListener.java index 7eaa2df..2758395 100644 --- a/beacon-search/src/main/java/com/mashibing/search/mq/SmsWriteLogListener.java +++ b/beacon-search/src/main/java/com/mashibing/search/mq/SmsWriteLogListener.java @@ -2,13 +2,17 @@ package com.mashibing.search.mq; import com.mashibing.common.constant.RabbitMQConstant; import com.mashibing.common.pojo.StandardSubmit; +import com.mashibing.common.utils.JsonUtil; +import com.mashibing.search.service.SearchService; import com.rabbitmq.client.Channel; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; +import java.time.LocalDateTime; /** * @author heqijun @@ -21,10 +25,21 @@ import java.io.IOException; @Component public class SmsWriteLogListener { + @Autowired + SearchService searchService; + + private final String INDEX = "sms_submit_log_"; + + @RabbitListener(queues = {RabbitMQConstant.SMS_WRITE_LOG}) public void process(StandardSubmit submit, Channel channel, Message message) throws IOException { log.info("接收到存储日志的信息,submit={}", submit); + String sequenceId = submit.getSequenceId().toString(); + String json = JsonUtil.obj2Json(submit); + String year = LocalDateTime.now().getYear() + ""; + searchService.index(INDEX + year, sequenceId, json); + //手动ack channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); diff --git a/beacon-strategy/src/main/java/com/mashibing/strategy/service/strategyfilter/impl/BlackClientStrategyFilter.java b/beacon-strategy/src/main/java/com/mashibing/strategy/service/strategyfilter/impl/BlackClientStrategyFilter.java index 0b7c581..f2bc033 100644 --- a/beacon-strategy/src/main/java/com/mashibing/strategy/service/strategyfilter/impl/BlackClientStrategyFilter.java +++ b/beacon-strategy/src/main/java/com/mashibing/strategy/service/strategyfilter/impl/BlackClientStrategyFilter.java @@ -40,6 +40,7 @@ public class BlackClientStrategyFilter implements StrategyFilter { String value = cacheClient.get(CacheConstant.BLACK + clientId + CacheConstant.COLON + mobile); if (IN_BLACK.equals(value)) { log.info("【策略模块-客户黑名单校验】当前手机号:{}是客户黑名单!", mobile); + submit.setErrorMsg(ExceptionEnums.BLACK_CLIENT.getMsg()); strategyCheckFailedUtil.smsSendLog(submit, STRATEGY_NAME); strategyCheckFailedUtil.smsPushReport(submit, STRATEGY_NAME); throw new StrategyException(ExceptionEnums.BLACK_CLIENT); diff --git a/beacon-strategy/src/main/java/com/mashibing/strategy/service/strategyfilter/impl/BlackGlobalStrategyFilter.java b/beacon-strategy/src/main/java/com/mashibing/strategy/service/strategyfilter/impl/BlackGlobalStrategyFilter.java index f4a7cef..06f3bb2 100644 --- a/beacon-strategy/src/main/java/com/mashibing/strategy/service/strategyfilter/impl/BlackGlobalStrategyFilter.java +++ b/beacon-strategy/src/main/java/com/mashibing/strategy/service/strategyfilter/impl/BlackGlobalStrategyFilter.java @@ -40,6 +40,7 @@ public class BlackGlobalStrategyFilter implements StrategyFilter { String value = cacheClient.get(CacheConstant.BLACK + mobile); if (IN_BLACK.equals(value)) { log.info("【策略模块-全局黑名单校验】当前手机号:{}是全局黑名单!", mobile); + submit.setErrorMsg(ExceptionEnums.BLACK_GLOBAL.getMsg()); strategyCheckFailedUtil.smsSendLog(submit, STRATEGY_NAME); strategyCheckFailedUtil.smsPushReport(submit, STRATEGY_NAME); throw new StrategyException(ExceptionEnums.BLACK_GLOBAL);