From be47a0f045bf6244406a2128458e482ab3dd7d06 Mon Sep 17 00:00:00 2001 From: liangzai <2440983361@qq.com> Date: Sun, 14 Dec 2025 21:38:01 +0800 Subject: [PATCH] fix --- .../processors/ivyz/ivyz81nc_processor.go | 24 +++++++++++++++---- internal/shared/crypto/west_crypto_test.go | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/internal/domains/api/services/processors/ivyz/ivyz81nc_processor.go b/internal/domains/api/services/processors/ivyz/ivyz81nc_processor.go index c95b29b..1079e6a 100644 --- a/internal/domains/api/services/processors/ivyz/ivyz81nc_processor.go +++ b/internal/domains/api/services/processors/ivyz/ivyz81nc_processor.go @@ -38,13 +38,27 @@ func ProcessIVYZ81NCRequest(ctx context.Context, params []byte, deps *processors }, } - respBytes, err := deps.WestDexService.CallAPI(ctx, "G09XM02", reqData) - if err != nil { - if errors.Is(err, westdex.ErrDatasource) { - return nil, errors.Join(processors.ErrDatasource, err) - } else { + const maxRetries = 5 + var respBytes []byte + + for attempt := 0; attempt <= maxRetries; attempt++ { + var err error + respBytes, err = deps.WestDexService.CallAPI(ctx, "G09XM02", reqData) + if err == nil { + return respBytes, nil + } + + // 如果不是数据源异常,直接返回错误 + if !errors.Is(err, westdex.ErrDatasource) { return nil, errors.Join(processors.ErrSystem, err) } + + // 如果是最后一次尝试,返回错误 + if attempt == maxRetries { + return nil, errors.Join(processors.ErrDatasource, err) + } + + // 立即重试,不等待 } return respBytes, nil diff --git a/internal/shared/crypto/west_crypto_test.go b/internal/shared/crypto/west_crypto_test.go index 9534665..b11c4b4 100644 --- a/internal/shared/crypto/west_crypto_test.go +++ b/internal/shared/crypto/west_crypto_test.go @@ -76,7 +76,7 @@ func TestWestDexDecryptOutput(t *testing.T) { }{ { name: "测试数据1", - data: "DLrbtEki5o/5yTvQWR+dWWUZYEo5s58D8LTnhhlAl99SwZbECa34KpStmR+Qr0gbbKzh3y4t5+/vbFFZgv03DtnYlLQcQt+rSgtxkCN/PCBPaFE0QZRTufd7djJfUww0Eh6DMHD7NS9pcuCa0PHGVoE+Vwo2YSwOnh2gtx3Bt0Qhs+w76tfCwIeufZ8tcpFs/nb84HIZxk+0cH1bTfNE6VsXI6vMpKvnS02O3oE2642ozeHgglCNuiOFMcCL8Erw4FKPnfRCUYdeKc2dZ7OF2IZqt0t4WiJBxjB/6k4tgAj/HepE2gaulWU8RVvAF+vPF5i3ekHHq8T7226rNlVfuagodaRXiOqO5E1h6Mx9ygcDL0HXvQKsxxJdl/bUP+t/+rOjA+k/IR/vF1UJGrGrkSJVfkcWXPP85cgws18gE9rIs2Ji1HGjvOmnez370L0+", + data: "0IdH/7L/ybMY00dne6clsk7VYBXPHkFfDagilHTzSHt9wTxref38uX8cDe7fJCGksbDQnMGo8GfsyEIpiCfj+w==", secretKey: "121a1e41fc1690dd6b90afbcacd80cf4", }, {