ref: 多core表结构和代码调整修改
This commit is contained in:
@@ -23,13 +23,13 @@ type UDMVOIPUser struct {
|
||||
}
|
||||
|
||||
// dataByRedis UDMVOIP用户 db:0 中 voip:*
|
||||
func (r UDMVOIPUser) dataByRedis(username, neId string) []model.UDMVOIPUser {
|
||||
func (r UDMVOIPUser) dataByRedis(coreUid, neUid, username string) []model.UDMVOIPUser {
|
||||
arr := []model.UDMVOIPUser{}
|
||||
key := fmt.Sprintf("voip:%s", username)
|
||||
source := fmt.Sprintf("UDM_%s", neId)
|
||||
source := fmt.Sprintf("UDM_%s", neUid)
|
||||
|
||||
// 网元主机的Redis客户端
|
||||
redisClient, err := neService.NewNeInfo.NeRunRedisClient("UDM", neId)
|
||||
redisClient, err := neService.NewNeInfo.NeRunRedisClient(coreUid, neUid)
|
||||
if err != nil {
|
||||
return arr
|
||||
}
|
||||
@@ -56,7 +56,9 @@ func (r UDMVOIPUser) dataByRedis(username, neId string) []model.UDMVOIPUser {
|
||||
}
|
||||
|
||||
a := model.UDMVOIPUser{
|
||||
NeId: neId,
|
||||
CoreUID: coreUid,
|
||||
NeUID: neUid,
|
||||
NeType: "UDM",
|
||||
UserName: username,
|
||||
Password: m["password"],
|
||||
}
|
||||
@@ -66,22 +68,24 @@ func (r UDMVOIPUser) dataByRedis(username, neId string) []model.UDMVOIPUser {
|
||||
}
|
||||
|
||||
// ResetData 重置VOIP用户数据,清空数据库重新同步Redis数据
|
||||
func (r UDMVOIPUser) ResetData(neId string) int64 {
|
||||
arr := r.dataByRedis("*", neId)
|
||||
func (r UDMVOIPUser) ResetData(coreUid, neUid string) int64 {
|
||||
arr := r.dataByRedis(coreUid, neUid, "*")
|
||||
// 数据清空后添加
|
||||
go r.udmVOIPRepository.ClearAndInsert(neId, arr)
|
||||
go r.udmVOIPRepository.ClearAndInsert(coreUid, neUid, arr)
|
||||
return int64(len(arr))
|
||||
}
|
||||
|
||||
// ParseInfo 解析单个用户userName信息 data从命令MML得到的结果
|
||||
func (r UDMVOIPUser) ParseInfo(neId string, data map[string]string) model.UDMVOIPUser {
|
||||
func (r UDMVOIPUser) ParseInfo(coreUid, neUid string, data map[string]string) model.UDMVOIPUser {
|
||||
u := model.UDMVOIPUser{
|
||||
NeId: neId,
|
||||
CoreUID: coreUid,
|
||||
NeUID: neUid,
|
||||
NeType: "UDM",
|
||||
UserName: data["username"],
|
||||
Password: data["password"],
|
||||
}
|
||||
// 赋予ID
|
||||
item := r.udmVOIPRepository.SelectByUserNameAndNeID(u.UserName, neId)
|
||||
item := r.udmVOIPRepository.SelectByUserName(coreUid, neUid, u.UserName)
|
||||
if item.ID != "" {
|
||||
u.ID = item.ID
|
||||
}
|
||||
@@ -99,17 +103,17 @@ func (r UDMVOIPUser) Find(u model.UDMVOIPUser) []model.UDMVOIPUser {
|
||||
}
|
||||
|
||||
// Insert 从数据中读取后删除username再存入数据库
|
||||
func (r UDMVOIPUser) Insert(neId string, username string) int64 {
|
||||
uArr := r.dataByRedis(username, neId)
|
||||
func (r UDMVOIPUser) Insert(coreUid, neUid string, username string) int64 {
|
||||
uArr := r.dataByRedis(coreUid, neUid, username)
|
||||
if len(uArr) > 0 {
|
||||
r.udmVOIPRepository.Delete(username, neId)
|
||||
r.udmVOIPRepository.DeleteByUserName(coreUid, neUid, username)
|
||||
return r.udmVOIPRepository.Inserts(uArr)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// InsertData 导入文件数据 dataType目前两种:txt/csv
|
||||
func (r UDMVOIPUser) InsertData(neId, dataType string, data any) int64 {
|
||||
func (r UDMVOIPUser) InsertData(coreUid, neUid, dataType string, data any) int64 {
|
||||
// imsi截取前缀,重新获取部分数据
|
||||
prefixes := make(map[string]struct{})
|
||||
|
||||
@@ -138,9 +142,9 @@ func (r UDMVOIPUser) InsertData(neId, dataType string, data any) int64 {
|
||||
var num int64 = 0
|
||||
for prefix := range prefixes {
|
||||
// 直接删除前缀的记录
|
||||
r.udmVOIPRepository.DeletePrefixByUserName(prefix, neId)
|
||||
r.udmVOIPRepository.DeletePrefixByUserName(coreUid, neUid, prefix)
|
||||
// keys voip:4600001000004*
|
||||
arr := r.dataByRedis(prefix+"*", neId)
|
||||
arr := r.dataByRedis(coreUid, neUid, prefix+"*")
|
||||
if len(arr) > 0 {
|
||||
num += r.udmVOIPRepository.Inserts(arr)
|
||||
}
|
||||
@@ -149,21 +153,20 @@ func (r UDMVOIPUser) InsertData(neId, dataType string, data any) int64 {
|
||||
}
|
||||
|
||||
// Delete 删除单个不重新加载
|
||||
func (r UDMVOIPUser) Delete(username, neId string) int64 {
|
||||
return r.udmVOIPRepository.Delete(username, neId)
|
||||
func (r UDMVOIPUser) Delete(coreUid, neUid, username string) int64 {
|
||||
return r.udmVOIPRepository.DeleteByUserName(coreUid, neUid, username)
|
||||
}
|
||||
|
||||
// LoadData 重新加载从username开始num的数据
|
||||
func (r UDMVOIPUser) LoadData(neId, username, num string) {
|
||||
func (r UDMVOIPUser) LoadData(coreUid, neUid, username string, num int64) {
|
||||
startUserName, _ := strconv.ParseInt(username, 10, 64)
|
||||
subNum, _ := strconv.ParseInt(num, 10, 64)
|
||||
var i int64
|
||||
for i = 0; i < subNum; i++ {
|
||||
for i = 0; i < num; i++ {
|
||||
keyUserName := fmt.Sprintf("%d", startUserName+i)
|
||||
// 删除原数据
|
||||
r.udmVOIPRepository.Delete(keyUserName, neId)
|
||||
r.udmVOIPRepository.DeleteByUserName(coreUid, neUid, keyUserName)
|
||||
// 加载数据
|
||||
arr := r.dataByRedis(keyUserName, neId)
|
||||
arr := r.dataByRedis(coreUid, neUid, keyUserName)
|
||||
if len(arr) < 1 {
|
||||
continue
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user