fix: UDM批量操作加载数据根据前缀重载
This commit is contained in:
@@ -446,7 +446,7 @@ func (s *UDMSubController) Removes(c *gin.Context) {
|
|||||||
|
|
||||||
// 命令ok时
|
// 命令ok时
|
||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
s.udmSubService.LoadData(neId, imsi, num, "-(Deleted)-")
|
s.udmSubService.LoadData(neId, imsi, num, "")
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package service
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -176,18 +175,13 @@ func (r *UDMAuthUser) Delete(imsi, neId string) int64 {
|
|||||||
|
|
||||||
// LoadData 重新加载从imsi开始num的数据
|
// LoadData 重新加载从imsi开始num的数据
|
||||||
func (r *UDMAuthUser) LoadData(neId, imsi, num string) {
|
func (r *UDMAuthUser) LoadData(neId, imsi, num string) {
|
||||||
startIMSI, _ := strconv.ParseInt(imsi, 10, 64)
|
// 直接删除前缀的记录
|
||||||
subNum, _ := strconv.ParseInt(num, 10, 64)
|
index := len(imsi) - len(num) - 1
|
||||||
var i int64
|
prefix := imsi[:index]
|
||||||
for i = 0; i < subNum; i++ {
|
r.udmAuthRepository.DeletePrefixByIMSI(prefix, neId)
|
||||||
keyIMSI := fmt.Sprintf("%015d", startIMSI+i)
|
// 加载数据
|
||||||
// 删除原数据
|
arr := r.dataByRedis(prefix+"*", neId)
|
||||||
r.udmAuthRepository.Delete(keyIMSI, neId)
|
if len(arr) > 0 {
|
||||||
// 加载数据
|
|
||||||
arr := r.dataByRedis(keyIMSI, neId)
|
|
||||||
if len(arr) < 1 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
r.udmAuthRepository.Inserts(arr)
|
r.udmAuthRepository.Inserts(arr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,13 +16,13 @@ import (
|
|||||||
// 实例化服务层 UDMSubUser 结构体
|
// 实例化服务层 UDMSubUser 结构体
|
||||||
var NewUDMSubUser = &UDMSubUser{
|
var NewUDMSubUser = &UDMSubUser{
|
||||||
udmSubRepository: repository.NewUDMSub,
|
udmSubRepository: repository.NewUDMSub,
|
||||||
UDMExtendRepository: repository.NewUDMExtend,
|
udmExtendRepository: repository.NewUDMExtend,
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDM签约信息 服务层处理
|
// UDM签约信息 服务层处理
|
||||||
type UDMSubUser struct {
|
type UDMSubUser struct {
|
||||||
udmSubRepository *repository.UDMSubUser // UDM签约信息数据信息
|
udmSubRepository *repository.UDMSubUser // UDM签约信息数据信息
|
||||||
UDMExtendRepository *repository.UDMExtend // UDM用户IMSI信息数据信息
|
udmExtendRepository *repository.UDMExtend // UDM用户IMSI信息数据信息
|
||||||
}
|
}
|
||||||
|
|
||||||
// dataByRedis UDM签约用户 db:0 中 udm-sd:*
|
// dataByRedis UDM签约用户 db:0 中 udm-sd:*
|
||||||
@@ -182,7 +182,7 @@ func (r *UDMSubUser) ParseInfo(imsi, neId string, data map[string]string) model.
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 补充用户拓展信息
|
// 补充用户拓展信息
|
||||||
info := r.UDMExtendRepository.SelectByIMSIAndNeID(imsi, neId)
|
info := r.udmExtendRepository.SelectByIMSIAndNeID(imsi, neId)
|
||||||
if info.IMSI == imsi {
|
if info.IMSI == imsi {
|
||||||
u.Remark = info.Remark
|
u.Remark = info.Remark
|
||||||
}
|
}
|
||||||
@@ -207,8 +207,8 @@ func (r *UDMSubUser) Insert(neId string, u model.UDMSubUser) int64 {
|
|||||||
r.udmSubRepository.Delete(u.IMSI, neId)
|
r.udmSubRepository.Delete(u.IMSI, neId)
|
||||||
// 新增到拓展信息
|
// 新增到拓展信息
|
||||||
if u.Remark != "" {
|
if u.Remark != "" {
|
||||||
r.UDMExtendRepository.Delete(u.IMSI, "%")
|
r.udmExtendRepository.Delete(u.IMSI, "%")
|
||||||
r.UDMExtendRepository.Inserts([]model.UDMExtend{{
|
r.udmExtendRepository.Inserts([]model.UDMExtend{{
|
||||||
IMSI: u.IMSI,
|
IMSI: u.IMSI,
|
||||||
MSISDN: u.MSISDN,
|
MSISDN: u.MSISDN,
|
||||||
NeId: u.NeId,
|
NeId: u.NeId,
|
||||||
@@ -262,43 +262,44 @@ func (r *UDMSubUser) InsertData(neId, dataType string, data any) int64 {
|
|||||||
// Delete 删除单个不重新加载
|
// Delete 删除单个不重新加载
|
||||||
func (r *UDMSubUser) Delete(neId, imsi string) int64 {
|
func (r *UDMSubUser) Delete(neId, imsi string) int64 {
|
||||||
// 删除拓展信息
|
// 删除拓展信息
|
||||||
r.UDMExtendRepository.Delete(imsi, neId)
|
r.udmExtendRepository.Delete(imsi, neId)
|
||||||
return r.udmSubRepository.Delete(imsi, neId)
|
return r.udmSubRepository.Delete(imsi, neId)
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadData 重新加载从imsi开始num的数据
|
// LoadData 重新加载从imsi开始num的数据
|
||||||
// remark不为空,则新增到拓展信息,删除标记为-(Deleted)-
|
|
||||||
func (r *UDMSubUser) LoadData(neId, imsi, num, remark string) {
|
func (r *UDMSubUser) LoadData(neId, imsi, num, remark string) {
|
||||||
startIMSI, _ := strconv.ParseInt(imsi, 10, 64)
|
|
||||||
subNum, _ := strconv.ParseInt(num, 10, 64)
|
subNum, _ := strconv.ParseInt(num, 10, 64)
|
||||||
var i int64
|
// 直接删除前缀的记录
|
||||||
for i = 0; i < subNum; i++ {
|
index := len(imsi) - len(num) - 1
|
||||||
keyIMSI := fmt.Sprintf("%015d", startIMSI+i)
|
prefix := imsi[:index]
|
||||||
// 删除原数据
|
r.udmSubRepository.DeletePrefixByIMSI(prefix, neId)
|
||||||
r.udmSubRepository.Delete(keyIMSI, neId)
|
// 加载数据
|
||||||
if remark == "-(Deleted)-" {
|
arr := r.dataByRedis(prefix+"*", neId)
|
||||||
r.UDMExtendRepository.Delete(keyIMSI, "%")
|
if len(arr) > 0 {
|
||||||
}
|
|
||||||
// 加载数据,删除标记为-(Deleted)-加载为空不插入
|
|
||||||
arr := r.dataByRedis(keyIMSI, neId)
|
|
||||||
if len(arr) < 1 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
r.udmSubRepository.Inserts(arr)
|
|
||||||
// 拓展信息
|
// 拓展信息
|
||||||
if remark != "" {
|
if remark != "" {
|
||||||
|
startIMSI, _ := strconv.ParseInt(imsi, 10, 64)
|
||||||
|
endIMSI := startIMSI + subNum
|
||||||
uarr := make([]model.UDMExtend, 0, len(arr))
|
uarr := make([]model.UDMExtend, 0, len(arr))
|
||||||
for _, v := range arr {
|
for _, v := range arr {
|
||||||
uarr = append(uarr, model.UDMExtend{
|
itemIMSI, err := strconv.ParseInt(v.IMSI, 10, 64)
|
||||||
IMSI: v.IMSI,
|
if err != nil {
|
||||||
MSISDN: v.MSISDN,
|
continue
|
||||||
NeId: v.NeId,
|
}
|
||||||
Remark: remark,
|
// 只处理在范围内的IMSI
|
||||||
})
|
if itemIMSI >= startIMSI && itemIMSI < endIMSI {
|
||||||
|
uarr = append(uarr, model.UDMExtend{
|
||||||
|
NeId: v.NeId,
|
||||||
|
IMSI: v.IMSI,
|
||||||
|
MSISDN: v.MSISDN,
|
||||||
|
Remark: remark,
|
||||||
|
})
|
||||||
|
r.udmExtendRepository.Delete(v.IMSI, neId)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
r.UDMExtendRepository.Delete(keyIMSI, neId)
|
r.udmExtendRepository.Inserts(uarr)
|
||||||
r.UDMExtendRepository.Inserts(uarr)
|
|
||||||
}
|
}
|
||||||
|
r.udmSubRepository.Inserts(arr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package service
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -165,18 +164,13 @@ func (r UDMVOIPUser) Delete(username, neId string) int64 {
|
|||||||
|
|
||||||
// LoadData 重新加载从username开始num的数据
|
// LoadData 重新加载从username开始num的数据
|
||||||
func (r UDMVOIPUser) LoadData(neId, username, num string) {
|
func (r UDMVOIPUser) LoadData(neId, username, num string) {
|
||||||
startUserName, _ := strconv.ParseInt(username, 10, 64)
|
// 直接删除前缀的记录
|
||||||
subNum, _ := strconv.ParseInt(num, 10, 64)
|
index := len(username) - len(num) - 1
|
||||||
var i int64
|
prefix := username[:index]
|
||||||
for i = 0; i < subNum; i++ {
|
r.udmVOIPRepository.DeletePrefixByUserName(prefix, neId)
|
||||||
keyUserName := fmt.Sprintf("%d", startUserName+i)
|
// 加载数据
|
||||||
// 删除原数据
|
arr := r.dataByRedis(prefix+"*", neId)
|
||||||
r.udmVOIPRepository.Delete(keyUserName, neId)
|
if len(arr) > 0 {
|
||||||
// 加载数据
|
|
||||||
arr := r.dataByRedis(keyUserName, neId)
|
|
||||||
if len(arr) < 1 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
r.udmVOIPRepository.Inserts(arr)
|
r.udmVOIPRepository.Inserts(arr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package service
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -187,21 +186,13 @@ func (r UDMVolteIMSUser) Delete(imsi, neId string) int64 {
|
|||||||
|
|
||||||
// LoadData 重新加载从imsi开始num的数据
|
// LoadData 重新加载从imsi开始num的数据
|
||||||
func (r UDMVolteIMSUser) LoadData(neId, imsiOrMsisdn, num string) {
|
func (r UDMVolteIMSUser) LoadData(neId, imsiOrMsisdn, num string) {
|
||||||
startIMSIOrMsisdn, _ := strconv.ParseInt(imsiOrMsisdn, 10, 64)
|
// 直接删除前缀的记录
|
||||||
subNum, _ := strconv.ParseInt(num, 10, 64)
|
index := len(imsiOrMsisdn) - len(num) - 1
|
||||||
var i int64
|
prefix := imsiOrMsisdn[:index]
|
||||||
for i = 0; i < subNum; i++ {
|
r.udmVolteIMSRepository.DeletePrefixByIMSI(prefix, neId)
|
||||||
keyIMSI := fmt.Sprintf("%015d", startIMSIOrMsisdn+i)
|
// 加载数据
|
||||||
if !strings.HasPrefix(imsiOrMsisdn, "0") {
|
arr := r.dataByRedis(prefix+"*", neId)
|
||||||
keyIMSI = fmt.Sprintf("%d", startIMSIOrMsisdn+i)
|
if len(arr) > 0 {
|
||||||
}
|
|
||||||
// 删除原数据
|
|
||||||
r.udmVolteIMSRepository.Delete(keyIMSI, neId)
|
|
||||||
// 加载数据
|
|
||||||
arr := r.dataByRedis(keyIMSI+":*", neId)
|
|
||||||
if len(arr) < 1 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
r.udmVolteIMSRepository.Inserts(arr)
|
r.udmVolteIMSRepository.Inserts(arr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user