fix: UDM-IMS数据批量新增/批量删除命令调整
This commit is contained in:
@@ -48,35 +48,23 @@ func (r *IMSUserService) dataByRedis(imsi, neId string) []model.IMSUser {
|
||||
}
|
||||
|
||||
for k, m := range mkv {
|
||||
var imsi, msisdn string
|
||||
KeyParts := strings.Split(k, ":")
|
||||
switch len(KeyParts) {
|
||||
case 0, 1:
|
||||
// 处理单个部分的情况
|
||||
// volte:360000100000130:8612300000130
|
||||
keys := strings.Split(k, ":")
|
||||
if len(keys) != 3 {
|
||||
continue
|
||||
case 2:
|
||||
// 处理两个部分的情况
|
||||
imsi = KeyParts[1]
|
||||
msisdn = "-"
|
||||
case 3:
|
||||
// 处理三个部分的情况
|
||||
imsi = KeyParts[1]
|
||||
msisdn = KeyParts[2]
|
||||
default:
|
||||
// 处理更多部分的情况
|
||||
imsi = KeyParts[1]
|
||||
msisdn = KeyParts[2]
|
||||
}
|
||||
|
||||
var vni string = "-"
|
||||
// "110011200004217@ims.mnc001.mcc110.3gppnetwork.org"
|
||||
vni := ""
|
||||
impiParts := strings.Split(m["impi"], "@")
|
||||
if len(impiParts) > 1 {
|
||||
vni = impiParts[1] // 输出: ims.mnc001.mcc110.3gppnetwork.org
|
||||
vni = impiParts[1]
|
||||
}
|
||||
|
||||
a := model.IMSUser{
|
||||
NeId: neId,
|
||||
IMSI: imsi, // volte:360000100000130:8612300000130
|
||||
MSISDN: msisdn, // 8612300000130
|
||||
IMSI: keys[1], // volte:360000100000130:8612300000130
|
||||
MSISDN: keys[2], // 8612300000130
|
||||
Tag: model.ParseCallTag(m["tag"]), // volte = tag
|
||||
VNI: vni, // ims.mnc001.mcc110.3gppnetwork.org
|
||||
}
|
||||
@@ -182,19 +170,15 @@ func (r *IMSUserService) Delete(neId, imsi string) int64 {
|
||||
}
|
||||
|
||||
// LoadData 重新加载从imsi开始num的数据
|
||||
func (r *IMSUserService) LoadData(neId, imsi, num string) {
|
||||
startIMSI, _ := strconv.ParseInt(imsi, 10, 64)
|
||||
func (r *IMSUserService) LoadData(neId, imsiOrMsisdn, num string) {
|
||||
startIMSIOrMsisdn, _ := strconv.ParseInt(imsiOrMsisdn, 10, 64)
|
||||
subNum, _ := strconv.ParseInt(num, 10, 64)
|
||||
var i int64
|
||||
for i = 0; i < subNum; i++ {
|
||||
var keyIMSI string
|
||||
if len(imsi) == model.IMSI_MAX_LENGTH {
|
||||
keyIMSI = fmt.Sprintf("%015d", startIMSI+i)
|
||||
} else {
|
||||
// 处理不满15位的IMSI, tag=TAG_VoIP
|
||||
keyIMSI = fmt.Sprintf("%d", startIMSI+i)
|
||||
keyIMSI := fmt.Sprintf("%015d", startIMSIOrMsisdn+i)
|
||||
if !strings.HasPrefix(imsiOrMsisdn, "0") {
|
||||
keyIMSI = fmt.Sprintf("%d", startIMSIOrMsisdn+i)
|
||||
}
|
||||
|
||||
// 删除原数据
|
||||
r.imsUserRepository.Delete(keyIMSI, neId)
|
||||
arr := r.dataByRedis(keyIMSI+":*", neId)
|
||||
|
||||
Reference in New Issue
Block a user