sync: 同步 v1.0.4 开源代码并脱敏

This commit is contained in:
MiFaZhan
2026-10-29 14:59:32 +08:00
parent 14f4bb64e1
commit 3e5a7453b8
74 changed files with 3297 additions and 248 deletions
+29 -5
View File
@@ -15,12 +15,12 @@ import (
"sync"
"time"
"git.5iot.com/iotlcm-public/iotlcm-upstream-chan/internal/consts"
"git.5iot.com/iotlcm-public/iotlcm-upstream-chan/internal/model"
"git.5iot.com/iotlcm-public/iotlcm-upstream-chan/internal/service"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/util/gconv"
"golang.org/x/sync/singleflight"
"git.5iot.com/iotlcm-public/iotlcm-upstream-chan/internal/consts"
"git.5iot.com/iotlcm-public/iotlcm-upstream-chan/internal/model"
"git.5iot.com/iotlcm-public/iotlcm-upstream-chan/internal/service"
)
const (
@@ -206,6 +206,18 @@ func (s *sSimTibiot) post(ctx context.Context, endpoint string, params map[strin
if client == nil {
client = &http.Client{Timeout: defaultUpstreamHTTPTimeout}
}
if endpoint == "/api/v1/card/cardNetWork" {
transport := http.DefaultTransport.(*http.Transport).Clone()
if original, ok := client.Transport.(*http.Transport); ok {
transport = original.Clone()
}
transport.DisableKeepAlives = true
defer transport.CloseIdleConnections()
writeClient := *client
writeClient.Transport = transport
writeClient.CheckRedirect = func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }
client = &writeClient
}
resp, err := client.Do(req)
if err != nil {
return tibiotResponse{}, fmt.Errorf("Tibiot request %s: %w", endpoint, err)
@@ -930,10 +942,22 @@ func (s *sSimTibiot) ChangeSimApnFunction(ctx context.Context, input *model.SimC
params["operateType"] = operateType
resp, err := s.post(ctx, "/api/v1/card/cardNetWork", params)
if err != nil {
items = append(items, tibiotError[model.SimCardOperateChangeApnItem](simKey, err))
item := tibiotError[model.SimCardOperateChangeApnItem](simKey, err)
item.ResData.Uncertain = true
items = append(items, item)
continue
}
if !tibiotSuccess(resp) {
statusText := strings.TrimSpace(fmt.Sprint(resp.Status))
status, statusErr := strconv.Atoi(statusText)
if statusErr != nil || (status == 0 && statusText != "0") {
items = append(items, &model.SimBaseRes[model.SimCardOperateChangeApnItem]{
SimKey: simKey, Code: consts.ApiStatusError,
Message: "天比高 APN 开停响应状态无效,办理结果未确认:" + statusText,
ResData: model.SimCardOperateChangeApnItem{Uncertain: true},
})
continue
}
if status != 0 {
items = append(items, tibiotBusinessError[model.SimCardOperateChangeApnItem](simKey, resp))
continue
}