diff --git a/src/modules/network_data/model/cdr_event.go b/src/modules/network_data/model/cdr_event.go index 7b2381ae..27658ef2 100644 --- a/src/modules/network_data/model/cdr_event.go +++ b/src/modules/network_data/model/cdr_event.go @@ -15,13 +15,13 @@ type CDREvent struct { // CDREventQuery CDR会话对象查询参数结构体 type CDREventQuery struct { - NeType string `form:"neType" binding:"required"` - NeID string `form:"neId" binding:"required"` - RmUID string `form:"rmUID"` - StartTime string `form:"startTime" ` - EndTime string `form:"endTime"` - SortField string `form:"sortField" binding:"omitempty,oneof=timestamp"` - SortOrder string `form:"sortOrder" binding:"omitempty,oneof=asc desc"` - PageNum int64 `form:"pageNum" binding:"required"` - PageSize string `form:"pageSize" binding:"required"` + NeType string `json:"neType" form:"neType" binding:"required"` + NeID string `json:"neId" form:"neId" binding:"required"` + RmUID string `json:"rmUID" form:"rmUID"` + StartTime string `json:"startTime" form:"startTime"` + EndTime string `json:"endTime" form:"endTime"` + SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=timestamp"` + SortOrder string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"` + PageNum int64 `json:"pageNum" form:"pageNum" binding:"required"` + PageSize int64 `json:"pageSize" form:"pageSize" binding:"required"` } diff --git a/src/modules/ws/processor/cdr_connect.go b/src/modules/ws/processor/cdr_connect.go new file mode 100644 index 00000000..73278fd6 --- /dev/null +++ b/src/modules/ws/processor/cdr_connect.go @@ -0,0 +1,29 @@ +package processor + +import ( + "encoding/json" + "fmt" + + "ems.agt/src/framework/logger" + "ems.agt/src/framework/vo/result" + neDataModel "ems.agt/src/modules/network_data/model" + neDataService "ems.agt/src/modules/network_data/service" +) + +// GetCDRConnect 获取CDR会话事件 +func GetCDRConnect(requestID string, data any) ([]byte, error) { + msgByte, _ := json.Marshal(data) + var query neDataModel.CDREventQuery + err := json.Unmarshal(msgByte, &query) + if err != nil { + logger.Warnf("ws processor GetCDRConnect err: %s", err.Error()) + return nil, fmt.Errorf("query data structure error") + } + + dataMap := neDataService.NewCDREventImpl.SelectPage(query) + resultByte, err := json.Marshal(result.Ok(map[string]any{ + "requestID": requestID, + "data": dataMap, + })) + return resultByte, err +} diff --git a/src/modules/ws/service/ws_receive.impl.go b/src/modules/ws/service/ws_receive.impl.go index acdfd23f..e2d5e13c 100644 --- a/src/modules/ws/service/ws_receive.impl.go +++ b/src/modules/ws/service/ws_receive.impl.go @@ -31,6 +31,12 @@ func (s *WSReceiveImpl) Receive(client *model.WSClient, reqMsg model.WSRequest) return err } client.MsgChan <- res + case "cdr": + res, err := processor.GetCDRConnect(reqMsg.RequestID, reqMsg.Data) + if err != nil { + return err + } + client.MsgChan <- res default: return fmt.Errorf("message type not supported") }