feat: support CBC broadcast
This commit is contained in:
@@ -696,3 +696,27 @@ func (s APIRestController) QuerySystemState(c *gin.Context) {
|
||||
func (s APIRestController) NeConfigOMC(c *gin.Context) {
|
||||
c.JSON(204, nil)
|
||||
}
|
||||
|
||||
// @Description CBSManagement CB消息
|
||||
type CBSState struct {
|
||||
NeName string `json:"neName"` // 网元名称
|
||||
RmUID string `json:"rmUID"` // 网元唯一标识
|
||||
EventData []oamService.CBSEventData `json:"eventData"` // 事件数据
|
||||
}
|
||||
|
||||
func (s APIRestController) ResolveCBSState(c *gin.Context) {
|
||||
var state CBSState
|
||||
if err := c.ShouldBindBodyWithJSON(&state); err != nil {
|
||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||
return
|
||||
}
|
||||
|
||||
for _, eventData := range state.EventData {
|
||||
if err := oamService.NewCBS.Resolve(eventData); err != nil {
|
||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
}
|
||||
c.JSON(200, resp.Ok(nil))
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ func Setup(router *gin.Engine) {
|
||||
aprRestGroup.POST("/cdrManagement/v1/elementType/:elementTypeValue/objectType/cdrEvent", aprRest.ResolveCDR)
|
||||
aprRestGroup.POST("/performanceManagement/v1/elementType/:elementTypeValue/objectType/kpiReport/:index", aprRest.ResolveKPI)
|
||||
aprRestGroup.POST("/ueManagement/v1/elementType/:elementTypeValue/objectType/nbState", aprRest.ResolveNBState)
|
||||
aprRestGroup.POST("/ueManagement/v1/elementType/:elementTypeValue/objectType/cbsState", aprRest.ResolveCBSState)
|
||||
aprRestGroup.POST("/logManagement/v1/elementType/:elementTypeValue/objectType/ueEvent", aprRest.ResolveUENB)
|
||||
router.POST("/upload-ue/v1/:eventType", aprRest.ResolveUENBByAMF) // AMF特殊上报
|
||||
aprRestGroup.GET("/systemManagement/v1/elementType/:elementTypeValue/objectType/systemState", aprRest.QuerySystemState)
|
||||
|
||||
29
src/modules/oam/service/cbs_state.go
Normal file
29
src/modules/oam/service/cbs_state.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
)
|
||||
|
||||
// 实例化服务层 CDR 结构体
|
||||
var NewCBS = &CBS{
|
||||
neInfoService: neService.NewNeInfo,
|
||||
cbcMessageService: neDataService.NewCBCMessage,
|
||||
}
|
||||
|
||||
// CDR 消息处理
|
||||
type CBS struct {
|
||||
neInfoService *neService.NeInfo
|
||||
cbcMessageService *neDataService.CBCMessage // CDR会话事件服务
|
||||
}
|
||||
|
||||
type CBSEventData struct {
|
||||
EventName string `json:"eventName"` // 事件名称
|
||||
MessageId int64 `json:"messageId"` // 消息ID
|
||||
Detail string `json:"detail"` // 详情
|
||||
}
|
||||
|
||||
// Resolve 接收处理
|
||||
func (s *CBS) Resolve(c CBSEventData) error {
|
||||
return s.cbcMessageService.UpdateDetail(c.EventName, c.Detail)
|
||||
}
|
||||
Reference in New Issue
Block a user