api模块补齐sendTime+策略模块自定义异常+standardSubmit对象添加属性+策略模块消费消息功能完善

main
heqijun 3 months ago
parent b40a765165
commit 53c2193cd7

@ -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);

@ -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;

@ -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();
}
}

@ -68,6 +68,9 @@ public class StandardSubmit implements Serializable {
@Description("短信的发送状态, 0-等待ing1-成功2-失败")
private int reportState;
@Description("短信发送失败原因")
private String errorMsg;
@Description("apikey")
private String apikey;

@ -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);
}
}
}

Loading…
Cancel
Save