From 53c2193cd7847411b52bad8531330462fc57d7bc Mon Sep 17 00:00:00 2001 From: heqijun Date: Tue, 10 Jun 2025 14:34:28 +0800 Subject: [PATCH] =?UTF-8?q?api=E6=A8=A1=E5=9D=97=E8=A1=A5=E9=BD=90sendTime?= =?UTF-8?q?+=E7=AD=96=E7=95=A5=E6=A8=A1=E5=9D=97=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E5=BC=82=E5=B8=B8+standardSubmit=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B1=9E=E6=80=A7+=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=B6=88=E8=B4=B9=E6=B6=88=E6=81=AF=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/SMSController.java | 12 ++++---- .../common/enums/ExceptionEnums.java | 6 ++-- .../common/exception/StrategyException.java | 30 +++++++++++++++++++ .../mashibing/common/pojo/StandardSubmit.java | 3 ++ .../strategy/mq/PreSendListener.java | 7 +++-- 5 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 beacon-common/src/main/java/com/mashibing/common/exception/StrategyException.java diff --git a/beacon-api/src/main/java/com/mashibing/api/controller/SMSController.java b/beacon-api/src/main/java/com/mashibing/api/controller/SMSController.java index e8d4aa8..2b34d1d 100644 --- a/beacon-api/src/main/java/com/mashibing/api/controller/SMSController.java +++ b/beacon-api/src/main/java/com/mashibing/api/controller/SMSController.java @@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import java.time.LocalDateTime; /** * @author heqijun @@ -49,15 +50,16 @@ public class SMSController { @PostMapping("singleSend") public JsonResult singleSend(@RequestBody @Validated SingleSendRequest request, HttpServletRequest httpServletRequest) { - // 获取真实ip - String realIp = smsService.getRealIP(httpServletRequest); - - log.info("获取到客户端真实IP: {}", realIp); // 构建StandardSubmit StandardSubmit standardSubmit = new StandardSubmit(); - standardSubmit.setRealIp(realIp); BeanUtils.copyProperties(request, standardSubmit); + standardSubmit.setSendTime(LocalDateTime.now()); + + // 获取真实ip + String realIp = smsService.getRealIP(httpServletRequest); + log.info("获取到客户端真实IP: {}", realIp); + standardSubmit.setRealIp(realIp); // 责任链校验 sendCheckContext.check(standardSubmit); diff --git a/beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java b/beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java index 031c27f..0a12283 100644 --- a/beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java +++ b/beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java @@ -17,8 +17,10 @@ public enum ExceptionEnums { ERROR_TEMPLATE(-4, "无可用模板"), ERROR_MOBILE(-5, "手机号格式不正确"), BALANCE_NOT_ENOUGH(-6, "客户余额不足"), - SNOWFLAKE_OUT_OF_RANGE(-10, "机器id超过最大范围!"), - SNOWFLAKE_TIME_BACK(-11, "雪花算法出现时间回拨!!!") + PARAMETER_ERROR(-10, "参数不合法!"), + SNOWFLAKE_OUT_OF_RANGE(-11, "机器id超过最大范围!"), + SNOWFLAKE_TIME_BACK(-12, "雪花算法出现时间回拨!!!"), + HAVE_DIRTY_WORD(-13, "短信中包含敏感词信息!!"), ; private int code; diff --git a/beacon-common/src/main/java/com/mashibing/common/exception/StrategyException.java b/beacon-common/src/main/java/com/mashibing/common/exception/StrategyException.java new file mode 100644 index 0000000..9f76fd6 --- /dev/null +++ b/beacon-common/src/main/java/com/mashibing/common/exception/StrategyException.java @@ -0,0 +1,30 @@ +package com.mashibing.common.exception; + +import com.mashibing.common.enums.ExceptionEnums; +import lombok.Getter; + +/** + * @author heqijun + * @ClassName: StrategyException + * @Description: 策略模块自定义异常 + * @date 2025/6/10 13:57 + */ + +@Getter +public class StrategyException extends RuntimeException { + private static final long serialVersionUID = 1L; + + private final Integer code; + + public StrategyException(Integer code, String message) { + super(message); + this.code = code; + } + + public StrategyException(ExceptionEnums exceptionEnums) { + super(exceptionEnums.getMsg()); + this.code = exceptionEnums.getCode(); + } + + +} 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 032426a..99db7b7 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 @@ -68,6 +68,9 @@ public class StandardSubmit implements Serializable { @Description("短信的发送状态, 0-等待ing,1-成功,2-失败") private int reportState; + @Description("短信发送失败原因") + private String errorMsg; + @Description("apikey") private String apikey; diff --git a/beacon-strategy/src/main/java/com/mashibing/strategy/mq/PreSendListener.java b/beacon-strategy/src/main/java/com/mashibing/strategy/mq/PreSendListener.java index b2c9b80..3541adf 100644 --- a/beacon-strategy/src/main/java/com/mashibing/strategy/mq/PreSendListener.java +++ b/beacon-strategy/src/main/java/com/mashibing/strategy/mq/PreSendListener.java @@ -1,6 +1,7 @@ package com.mashibing.strategy.mq; import com.mashibing.common.constant.RabbitMQConstant; +import com.mashibing.common.exception.StrategyException; import com.mashibing.common.pojo.StandardSubmit; import com.mashibing.strategy.service.strategyfilter.StrategyFilterContext; import com.rabbitmq.client.Channel; @@ -34,9 +35,9 @@ public class PreSendListener { strategyFilterContext.strategy(standardSubmit); log.info("【策略模块-接收消息】消息消费完毕,手动ack"); channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); - } catch (IOException e) { - log.info("【策略模块-接收消息】消息消费失败!!!!!!!"); - e.printStackTrace(); + } catch (StrategyException e) { + log.info("【策略模块-接收消息】消息消费失败!!!错误信息:{}", e.getMessage()); + channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); } } }