fix(sms): 电信回执 status=6(MA:0038 限流)纳入失败映射,不再静默丢弃

电信下行回执查询对"短期频繁发送"类返回 status=6 / stat=MA:0038,
原代码仅处理 status=5,status=6 无分支被直接丢弃 —— 该类短信永远
进不了失败/重试链路。改为 status==5 || status==6 一并走 buildFailureResult,
由 push_provider_error_code_mapping.should_retry 决定是否重试。

这是限流类无限重试治本(批次1-3)在回执侧的触发点,与库内
MA:0038 -> RATE_LIMIT 映射种子(TD-2)缺一不可。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-20 15:40:43 +08:00
parent 8231b1e0e1
commit c892f71711

View File

@@ -200,7 +200,9 @@ public class TelecomSmsSender implements SmsSender {
return;
}
TelecomSmsSelectDetailRes detailRes = selectResponse.getList().get(0);
if (detailRes.getStatus() == 5) {
// status=5 为明确失败status=6 为“短期频繁发送”等场景stat 如 MA:0038
// 同样走错误码映射,由 push_provider_error_code_mapping.should_retry 决定是否重试。
if (detailRes.getStatus() == 5 || detailRes.getStatus() == 6) {
SendResult failedResult = this.sender.buildFailureResult(
message,
detailRes.getStat(),