diff --git a/features/udm_user/api_udm_user.go b/features/udm_user/api_udm_user.go index 2c984b4d..f8c2161d 100644 --- a/features/udm_user/api_udm_user.go +++ b/features/udm_user/api_udm_user.go @@ -23,6 +23,7 @@ func Routers() []services.RouterItem { } rs := [...]services.RouterItem{ + // UDM签约用户 { Method: "GET", Pattern: "/auths", @@ -41,12 +42,7 @@ func Routers() []services.RouterItem { Handler: apis.UdmAuthUserInfo, Middleware: nil, //midware.Authorize(nil), }, - { - Method: "POST", - Pattern: "/auth", - Handler: apis.UdmAuthUserAdd, - Middleware: nil, //midware.Authorize(nil), - }, + // UDM签约用户 { Method: "GET", Pattern: "/subs", @@ -59,6 +55,12 @@ func Routers() []services.RouterItem { Handler: apis.UdmSubUserSave, Middleware: nil, //midware.Authorize(nil), }, + { + Method: "GET", + Pattern: "/sub/{neId}/{imsi}", + Handler: apis.UdmSubUserInfo, + Middleware: nil, //midware.Authorize(nil), + }, // 添加更多的 Router 对象... } @@ -139,14 +141,6 @@ func (s *UdmUserApi) UdmAuthUserInfo(w http.ResponseWriter, r *http.Request) { ctx.JSON(w, 200, result.OkData(data)) } -// UDM鉴权用户-新增 -// -// POST /auth -func (s *UdmUserApi) UdmAuthUserAdd(w http.ResponseWriter, r *http.Request) { - data := s.authUser.AuthUserSave("") - ctx.JSON(w, 200, result.OkData(data)) -} - // UDM签约用户 // // GET /subs @@ -163,3 +157,31 @@ func (s *UdmUserApi) UdmSubUserSave(w http.ResponseWriter, r *http.Request) { data := s.subUser.SubUserSave("") ctx.JSON(w, 200, result.OkData(data)) } + +// UDM签约用户-信息 +// +// GET /{neId}/{imsi} +func (s *UdmUserApi) UdmSubUserInfo(w http.ResponseWriter, r *http.Request) { + neId := ctx.Param(r, "neId") + imsi := ctx.Param(r, "imsi") + if neId == "" || imsi == "" { + 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("dsp udmuser:imsi=%s", imsi) + + // 发送MML + data, err := mmlclient.MMLSendMsgToMap(neInfo.Ip, msg) + if err != nil { + ctx.JSON(w, 200, result.ErrMsg(err.Error())) + return + } + ctx.JSON(w, 200, result.OkData(data)) +} diff --git a/lib/core/mml_client/send.go b/lib/core/mml_client/send.go index a26790f8..7a637f57 100644 --- a/lib/core/mml_client/send.go +++ b/lib/core/mml_client/send.go @@ -41,13 +41,30 @@ func MMLSendMsgToMap(ip, msg string) (map[string]string, error) { // 初始化一个map用于存储拆分后的键值对 m := make(map[string]string) + var items []string // 按照分隔符"\r\n"进行拆分 - items := strings.Split(str, "\r\n") + if strings.Contains(str, "\r\n") { + items = strings.Split(str, "\r\n") + } + // 按照分隔符"\n"进行拆分 + if strings.Contains(str, "\n") { + items = strings.Split(str, "\n") + } // 遍历拆分后的结果 for _, item := range items { + var pair []string + // 按照分隔符"="进行拆分键值对 - pair := strings.Split(item, "=") + if strings.Contains(item, "=") { + pair = strings.Split(item, "=") + } + + // 按照分隔符":"进行拆分键值对 + if strings.Contains(item, ":") { + pair = strings.Split(item, ":") + } + if len(pair) == 2 { // 将键值对存入map中 m[pair[0]] = pair[1]