add: cdr and ue event for multi-tenancy
This commit is contained in:
@@ -33,6 +33,7 @@ type UEEvent struct {
|
||||
Timestamp int64 `json:"timestamp" xorm:"timestamp"`
|
||||
EventType string `json:"eventType" xorm:"event_type"`
|
||||
EventJson map[string]any `json:"eventJSON" xorm:"event_json"`
|
||||
TenantID string `json:"tenantID" xorm:"tenant_id"`
|
||||
}
|
||||
|
||||
func PostUEEventFromAMF(c *gin.Context) {
|
||||
@@ -64,6 +65,16 @@ func PostUEEventFromAMF(c *gin.Context) {
|
||||
ueEvent.EventType = eventType
|
||||
log.Trace("ueEvent AMF:", ueEvent)
|
||||
|
||||
// for multi-tenancy
|
||||
where := fmt.Sprintf("status='1' and tenancy_type='IMSI' and '%v' like tenancy_key", ueEvent.EventJson["imsi"])
|
||||
tenantID, err := dborm.XormGetSingleColStringByWhere("sys_tenant", "parent_id", where)
|
||||
if err != nil {
|
||||
log.Errorf("failed to get tenant_id:%v", err)
|
||||
}
|
||||
if tenantID != "" {
|
||||
ueEvent.TenantID = tenantID
|
||||
}
|
||||
|
||||
affected, err := dborm.XormInsertTableOne("ue_event_amf", ueEvent)
|
||||
if err != nil && affected <= 0 {
|
||||
log.Error("Failed to insert ue_event_amf:", err)
|
||||
@@ -87,6 +98,16 @@ func PostUEEvent(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
// for multi-tenancy
|
||||
where := fmt.Sprintf("status='1' and tenancy_type='IMSI' and '%v' like tenancy_key", ueEvent.EventJson["imsi"])
|
||||
tenantID, err := dborm.XormGetSingleColStringByWhere("sys_tenant", "parent_id", where)
|
||||
if err != nil {
|
||||
log.Errorf("failed to get tenant_id:%v", err)
|
||||
}
|
||||
if tenantID != "" {
|
||||
ueEvent.TenantID = tenantID
|
||||
}
|
||||
|
||||
ueEvent.NeType = strings.ToUpper(neType)
|
||||
tableName := fmt.Sprintf("ue_event_%s", strings.ToLower(neType))
|
||||
affected, err := dborm.XormInsertTableOne(tableName, ueEvent)
|
||||
|
||||
Reference in New Issue
Block a user