package app import ( "context" "strings" "git.5iot.com/iotlcm-public/iotlcm-app/internal/model" "github.com/gogf/gf/v2/frame/g" ) func (s *sAppCard) attachAppCardRealtimeSession(ctx context.Context, row *appCardQueryRow, card *model.AppCardModel) *model.AppCardModel { if row == nil || card == nil { return card } if strings.TrimSpace(row.Msisdn) == "" && strings.TrimSpace(row.Iccid) == "" && strings.TrimSpace(row.Imsi) == "" { return card } session, source, err := queryAppCardRealtimeSession(ctx, row) if err != nil { g.Log().Warningf(ctx, "app card session query failed, iccid:%s, msisdn:%s, err:%+v", row.Iccid, row.Msisdn, err) return card } if source == "onelink_mock" { g.Log().Debugf(ctx, "app card session loaded from onelink mock, iccid:%s", row.Iccid) } if session == nil { return card } return applyAppCardRealtimeSession(card, session) } func applyAppCardRealtimeSession(card *model.AppCardModel, session *appOneLinkMockSimSessionItem) *model.AppCardModel { if card == nil || session == nil { return card } card.OnlineStatus = strings.TrimSpace(session.Status) card.ApnId = strings.TrimSpace(session.ApnId) card.Rat = strings.TrimSpace(session.Rat) card.Ipv4 = strings.TrimSpace(session.Ipv4) card.Ipv6 = strings.TrimSpace(session.Ipv6) card.Ipv6Prefix = strings.TrimSpace(session.Ipv6Prefix) card.SessionCreateTime = strings.TrimSpace(session.CreateTime) return card }