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

@@ -1,22 +1,57 @@
package model
import (
"fmt"
"strconv"
)
const (
// IMSI 号码长度
IMSI_MAX_LENGTH = 15
// MSISDN 号码长度
MSISDN_MAX_LENGTH = 15
TAG_VoLTE = "1" // VoLTE标记
TAG_VOIP = "0" // VoIP标记
)
type CallTag int
const (
TAG_VOIP CallTag = iota // VoIP标记
TAG_VoLTE // VoLTE标记
)
func (ct CallTag) Enum() string {
switch ct {
case TAG_VOIP:
return "VoIP"
case TAG_VoLTE:
return "VoLTE"
default:
return "unknown"
}
}
func (ct CallTag) String() string {
return fmt.Sprintf("%d", ct)
}
// ParseCallTag 将字符串转换为 CallTag 枚举类型
func ParseCallTag(s string) CallTag {
// 如果为空或转换失败,可以返回默认值,例如 VoIP
i, err := strconv.Atoi(s)
if err != nil {
return TAG_VOIP
}
return CallTag(i)
}
// @Description VoLTE用户信息
type IMSUser struct {
ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键
NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识
IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID
MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码
VoLTE string `json:"volte" gorm:"column:volte"` // VoLTE
VNI string `json:"vni" gorm:"column:vni"` // VNI
ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键
NeId string `json:"neId" gorm:"column:ne_id"` // UDM网元标识
IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID
MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码
Tag CallTag `json:"tag" gorm:"column:tag"` // tag: 0=VoIP, 1=VoLTE
VNI string `json:"vni" gorm:"column:vni"` // VNI
TenantID string `json:"tenantID" gorm:"column:tenant_id"`
TenantName string `json:"tenantName" gorm:"-"`