fix: ims user tag 0/1: VoIP/VoLTE

This commit is contained in:
zhangsz
2025-04-10 21:16:54 +08:00
parent 8913970d01
commit 63433e6e0e
10 changed files with 90 additions and 56 deletions

View File

@@ -11,12 +11,12 @@ import (
// 实例化服务层 Service 结构体
var NewVoLTEService = &Service{
volteRepository: NewVoLTERepository,
volteRepository: NewVoLTERepository,
}
// VoLTE用户信息 服务层处理
type Service struct {
volteRepository *Repository // VoLTE用户信息数据信息
volteRepository *Repository // VoLTE用户信息数据信息
}
// dataByRedis UDM签约用户 db:0 中 volte:*
@@ -48,12 +48,12 @@ func (r *Service) dataByRedis(imsi, neId string) []VoLTEUser {
for k, m := range mkv {
var imsi, msisdn string
KeyParts := strings.Split(k, ":")
switch len(KeyParts) {
switch len(KeyParts) {
case 0, 1:
// 处理单个部分的情况
continue
case 2:
// 处理两个部分的情况
// 处理两个部分的情况
imsi = KeyParts[1]
msisdn = "-"
case 3:
@@ -69,14 +69,14 @@ func (r *Service) dataByRedis(imsi, neId string) []VoLTEUser {
var vni string = "-"
impiParts := strings.Split(m["impi"], "@")
if len(impiParts) > 1 {
vni = impiParts[1] // 输出: ims.mnc001.mcc110.3gppnetwork.org
}
vni = impiParts[1] // 输出: ims.mnc001.mcc110.3gppnetwork.org
}
a := VoLTEUser{
NeId: neId,
IMSI: imsi, // volte:360000100000130:8612300000130
MSISDN: msisdn, // 8612300000130
VoLTE: m["tag"], // volte = tag
VNI: vni, // ims.mnc001.mcc110.3gppnetwork.org
IMSI: imsi, // volte:360000100000130:8612300000130
MSISDN: msisdn, // 8612300000130
Tag: m["tag"], // volte = tag
VNI: vni, // ims.mnc001.mcc110.3gppnetwork.org
}
arr = append(arr, a)
}
@@ -95,7 +95,7 @@ func (r *Service) ResetData(neId string) int64 {
func (r *Service) ParseInfo(imsi, neId string, data map[string]string) VoLTEUser {
u := r.volteRepository.SelectByIMSIAndNeID(imsi, neId)
msisdn := data["MSISDN"]
msisdn := data["msisdn"]
if imsMsisdnLen := strings.Index(msisdn, ","); imsMsisdnLen != -1 {
msisdn = msisdn[:imsMsisdnLen]
}
@@ -104,7 +104,7 @@ func (r *Service) ParseInfo(imsi, neId string, data map[string]string) VoLTEUser
u.NeId = neId
u.IMSI = imsi
u.MSISDN = msisdn
u.VoLTE = data["VoLTE"]
u.Tag = data["volte_tag"]
u.VNI = data["VNI"]
return u
}
@@ -198,8 +198,8 @@ func (r *Service) ParseCommandParams(item VoLTEUser) string {
conditions = append(conditions, fmt.Sprintf("msisdn=%s", item.MSISDN))
}
if item.VoLTE != "" {
conditions = append(conditions, fmt.Sprintf("volte=%s", item.VoLTE))
if item.Tag != "" {
conditions = append(conditions, fmt.Sprintf("volte=%s", item.Tag))
}
if item.VNI != "" {
conditions = append(conditions, fmt.Sprintf("vni=%s", item.VNI))