fix: UDM批量操作加载数据根据前缀重载

This commit is contained in:
TsMask
2025-10-11 09:49:49 +08:00
parent 4da212739e
commit 13b2ce3e64
10 changed files with 109 additions and 134 deletions

View File

@@ -2,7 +2,6 @@ package service
import (
"fmt"
"strconv"
"strings"
"time"
@@ -186,20 +185,13 @@ func (r *IMSUserService) Delete(neId, imsi string) int64 {
// LoadData 重新加载从imsi开始num的数据
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++ {
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)
if len(arr) < 1 {
continue
}
// 直接删除前缀的记录
index := len(imsiOrMsisdn) - len(num) - 1
prefix := imsiOrMsisdn[:index]
r.imsUserRepository.DeletePrefixByIMSI(prefix, neId)
// 加载数据
arr := r.dataByRedis(prefix+"*", neId)
if len(arr) > 0 {
r.imsUserRepository.Inserts(arr)
}
}