fix: UDM批量操作加载数据根据前缀重载
This commit is contained in:
@@ -446,7 +446,7 @@ func (s *UDMSubController) Removes(c *gin.Context) {
|
||||
|
||||
// 命令ok时
|
||||
if strings.Contains(data, "ok") {
|
||||
s.udmSubService.LoadData(neId, imsi, num, "-(Deleted)-")
|
||||
s.udmSubService.LoadData(neId, imsi, num, "")
|
||||
}
|
||||
c.JSON(200, result.OkData(data))
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -181,18 +180,13 @@ func (r *UDMAuthUser) Delete(imsi, neId string) int64 {
|
||||
|
||||
// LoadData 重新加载从imsi开始num的数据
|
||||
func (r *UDMAuthUser) LoadData(neId, imsi, num string) {
|
||||
startIMSI, _ := strconv.ParseInt(imsi, 10, 64)
|
||||
subNum, _ := strconv.ParseInt(num, 10, 64)
|
||||
var i int64
|
||||
for i = 0; i < subNum; i++ {
|
||||
keyIMSI := fmt.Sprintf("%015d", startIMSI+i)
|
||||
// 删除原数据
|
||||
r.udmAuthRepository.Delete(keyIMSI, neId)
|
||||
// 加载数据
|
||||
arr := r.dataByRedis(keyIMSI, neId)
|
||||
if len(arr) < 1 {
|
||||
continue
|
||||
}
|
||||
// 直接删除前缀的记录
|
||||
idx := len(imsi) - len(num) - 1
|
||||
prefix := imsi[:idx]
|
||||
r.udmAuthRepository.DeletePrefixByIMSI(neId, prefix)
|
||||
// keys ausf:4600001000004*
|
||||
arr := r.dataByRedis(prefix+"*", neId)
|
||||
if len(arr) > 0 {
|
||||
r.udmAuthRepository.Inserts(arr)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,38 +272,40 @@ func (r *UDMSubUser) Delete(neId, imsi string) int64 {
|
||||
}
|
||||
|
||||
// LoadData 重新加载从imsi开始num的数据
|
||||
// remark不为空,则新增到拓展信息,删除标记为-(Deleted)-
|
||||
func (r *UDMSubUser) LoadData(neId, imsi, num, remark string) {
|
||||
startIMSI, _ := strconv.ParseInt(imsi, 10, 64)
|
||||
subNum, _ := strconv.ParseInt(num, 10, 64)
|
||||
var i int64
|
||||
for i = 0; i < subNum; i++ {
|
||||
keyIMSI := fmt.Sprintf("%015d", startIMSI+i)
|
||||
// 删除原数据
|
||||
r.udmSubRepository.Delete(keyIMSI, neId)
|
||||
if remark == "-(Deleted)-" {
|
||||
r.udmUserInfoRepository.Delete(keyIMSI, "%")
|
||||
}
|
||||
// 加载数据,删除标记为-(Deleted)-加载为空不插入
|
||||
arr := r.dataByRedis(keyIMSI, neId)
|
||||
if len(arr) < 1 {
|
||||
continue
|
||||
}
|
||||
r.udmSubRepository.Inserts(arr)
|
||||
// 直接删除前缀的记录
|
||||
index := len(imsi) - len(num) - 1
|
||||
prefix := imsi[:index]
|
||||
r.udmSubRepository.DeletePrefixByIMSI(prefix, neId)
|
||||
// r.udmUserInfoRepository.Delete(prefix, "%")
|
||||
// 加载数据
|
||||
arr := r.dataByRedis(prefix+"*", neId)
|
||||
if len(arr) > 0 {
|
||||
// 拓展信息
|
||||
if remark != "" {
|
||||
startIMSI, _ := strconv.ParseInt(imsi, 10, 64)
|
||||
endIMSI := startIMSI + subNum
|
||||
uarr := make([]model.UDMUserInfo, 0, len(arr))
|
||||
for _, v := range arr {
|
||||
uarr = append(uarr, model.UDMUserInfo{
|
||||
IMSI: v.IMSI,
|
||||
MSISDN: v.MSISDN,
|
||||
NeId: v.NeId,
|
||||
Remark: remark,
|
||||
})
|
||||
itemIMSI, err := strconv.ParseInt(v.IMSI, 10, 64)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
// 只处理在范围内的IMSI
|
||||
if itemIMSI >= startIMSI && itemIMSI < endIMSI {
|
||||
uarr = append(uarr, model.UDMUserInfo{
|
||||
NeId: v.NeId,
|
||||
IMSI: v.IMSI,
|
||||
MSISDN: v.MSISDN,
|
||||
Remark: remark,
|
||||
})
|
||||
r.udmUserInfoRepository.Delete(neId, v.IMSI)
|
||||
}
|
||||
}
|
||||
r.udmUserInfoRepository.Delete(keyIMSI, neId)
|
||||
r.udmUserInfoRepository.Inserts(uarr)
|
||||
}
|
||||
r.udmSubRepository.Inserts(arr)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -170,18 +169,13 @@ func (r UDMVOIPUser) Delete(username, neId string) int64 {
|
||||
|
||||
// LoadData 重新加载从username开始num的数据
|
||||
func (r UDMVOIPUser) LoadData(neId, username, num string) {
|
||||
startUserName, _ := strconv.ParseInt(username, 10, 64)
|
||||
subNum, _ := strconv.ParseInt(num, 10, 64)
|
||||
var i int64
|
||||
for i = 0; i < subNum; i++ {
|
||||
keyUserName := fmt.Sprintf("%d", startUserName+i)
|
||||
// 删除原数据
|
||||
r.udmVOIPRepository.Delete(keyUserName, neId)
|
||||
// 加载数据
|
||||
arr := r.dataByRedis(keyUserName, neId)
|
||||
if len(arr) < 1 {
|
||||
continue
|
||||
}
|
||||
// 直接删除前缀的记录
|
||||
index := len(username) - len(num) - 1
|
||||
prefix := username[:index]
|
||||
r.udmVOIPRepository.DeletePrefixByUserName(neId, prefix)
|
||||
// 加载数据
|
||||
arr := r.dataByRedis(neId, prefix+"*")
|
||||
if len(arr) > 0 {
|
||||
r.udmVOIPRepository.Inserts(arr)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -192,21 +191,13 @@ func (r UDMVolteIMSUser) Delete(imsi, neId string) int64 {
|
||||
|
||||
// LoadData 重新加载从imsi开始num的数据
|
||||
func (r UDMVolteIMSUser) 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++ {
|
||||
keyIMSI := fmt.Sprintf("%015d", startIMSIOrMsisdn+i)
|
||||
if !strings.HasPrefix(imsiOrMsisdn, "0") {
|
||||
keyIMSI = fmt.Sprintf("%d", startIMSIOrMsisdn+i)
|
||||
}
|
||||
// 删除原数据
|
||||
r.udmVolteIMSRepository.Delete(keyIMSI, neId)
|
||||
// 加载数据
|
||||
arr := r.dataByRedis(keyIMSI+":*", neId)
|
||||
if len(arr) < 1 {
|
||||
continue
|
||||
}
|
||||
// 直接删除前缀的记录
|
||||
index := len(imsiOrMsisdn) - len(num) - 1
|
||||
prefix := imsiOrMsisdn[:index]
|
||||
r.udmVolteIMSRepository.DeletePrefixByIMSI(neId, prefix)
|
||||
// 加载数据
|
||||
arr := r.dataByRedis(neId, prefix+"*")
|
||||
if len(arr) > 0 {
|
||||
r.udmVolteIMSRepository.Inserts(arr)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user