feat 签约用户4G接口
This commit is contained in:
@@ -123,7 +123,19 @@ func Routers() []services.RouterItem {
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/sub/{neId}",
|
||||
Handler: apis.UdmAuthUserEdit,
|
||||
Handler: apis.UdmSubUserEdit,
|
||||
Middleware: nil, //midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/sub4gIP/{neId}",
|
||||
Handler: apis.UdmSubUser4GIP,
|
||||
Middleware: nil, //midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
Method: "PUT",
|
||||
Pattern: "/subSmData/{neId}",
|
||||
Handler: apis.UdmSubUserSmData,
|
||||
Middleware: nil, //midware.Authorize(nil),
|
||||
},
|
||||
{
|
||||
@@ -706,6 +718,45 @@ func (s *UdmUserApi) UdmSubUserAdds(w http.ResponseWriter, r *http.Request) {
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
}
|
||||
|
||||
// UDM签约用户-批量添加4G用户
|
||||
//
|
||||
// POST /sub4G/{neId}
|
||||
func (s *UdmUserApi) UdmSubUserAdd4G(w http.ResponseWriter, r *http.Request) {
|
||||
neId := ctx.Param(r, "neId")
|
||||
if neId == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "参数错误"))
|
||||
return
|
||||
}
|
||||
|
||||
var body model.UdmSubUser
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.Imsi == "" || body.SubNum == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "参数错误"))
|
||||
return
|
||||
}
|
||||
|
||||
neInfo, err := NeInfoByUDM(neId)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
msg := fmt.Sprintf("bmd udmuser:start_imsi=%s,sub_num=%s,eps_flag=%s", body.Imsi, body.SubNum, body.EpsFlag)
|
||||
|
||||
// 发送MML
|
||||
data, err := mmlclient.MMLSendMsgToString(neInfo.Ip, msg)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
// 命令ok时
|
||||
if strings.Contains(data, "ok") {
|
||||
s.subUser.Insert4G(neInfo.NeId, body)
|
||||
}
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
}
|
||||
|
||||
// UDM签约用户-修改
|
||||
//
|
||||
// PUT /{neId}
|
||||
@@ -773,6 +824,83 @@ func (s *UdmUserApi) UdmSubUserEdit(w http.ResponseWriter, r *http.Request) {
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
}
|
||||
|
||||
// UDM签约用户-批量修改4G IP
|
||||
//
|
||||
// PUT /sub4gIP/{neId}
|
||||
func (s *UdmUserApi) UdmSubUser4GIP(w http.ResponseWriter, r *http.Request) {
|
||||
neId := ctx.Param(r, "neId")
|
||||
if neId == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "参数错误"))
|
||||
return
|
||||
}
|
||||
|
||||
var body model.UdmSubUser
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.Imsi == "" || body.SubNum == "" || body.StaticIp == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "参数错误"))
|
||||
return
|
||||
}
|
||||
|
||||
neInfo, err := NeInfoByUDM(neId)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
msg := fmt.Sprintf("bmd udmuser:start_imsi=%s,sub_num=%s,static_ip=%s", body.Imsi, body.SubNum, body.StaticIp)
|
||||
|
||||
// 发送MML
|
||||
data, err := mmlclient.MMLSendMsgToString(neInfo.Ip, msg)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
// 命令ok时
|
||||
if strings.Contains(data, "ok") {
|
||||
s.subUser.Update4GIP(neId, body)
|
||||
}
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
}
|
||||
|
||||
// UDM签约用户-批量修改sm-data
|
||||
//
|
||||
// PUT /subSmData/{neId}
|
||||
func (s *UdmUserApi) UdmSubUserSmData(w http.ResponseWriter, r *http.Request) {
|
||||
neId := ctx.Param(r, "neId")
|
||||
if neId == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "参数错误"))
|
||||
return
|
||||
}
|
||||
|
||||
var body model.UdmSubUser
|
||||
err := ctx.ShouldBindJSON(r, &body)
|
||||
if err != nil || body.Imsi == "" || body.SubNum == "" || body.SmData == "" {
|
||||
ctx.JSON(w, 400, result.CodeMsg(400, "参数错误"))
|
||||
return
|
||||
}
|
||||
|
||||
neInfo, err := NeInfoByUDM(neId)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
// 3-000003&internet-10.10.1.1&ims-10.11.1.1
|
||||
msg := fmt.Sprintf("bmd udmuser:start_imsi=%s,sub_num=%s,sm_data=%s", body.Imsi, body.SubNum, body.SmData)
|
||||
|
||||
// 发送MML
|
||||
data, err := mmlclient.MMLSendMsgToString(neInfo.Ip, msg)
|
||||
if err != nil {
|
||||
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
// 命令ok时
|
||||
if strings.Contains(data, "ok") {
|
||||
s.subUser.UpdateSmData(neId, body)
|
||||
}
|
||||
ctx.JSON(w, 200, result.OkData(data))
|
||||
}
|
||||
|
||||
// UDM签约用户-删除
|
||||
//
|
||||
// DELETE /{neId}/{imsi}
|
||||
|
||||
@@ -24,4 +24,6 @@ type UdmSubUser struct {
|
||||
ContextId string `json:"contextId" xorm:"context_id"`
|
||||
ApnContext string `json:"apnContext" xorm:"apn_context"`
|
||||
StaticIp string `json:"staticIp" xorm:"static_ip"`
|
||||
|
||||
SubNum string `json:"subNum" xorm:"-"` // 批量数
|
||||
}
|
||||
|
||||
@@ -209,6 +209,41 @@ func (r *RepoUdmSubUser) Inserts(neID string, subUser model.UdmSubUser, num stri
|
||||
for i := 0; i < numV; i++ {
|
||||
subUser.Imsi = fmt.Sprint(imsiV + i)
|
||||
subUser.Msisdn = fmt.Sprint(msisdnV + i)
|
||||
// IP会自动递增
|
||||
parts := strings.Split(subUser.StaticIp, ".")
|
||||
lastPart := parts[3]
|
||||
lastNum, _ := strconv.Atoi(lastPart)
|
||||
lastNum += i
|
||||
newLastPart := strconv.Itoa(lastNum)
|
||||
parts[3] = newLastPart
|
||||
newIP := strings.Join(parts, ".")
|
||||
subUser.StaticIp = newIP
|
||||
results, err := datasource.DefaultDB().Table("u_sub_user").Insert(subUser)
|
||||
if err == nil {
|
||||
insertNum += results
|
||||
}
|
||||
}
|
||||
|
||||
return insertNum
|
||||
}
|
||||
|
||||
// Insert4G 批量添加4G用户
|
||||
func (r *RepoUdmSubUser) Insert4G(neID string, subUser model.UdmSubUser) int64 {
|
||||
var insertNum int64
|
||||
|
||||
imsiV, err := strconv.Atoi(subUser.Imsi)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
numV, err := strconv.Atoi(subUser.SubNum)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
|
||||
subUser.NeID = neID
|
||||
for i := 0; i < numV; i++ {
|
||||
subUser.Imsi = fmt.Sprint(imsiV + i)
|
||||
|
||||
results, err := datasource.DefaultDB().Table("u_sub_user").Insert(subUser)
|
||||
if err == nil {
|
||||
insertNum += results
|
||||
@@ -262,6 +297,78 @@ func (r *RepoUdmSubUser) Update(neID string, authUser model.UdmSubUser) int64 {
|
||||
return results
|
||||
}
|
||||
|
||||
// Update4GIP 批量修改4G IP
|
||||
func (r *RepoUdmSubUser) Update4GIP(neID string, subUser model.UdmSubUser) int64 {
|
||||
var insertNum int64
|
||||
|
||||
imsiV, err := strconv.Atoi(subUser.Imsi)
|
||||
if err != nil || subUser.StaticIp == "" {
|
||||
return insertNum
|
||||
}
|
||||
numV, err := strconv.Atoi(subUser.SubNum)
|
||||
if err != nil {
|
||||
return insertNum
|
||||
}
|
||||
|
||||
for i := 0; i < numV; i++ {
|
||||
subUser.Imsi = fmt.Sprint(imsiV + i)
|
||||
|
||||
// 查询先
|
||||
var user model.UdmSubUser
|
||||
err := datasource.DefaultDB().Table("u_sub_user").Where("imsi = ? and ne_id = ?", subUser.Imsi, neID).Find(&user)
|
||||
if err == nil {
|
||||
// IP会自动递增
|
||||
parts := strings.Split(subUser.StaticIp, ".")
|
||||
lastPart := parts[3]
|
||||
lastNum, _ := strconv.Atoi(lastPart)
|
||||
lastNum += i
|
||||
newLastPart := strconv.Itoa(lastNum)
|
||||
parts[3] = newLastPart
|
||||
newIP := strings.Join(parts, ".")
|
||||
user.StaticIp = newIP
|
||||
// 更新
|
||||
results, err := datasource.DefaultDB().Table("u_sub_user").Update(user)
|
||||
if err == nil {
|
||||
insertNum += results
|
||||
}
|
||||
}
|
||||
}
|
||||
return insertNum
|
||||
}
|
||||
|
||||
// UpdateSmData 批量修改sm-data
|
||||
func (r *RepoUdmSubUser) UpdateSmData(neID string, subUser model.UdmSubUser) int64 {
|
||||
var insertNum int64
|
||||
|
||||
imsiV, err := strconv.Atoi(subUser.Imsi)
|
||||
if err != nil || subUser.StaticIp == "" {
|
||||
return insertNum
|
||||
}
|
||||
numV, err := strconv.Atoi(subUser.SubNum)
|
||||
if err != nil {
|
||||
return insertNum
|
||||
}
|
||||
|
||||
for i := 0; i < numV; i++ {
|
||||
subUser.Imsi = fmt.Sprint(imsiV + i)
|
||||
|
||||
// 查询先
|
||||
var user model.UdmSubUser
|
||||
err := datasource.DefaultDB().Table("u_sub_user").Where("imsi = ? and ne_id = ?", subUser.Imsi, neID).Find(&user)
|
||||
if err == nil {
|
||||
// IP会自动递增,需提前规划好DNN对应的IP;如dnn不需要绑定IP则不带此字段名
|
||||
// parts := strings.Split(subUser.SmData, "&")
|
||||
user.SmData = subUser.SmData
|
||||
// 更新
|
||||
results, err := datasource.DefaultDB().Table("u_sub_user").Update(user)
|
||||
if err == nil {
|
||||
insertNum += results
|
||||
}
|
||||
}
|
||||
}
|
||||
return insertNum
|
||||
}
|
||||
|
||||
// Delete 删除实体
|
||||
func (r *RepoUdmSubUser) Delete(neID, imsi string) int64 {
|
||||
results, err := datasource.DefaultDB().Table("u_sub_user").Where("imsi = ? and ne_id = ?", imsi, neID).Delete()
|
||||
|
||||
@@ -91,11 +91,26 @@ func (r *ServiceUdmSubUser) InsertCSV(neID string, data []map[string]string) int
|
||||
return num
|
||||
}
|
||||
|
||||
// Insert UDM签约用户-批量添加4G用户
|
||||
func (r *ServiceUdmSubUser) Insert4G(neID string, subUser model.UdmSubUser) int64 {
|
||||
return r.repoSunUser.Insert4G(neID, subUser)
|
||||
}
|
||||
|
||||
// Insert UDM签约用户-修改更新
|
||||
func (r *ServiceUdmSubUser) Update(neID string, subUser model.UdmSubUser) int64 {
|
||||
return r.repoSunUser.Update(neID, subUser)
|
||||
}
|
||||
|
||||
// Update4GIP UDM签约用户-批量修改4G IP
|
||||
func (r *ServiceUdmSubUser) Update4GIP(neID string, subUser model.UdmSubUser) int64 {
|
||||
return r.repoSunUser.Update4GIP(neID, subUser)
|
||||
}
|
||||
|
||||
// Update4GIP UDM签约用户-批量修改sm-data
|
||||
func (r *ServiceUdmSubUser) UpdateSmData(neID string, subUser model.UdmSubUser) int64 {
|
||||
return r.repoSunUser.UpdateSmData(neID, subUser)
|
||||
}
|
||||
|
||||
// Insert UDM签约用户-删除单个
|
||||
func (r *ServiceUdmSubUser) Delete(neID, imsi string) int64 {
|
||||
return r.repoSunUser.Delete(neID, imsi)
|
||||
|
||||
Reference in New Issue
Block a user