152 lines
3.5 KiB
Go
152 lines
3.5 KiB
Go
package service
|
||
|
||
import (
|
||
"fmt"
|
||
"strconv"
|
||
|
||
"be.ems/features/udm_user/model"
|
||
"be.ems/features/udm_user/repo"
|
||
)
|
||
|
||
// 实例化服务层 ServiceUdmAuthUser 结构体
|
||
var NewServiceUdmAuthUser = &ServiceUdmAuthUser{
|
||
repoAuthUser: *repo.NewRepoUdmAuthUser,
|
||
}
|
||
|
||
// ServiceUdmAuthUser UDM鉴权用户 服务层处理
|
||
type ServiceUdmAuthUser struct {
|
||
repoAuthUser repo.RepoUdmAuthUser
|
||
}
|
||
|
||
// Save UDM鉴权用户-获取全部保存数据库
|
||
func (r *ServiceUdmAuthUser) Save(neID string) int64 {
|
||
var num int64 = 0
|
||
authArr := redisUdmAuthUserList()
|
||
// 有数据才清空
|
||
if len(authArr) == 0 {
|
||
return num
|
||
}
|
||
go r.repoAuthUser.ClearAndInsert(neID, authArr)
|
||
return int64(len(authArr))
|
||
}
|
||
|
||
// Page UDM签约用户-分页查询数据库
|
||
func (r *ServiceUdmAuthUser) Page(query map[string]any) map[string]any {
|
||
return r.repoAuthUser.SelectPage(query)
|
||
}
|
||
|
||
// List UDM签约用户-查询数据库
|
||
func (r *ServiceUdmAuthUser) List(authUser model.UdmAuthUser) []model.UdmAuthUser {
|
||
return r.repoAuthUser.SelectList(authUser)
|
||
}
|
||
|
||
// Insert UDM鉴权用户-新增单个
|
||
// imsi长度15,ki长度32,opc长度0或者32
|
||
func (r *ServiceUdmAuthUser) Insert(neID string, authUser model.UdmAuthUser) int64 {
|
||
authUser.NeID = neID
|
||
authUser.Status = "0"
|
||
return r.repoAuthUser.Insert(authUser)
|
||
}
|
||
|
||
// Insert UDM鉴权用户-批量添加
|
||
func (r *ServiceUdmAuthUser) Inserts(neID string, authUser model.UdmAuthUser, num string) int64 {
|
||
var arr []model.UdmAuthUser
|
||
|
||
imsiVlen := len(authUser.Imsi)
|
||
imsiV, err := strconv.Atoi(authUser.Imsi)
|
||
if err != nil {
|
||
return 0
|
||
}
|
||
|
||
numV, err := strconv.Atoi(num)
|
||
if err != nil {
|
||
return 0
|
||
}
|
||
|
||
authUser.NeID = neID
|
||
authUser.Status = "0"
|
||
for i := 0; i < numV; i++ {
|
||
imsi := fmt.Sprint(imsiV + i)
|
||
if len(imsi) < imsiVlen {
|
||
imsi = fmt.Sprintf("%0*s", imsiVlen, imsi)
|
||
}
|
||
authUser.Imsi = imsi
|
||
arr = append(arr, authUser)
|
||
}
|
||
|
||
return r.repoAuthUser.Inserts(arr)
|
||
}
|
||
|
||
// InsertCSV UDM鉴权用户-批量添加
|
||
func (r *ServiceUdmAuthUser) InsertCSV(neID string, data []map[string]string) int64 {
|
||
var arr []model.UdmAuthUser
|
||
for _, v := range data {
|
||
var authUser model.UdmAuthUser
|
||
authUser.NeID = neID
|
||
authUser.Status = "0"
|
||
if s, ok := v["imsi"]; ok {
|
||
authUser.Imsi = s
|
||
}
|
||
if s, ok := v["ki"]; ok {
|
||
authUser.Ki = s
|
||
}
|
||
if s, ok := v["algo"]; ok {
|
||
authUser.AlgoIndex = s
|
||
}
|
||
if s, ok := v["amf"]; ok {
|
||
authUser.Amf = s
|
||
}
|
||
if s, ok := v["opc"]; ok {
|
||
authUser.Opc = s
|
||
}
|
||
|
||
if authUser.Imsi == "" {
|
||
continue
|
||
}
|
||
arr = append(arr, authUser)
|
||
}
|
||
return r.repoAuthUser.Inserts(arr)
|
||
}
|
||
|
||
// InsertTxt UDM鉴权用户-批量添加
|
||
func (r *ServiceUdmAuthUser) InsertTxt(neID string, data [][]string) int64 {
|
||
var arr []model.UdmAuthUser
|
||
for _, v := range data {
|
||
if len(v) < 4 {
|
||
continue
|
||
}
|
||
var authUser model.UdmAuthUser
|
||
authUser.NeID = neID
|
||
authUser.Status = "0"
|
||
authUser.Imsi = v[0]
|
||
authUser.Ki = v[1]
|
||
authUser.AlgoIndex = v[2]
|
||
authUser.Amf = v[3]
|
||
if len(v) == 5 {
|
||
authUser.Opc = v[4]
|
||
}
|
||
|
||
if authUser.Imsi == "" {
|
||
continue
|
||
}
|
||
arr = append(arr, authUser)
|
||
}
|
||
|
||
return r.repoAuthUser.Inserts(arr)
|
||
}
|
||
|
||
// Insert UDM鉴权用户-修改更新
|
||
func (r *ServiceUdmAuthUser) Update(neID string, authUser model.UdmAuthUser) int64 {
|
||
return r.repoAuthUser.Update(neID, authUser)
|
||
}
|
||
|
||
// Insert UDM鉴权用户-删除单个
|
||
func (r *ServiceUdmAuthUser) Delete(neID, imsi string) int64 {
|
||
return r.repoAuthUser.Delete(neID, imsi)
|
||
}
|
||
|
||
// Insert UDM鉴权用户-删除范围
|
||
func (r *ServiceUdmAuthUser) Deletes(neID, imsi, num string) int64 {
|
||
return r.repoAuthUser.Deletes(neID, imsi, num)
|
||
}
|