ref: 多core表结构和代码调整修改
This commit is contained in:
@@ -1,18 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for alarm
|
-- Table structure for alarm
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `alarm`;
|
DROP TABLE IF EXISTS `alarm`;
|
||||||
CREATE TABLE `alarm` (
|
CREATE TABLE `alarm` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`ne_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元名称',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`province` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元省份地域',
|
|
||||||
`pv_flag` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元标识虚拟化标识',
|
|
||||||
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
|
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
|
||||||
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '告警ID',
|
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '告警ID',
|
||||||
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
|
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
|
||||||
@@ -37,10 +31,7 @@ CREATE TABLE `alarm` (
|
|||||||
`clear_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
|
`clear_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
|
||||||
`timestamp` bigint DEFAULT '0' COMMENT '创建时间',
|
`timestamp` bigint DEFAULT '0' COMMENT '创建时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_uni_aid_ne_aseq` (`ne_type`,`ne_id`,`alarm_id`,`alarm_seq`) USING BTREE,
|
UNIQUE KEY `uk_alarm_aid_aseq_atype` (`ne_uid`, `alarm_id`, `alarm_seq`, `alarm_type`) USING BTREE COMMENT '唯一网元资源产生的ID与序号与状态',
|
||||||
KEY `idx_status_severity_time` (`alarm_status`,`orig_severity`,`event_time`) USING BTREE
|
KEY `idx_alarm_status_severity_time` (`alarm_status`,`orig_severity`,`event_time`) USING BTREE COMMENT '索引-告警状态_告警级别_事件时间',
|
||||||
|
KEY `idx_alarm_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_记录表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_记录表';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for alarm_event
|
-- Table structure for alarm_event
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `alarm_event`;
|
DROP TABLE IF EXISTS `alarm_event`;
|
||||||
CREATE TABLE `alarm_event` (
|
CREATE TABLE `alarm_event` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
|
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
|
||||||
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '告警ID',
|
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '告警ID',
|
||||||
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
|
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
|
||||||
@@ -28,10 +25,9 @@ CREATE TABLE `alarm_event` (
|
|||||||
`clear_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
|
`clear_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
|
||||||
`timestamp` bigint DEFAULT '0' COMMENT '创建时间',
|
`timestamp` bigint DEFAULT '0' COMMENT '创建时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_ti_aid_aseq` (`ne_type`,`ne_id`,`alarm_id`,`alarm_seq`) USING BTREE,
|
UNIQUE KEY `uk_aevent_aid_aseq` (`ne_uid`, `alarm_id`, `alarm_seq`) USING BTREE COMMENT '唯一网元资源产生的ID与序号与状态',
|
||||||
KEY `idx_astatus_etime` (`alarm_status`,`event_time`) USING BTREE
|
KEY `idx_aevent_status_etime` (`alarm_status`,`event_time`) USING BTREE COMMENT '索引-告警状态_事件时间',
|
||||||
|
KEY `idx_aevent_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_事件记录表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_事件记录表';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
-- Dump completed on 2025-02-14 15:26:56
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `alarm_forward_log`
|
-- Table structure for table `alarm_forward_log`
|
||||||
--
|
--
|
||||||
@@ -8,8 +5,9 @@ SET FOREIGN_KEY_CHECKS = 0;
|
|||||||
DROP TABLE IF EXISTS `alarm_forward_log`;
|
DROP TABLE IF EXISTS `alarm_forward_log`;
|
||||||
CREATE TABLE `alarm_forward_log` (
|
CREATE TABLE `alarm_forward_log` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
|
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
|
||||||
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警ID',
|
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警ID',
|
||||||
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
|
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
|
||||||
@@ -22,7 +20,8 @@ CREATE TABLE `alarm_forward_log` (
|
|||||||
`type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '转发方式 SMS/EMAIL',
|
`type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '转发方式 SMS/EMAIL',
|
||||||
`target` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '发送目标用户',
|
`target` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '发送目标用户',
|
||||||
`result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '发送结果',
|
`result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '发送结果',
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
KEY `idx_aforward_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_转发日志记录';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_转发日志记录';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
SET FOREIGN_KEY_CHECKS=1;
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `alarm_log`
|
-- Table structure for table `alarm_log`
|
||||||
--
|
--
|
||||||
@@ -6,8 +5,9 @@
|
|||||||
DROP TABLE IF EXISTS `alarm_log`;
|
DROP TABLE IF EXISTS `alarm_log`;
|
||||||
CREATE TABLE `alarm_log` (
|
CREATE TABLE `alarm_log` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
|
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
|
||||||
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警ID',
|
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警ID',
|
||||||
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
|
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
|
||||||
@@ -17,7 +17,8 @@ CREATE TABLE `alarm_log` (
|
|||||||
`orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)',
|
`orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)',
|
||||||
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级',
|
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT '创建时间',
|
`created_at` bigint DEFAULT '0' COMMENT '创建时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
KEY `idx_alog_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_日志记录';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_日志记录';
|
||||||
|
|
||||||
-- Dump completed on 2024-02-18 18:26:55
|
-- Dump completed on 2024-02-18 18:26:55
|
||||||
|
|||||||
@@ -7,14 +7,15 @@ SET FOREIGN_KEY_CHECKS = 0;
|
|||||||
DROP TABLE IF EXISTS `cdr_event`;
|
DROP TABLE IF EXISTS `cdr_event`;
|
||||||
CREATE TABLE `cdr_event` (
|
CREATE TABLE `cdr_event` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`timestamp` bigint DEFAULT '0' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
`timestamp` bigint DEFAULT '0' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
||||||
`cdr_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
`cdr_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_uid_t` (`rm_uid`,`timestamp`) USING BTREE
|
KEY `idx_cdr_uid_t` (`ne_uid`,`timestamp`) USING BTREE,
|
||||||
|
KEY `idx_cdr_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CDR事件_基础表结构';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CDR事件_基础表结构';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|||||||
@@ -7,14 +7,15 @@ SET FOREIGN_KEY_CHECKS = 0;
|
|||||||
DROP TABLE IF EXISTS `cdr_event_ims`;
|
DROP TABLE IF EXISTS `cdr_event_ims`;
|
||||||
CREATE TABLE `cdr_event_ims` (
|
CREATE TABLE `cdr_event_ims` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`timestamp` bigint DEFAULT '0' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
`timestamp` bigint DEFAULT '0' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
||||||
`cdr_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
`cdr_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_ims_uid_t` (`rm_uid`,`timestamp`) USING BTREE
|
KEY `idx_cdr_ims_uid_t` (`ne_uid`,`timestamp`) USING BTREE,
|
||||||
|
KEY `idx_cdr_ims_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CDR事件_IMS';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CDR事件_IMS';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|||||||
@@ -7,14 +7,15 @@ SET FOREIGN_KEY_CHECKS = 0;
|
|||||||
DROP TABLE IF EXISTS `cdr_event_sgwc`;
|
DROP TABLE IF EXISTS `cdr_event_sgwc`;
|
||||||
CREATE TABLE `cdr_event_sgwc` (
|
CREATE TABLE `cdr_event_sgwc` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`timestamp` bigint DEFAULT '0' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
`timestamp` bigint DEFAULT '0' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
||||||
`cdr_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
`cdr_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_sgwc_uid_t` (`rm_uid`,`timestamp`) USING BTREE
|
KEY `idx_cdr_sgwc_uid_t` (`ne_uid`,`timestamp`) USING BTREE,
|
||||||
|
KEY `idx_cdr_sgwc_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CDR事件_SGWC';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CDR事件_SGWC';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|||||||
@@ -7,14 +7,15 @@ SET FOREIGN_KEY_CHECKS = 0;
|
|||||||
DROP TABLE IF EXISTS `cdr_event_smf`;
|
DROP TABLE IF EXISTS `cdr_event_smf`;
|
||||||
CREATE TABLE `cdr_event_smf` (
|
CREATE TABLE `cdr_event_smf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`timestamp` bigint DEFAULT '0' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
`timestamp` bigint DEFAULT '0' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
||||||
`cdr_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
`cdr_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_smf_uid_t` (`rm_uid`,`timestamp`) USING BTREE
|
KEY `idx_cdr_smf_uid_t` (`ne_uid`,`timestamp`) USING BTREE,
|
||||||
|
KEY `idx_cdr_smf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CDR事件_SMF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CDR事件_SMF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|||||||
@@ -7,14 +7,15 @@ SET FOREIGN_KEY_CHECKS = 0;
|
|||||||
DROP TABLE IF EXISTS `cdr_event_smsc`;
|
DROP TABLE IF EXISTS `cdr_event_smsc`;
|
||||||
CREATE TABLE `cdr_event_smsc` (
|
CREATE TABLE `cdr_event_smsc` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`timestamp` bigint DEFAULT '0' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
`timestamp` bigint DEFAULT '0' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
||||||
`cdr_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
`cdr_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_smsc_uid_t` (`rm_uid`,`timestamp`) USING BTREE
|
KEY `idx_cdr_smsc_uid_t` (`ne_uid`,`timestamp`) USING BTREE,
|
||||||
|
KEY `idx_cdr_smsc_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CDR事件_SMSC';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='CDR事件_SMSC';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|||||||
20
build/database/std/install/core_info.sql
Normal file
20
build/database/std/install/core_info.sql
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
--
|
||||||
|
-- Table structure for table `core_info`
|
||||||
|
--
|
||||||
|
DROP TABLE IF EXISTS `core_info`;
|
||||||
|
CREATE TABLE `core_info` (
|
||||||
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '核心网ID',
|
||||||
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
|
`core_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网名称',
|
||||||
|
`core_sn` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网序列号',
|
||||||
|
`omc_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'OMC安装生成的唯一编码',
|
||||||
|
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注',
|
||||||
|
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者',
|
||||||
|
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||||
|
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
||||||
|
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
|
UNIQUE KEY `uk_core_name_sn` (`core_name`,`core_sn`) USING BTREE COMMENT '唯一名称和序号定义'
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='核心网_基础信息表';
|
||||||
|
|
||||||
|
-- Dump completed on 2025-06-04 15:26:56
|
||||||
@@ -7,9 +7,9 @@ SET FOREIGN_KEY_CHECKS = 0;
|
|||||||
DROP TABLE IF EXISTS `kpi_c_report`;
|
DROP TABLE IF EXISTS `kpi_c_report`;
|
||||||
CREATE TABLE `kpi_c_report` (
|
CREATE TABLE `kpi_c_report` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +18,8 @@ CREATE TABLE `kpi_c_report` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_c_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据记录基础表结构';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据记录基础表结构';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_amf
|
-- Table structure for kpi_c_report_amf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_amf`;
|
DROP TABLE IF EXISTS `kpi_c_report_amf`;
|
||||||
CREATE TABLE `kpi_c_report_amf` (
|
CREATE TABLE `kpi_c_report_amf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_amf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_amf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_amf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_amf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_AMF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_AMF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_ausf
|
-- Table structure for kpi_c_report_ausf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_ausf`;
|
DROP TABLE IF EXISTS `kpi_c_report_ausf`;
|
||||||
CREATE TABLE `kpi_c_report_ausf` (
|
CREATE TABLE `kpi_c_report_ausf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_ausf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_ausf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_ausf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_ausf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_AUSF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_AUSF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_cbc
|
-- Table structure for kpi_c_report_cbc
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_cbc`;
|
DROP TABLE IF EXISTS `kpi_c_report_cbc`;
|
||||||
CREATE TABLE `kpi_c_report_cbc` (
|
CREATE TABLE `kpi_c_report_cbc` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_cbc` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_cbc_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_cbc_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_cbc_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_CBC';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_CBC';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_hlr
|
-- Table structure for kpi_c_report_hlr
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_hlr`;
|
DROP TABLE IF EXISTS `kpi_c_report_hlr`;
|
||||||
CREATE TABLE `kpi_c_report_hlr` (
|
CREATE TABLE `kpi_c_report_hlr` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_hlr` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_hlr_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_hlr_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_hlr_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_HLR';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_HLR';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_ims
|
-- Table structure for kpi_c_report_ims
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_ims`;
|
DROP TABLE IF EXISTS `kpi_c_report_ims`;
|
||||||
CREATE TABLE `kpi_c_report_ims` (
|
CREATE TABLE `kpi_c_report_ims` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_ims` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_ims_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_ims_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_ims_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_IMS';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_IMS';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_mme
|
-- Table structure for kpi_c_report_mme
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_mme`;
|
DROP TABLE IF EXISTS `kpi_c_report_mme`;
|
||||||
CREATE TABLE `kpi_c_report_mme` (
|
CREATE TABLE `kpi_c_report_mme` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_mme` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_mme_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_mme_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_mme_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_MME';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_MME';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_mocngw
|
-- Table structure for kpi_c_report_mocngw
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_mocngw`;
|
DROP TABLE IF EXISTS `kpi_c_report_mocngw`;
|
||||||
CREATE TABLE `kpi_c_report_mocngw` (
|
CREATE TABLE `kpi_c_report_mocngw` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_mocngw` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_mocngw_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_mocngw_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_mocngw_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_MOCNGW';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_MOCNGW';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_nssf
|
-- Table structure for kpi_c_report_nssf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_nssf`;
|
DROP TABLE IF EXISTS `kpi_c_report_nssf`;
|
||||||
CREATE TABLE `kpi_c_report_nssf` (
|
CREATE TABLE `kpi_c_report_nssf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_nssf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_nssf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_nssf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_nssf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_NSSF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_NSSF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_pcf
|
-- Table structure for kpi_c_report_pcf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_pcf`;
|
DROP TABLE IF EXISTS `kpi_c_report_pcf`;
|
||||||
CREATE TABLE `kpi_c_report_pcf` (
|
CREATE TABLE `kpi_c_report_pcf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_pcf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_pcf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_pcf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_pcf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_PCF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_PCF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_smf
|
-- Table structure for kpi_c_report_smf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_smf`;
|
DROP TABLE IF EXISTS `kpi_c_report_smf`;
|
||||||
CREATE TABLE `kpi_c_report_smf` (
|
CREATE TABLE `kpi_c_report_smf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_smf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_smf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_smf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_smf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_SMF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_SMF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_smsc
|
-- Table structure for kpi_c_report_smsc
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_smsc`;
|
DROP TABLE IF EXISTS `kpi_c_report_smsc`;
|
||||||
CREATE TABLE `kpi_c_report_smsc` (
|
CREATE TABLE `kpi_c_report_smsc` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_smsc` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_smsc_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_smsc_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_smsc_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_SMSC';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_SMSC';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_udm
|
-- Table structure for kpi_c_report_udm
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_udm`;
|
DROP TABLE IF EXISTS `kpi_c_report_udm`;
|
||||||
CREATE TABLE `kpi_c_report_udm` (
|
CREATE TABLE `kpi_c_report_udm` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_udm` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_udm_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_udm_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_udm_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_UDM';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_UDM';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_c_report_upf
|
-- Table structure for kpi_c_report_upf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_c_report_upf`;
|
DROP TABLE IF EXISTS `kpi_c_report_upf`;
|
||||||
CREATE TABLE `kpi_c_report_upf` (
|
CREATE TABLE `kpi_c_report_upf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_c_report_upf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_c_upf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpic_upf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpic_upf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_UPF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标数据_UPF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report
|
-- Table structure for kpi_report
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report`;
|
DROP TABLE IF EXISTS `kpi_report`;
|
||||||
CREATE TABLE `kpi_report` (
|
CREATE TABLE `kpi_report` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据记录基础表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据记录基础表';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_amf
|
-- Table structure for kpi_report_amf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_amf`;
|
DROP TABLE IF EXISTS `kpi_report_amf`;
|
||||||
CREATE TABLE `kpi_report_amf` (
|
CREATE TABLE `kpi_report_amf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_amf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_amf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_amf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_amf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_AMF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_AMF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_ausf
|
-- Table structure for kpi_report_ausf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_ausf`;
|
DROP TABLE IF EXISTS `kpi_report_ausf`;
|
||||||
CREATE TABLE `kpi_report_ausf` (
|
CREATE TABLE `kpi_report_ausf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_ausf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_ausf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_ausf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_ausf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_AUSF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_AUSF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_cbc
|
-- Table structure for kpi_report_cbc
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_cbc`;
|
DROP TABLE IF EXISTS `kpi_report_cbc`;
|
||||||
CREATE TABLE `kpi_report_cbc` (
|
CREATE TABLE `kpi_report_cbc` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_cbc` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_cbc_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_cbc_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_cbc_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_CBC';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_CBC';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_hlr
|
-- Table structure for kpi_report_hlr
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_hlr`;
|
DROP TABLE IF EXISTS `kpi_report_hlr`;
|
||||||
CREATE TABLE `kpi_report_hlr` (
|
CREATE TABLE `kpi_report_hlr` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_hlr` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_hlr_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_hlr_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_hlr_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_HLR';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_HLR';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_ims
|
-- Table structure for kpi_report_ims
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_ims`;
|
DROP TABLE IF EXISTS `kpi_report_ims`;
|
||||||
CREATE TABLE `kpi_report_ims` (
|
CREATE TABLE `kpi_report_ims` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_ims` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_ims_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_ims_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_ims_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_IMS';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_IMS';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_mme
|
-- Table structure for kpi_report_mme
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_mme`;
|
DROP TABLE IF EXISTS `kpi_report_mme`;
|
||||||
CREATE TABLE `kpi_report_mme` (
|
CREATE TABLE `kpi_report_mme` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_mme` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_mme_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_mme_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_mme_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_MME';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_MME';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_mocngw
|
-- Table structure for kpi_report_mocngw
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_mocngw`;
|
DROP TABLE IF EXISTS `kpi_report_mocngw`;
|
||||||
CREATE TABLE `kpi_report_mocngw` (
|
CREATE TABLE `kpi_report_mocngw` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_mocngw` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_mocngw_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_mocngw_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_mocngw_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_MOCNGW';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_MOCNGW';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_nssf
|
-- Table structure for kpi_report_nssf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_nssf`;
|
DROP TABLE IF EXISTS `kpi_report_nssf`;
|
||||||
CREATE TABLE `kpi_report_nssf` (
|
CREATE TABLE `kpi_report_nssf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_nssf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_nssf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_nssf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_nssf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_NSSF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_NSSF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_pcf
|
-- Table structure for kpi_report_pcf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_pcf`;
|
DROP TABLE IF EXISTS `kpi_report_pcf`;
|
||||||
CREATE TABLE `kpi_report_pcf` (
|
CREATE TABLE `kpi_report_pcf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_pcf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_pcf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_pcf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_pcf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_PCF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_PCF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_smf
|
-- Table structure for kpi_report_smf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_smf`;
|
DROP TABLE IF EXISTS `kpi_report_smf`;
|
||||||
CREATE TABLE `kpi_report_smf` (
|
CREATE TABLE `kpi_report_smf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_smf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_smf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_smf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_smf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_SMF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_SMF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_smsc
|
-- Table structure for kpi_report_smsc
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_smsc`;
|
DROP TABLE IF EXISTS `kpi_report_smsc`;
|
||||||
CREATE TABLE `kpi_report_smsc` (
|
CREATE TABLE `kpi_report_smsc` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_smsc` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_smsc_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_smsc_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_smsc_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_SMSC';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_SMSC';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_udm
|
-- Table structure for kpi_report_udm
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_udm`;
|
DROP TABLE IF EXISTS `kpi_report_udm`;
|
||||||
CREATE TABLE `kpi_report_udm` (
|
CREATE TABLE `kpi_report_udm` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_udm` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_udm_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_udm_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_udm_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_UDM';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_UDM';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for kpi_report_upf
|
-- Table structure for kpi_report_upf
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `kpi_report_upf`;
|
DROP TABLE IF EXISTS `kpi_report_upf`;
|
||||||
CREATE TABLE `kpi_report_upf` (
|
CREATE TABLE `kpi_report_upf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
`date` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'Date of the report yyyy-mm-dd hh:mi:ss',
|
||||||
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
`start_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'Start time of the report hh:mi:ss',
|
||||||
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
`end_time` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'End time of the report hh:mi:ss',
|
||||||
@@ -18,7 +15,6 @@ CREATE TABLE `kpi_report_upf` (
|
|||||||
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'KPI values JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
`created_at` bigint DEFAULT '0' COMMENT 'Creation time 接收到的timestamp秒级存储毫秒时间戳',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_upf_uid_at` (`rm_uid`,`created_at`) USING BTREE
|
KEY `idx_kpi_upf_uid_at` (`ne_uid`,`created_at`) USING BTREE,
|
||||||
|
KEY `idx_kpi_upf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_UPF';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_指标数据_UPF';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
|
||||||
|
|||||||
@@ -1,27 +1,8 @@
|
|||||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
|
||||||
--
|
|
||||||
-- Host: 192.168.2.219 Database: omc_db
|
|
||||||
-- ------------------------------------------------------
|
|
||||||
-- Server version 10.3.38-MariaDB
|
|
||||||
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
|
||||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
|
||||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
|
||||||
/*!40101 SET NAMES utf8mb4 */;
|
|
||||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
|
||||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
|
||||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
|
||||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
|
||||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
|
||||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `mml_log`
|
-- Table structure for table `mml_log`
|
||||||
--
|
--
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `mml_log`;
|
DROP TABLE IF EXISTS `mml_log`;
|
||||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
||||||
/*!40101 SET character_set_client = utf8 */;
|
|
||||||
CREATE TABLE `mml_log` (
|
CREATE TABLE `mml_log` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
`user` varchar(32) DEFAULT NULL,
|
`user` varchar(32) DEFAULT NULL,
|
||||||
@@ -32,16 +13,6 @@ CREATE TABLE `mml_log` (
|
|||||||
`result` varchar(2048) DEFAULT NULL,
|
`result` varchar(2048) DEFAULT NULL,
|
||||||
`log_time` datetime DEFAULT NULL,
|
`log_time` datetime DEFAULT NULL,
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=467 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
|
||||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
||||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
|
||||||
|
|
||||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
|
||||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
|
||||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
|
||||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
||||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
||||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
||||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
|
||||||
|
|
||||||
-- Dump completed on 2024-03-06 17:26:56
|
-- Dump completed on 2024-03-06 17:26:56
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
--
|
--
|
||||||
-- Table structure for table `nb_state`
|
-- Table structure for table `nb_state`
|
||||||
--
|
--
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `nb_state`;
|
DROP TABLE IF EXISTS `nb_state`;
|
||||||
CREATE TABLE `nb_state` (
|
CREATE TABLE `nb_state` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型 AMF MME',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '资源唯一标识',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||||
`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '基站IP地址',
|
`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '基站IP地址',
|
||||||
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '基站名称',
|
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '基站名称',
|
||||||
@@ -16,7 +15,6 @@ CREATE TABLE `nb_state` (
|
|||||||
`state` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'OFF' COMMENT '基站状态 OFF ON',
|
`state` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'OFF' COMMENT '基站状态 OFF ON',
|
||||||
`time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '状态时间',
|
`time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '状态时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_state_type_id_uid_cat` (`ne_type`,`ne_id`,`rm_uid`,`create_time`) USING BTREE COMMENT '唯一网元类型和ID'
|
KEY `idx_nbst_ne_time` (`ne_uid`,`create_time`) USING BTREE COMMENT '状态时间',
|
||||||
|
KEY `idx_nbst_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='基站_状态记录表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='基站_状态记录表';
|
||||||
|
|
||||||
-- Dump completed on 2025-02-08 12:50:13
|
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
-- MariaDB dump 10.19 Distrib 10.6.16-MariaDB, for debian-linux-gnu (x86_64)
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `ne_config_backup`
|
-- Table structure for table `ne_config_backup`
|
||||||
--
|
--
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `ne_config_backup`;
|
DROP TABLE IF EXISTS `ne_config_backup`;
|
||||||
CREATE TABLE `ne_config_backup` (
|
CREATE TABLE `ne_config_backup` (
|
||||||
`id` bigint NOT NULL AUTO_INCREMENT,
|
`id` bigint NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '压缩包名称',
|
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '压缩包名称',
|
||||||
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '压缩包位置',
|
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '压缩包位置',
|
||||||
`remark` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注',
|
`remark` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注',
|
||||||
@@ -16,7 +15,5 @@ CREATE TABLE `ne_config_backup` (
|
|||||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
||||||
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_cb_type_id` (`ne_type`,`ne_id`) USING BTREE COMMENT '网元类型_网元ID'
|
KEY `idx_cfgbak_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_配置文件备份记录';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_配置文件备份记录';
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `ne_host`
|
-- Table structure for table `ne_host`
|
||||||
--
|
--
|
||||||
@@ -26,11 +23,3 @@ CREATE TABLE `ne_host` (
|
|||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_type_group_title` (`host_type`,`group_id`,`title`) USING BTREE COMMENT '同组内名称唯一'
|
UNIQUE KEY `uk_type_group_title` (`host_type`,`group_id`,`title`) USING BTREE COMMENT '同组内名称唯一'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_主机表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_主机表';
|
||||||
|
|
||||||
-- 初始数据对应网元
|
|
||||||
INSERT INTO `ne_host` VALUES (1, 'ssh', '1', 'OMC_001_22', '127.0.0.1', 22, 'omcuser', '2', '', '', '', '', '', 'system', 1729063407329, '', 0);
|
|
||||||
INSERT INTO `ne_host` VALUES (2, 'telnet', '1', 'OMC_001_4100', '127.0.0.1', 4100, 'admin', '0', 'NUBonCin4GZgl7o12YjeClE8ToQmYp9KWdhMjSNxc2M=', '', '', '', '', 'system', 1729063407329, '', 0);
|
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `ne_host_cmd`
|
-- Table structure for table `ne_host_cmd`
|
||||||
--
|
--
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `ne_host_cmd`;
|
DROP TABLE IF EXISTS `ne_host_cmd`;
|
||||||
CREATE TABLE `ne_host_cmd` (
|
CREATE TABLE `ne_host_cmd` (
|
||||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '命令主键',
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '命令主键',
|
||||||
@@ -21,7 +16,3 @@ CREATE TABLE `ne_host_cmd` (
|
|||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE INDEX `uk_host_type_group_title`(`cmd_type` ASC, `group_id` ASC, `title` ASC) USING BTREE COMMENT '同组内名称唯一'
|
UNIQUE INDEX `uk_host_type_group_title`(`cmd_type` ASC, `group_id` ASC, `title` ASC) USING BTREE COMMENT '同组内名称唯一'
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元主机命令表' ROW_FORMAT = DYNAMIC;
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元主机命令表' ROW_FORMAT = DYNAMIC;
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -1,23 +1,20 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `ne_info`
|
-- Table structure for table `ne_info`
|
||||||
--
|
--
|
||||||
DROP TABLE IF EXISTS `ne_info`;
|
DROP TABLE IF EXISTS `ne_info`;
|
||||||
CREATE TABLE `ne_info` (
|
CREATE TABLE `ne_info` (
|
||||||
`id` bigint NOT NULL AUTO_INCREMENT,
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '网元ID',
|
||||||
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元ID',
|
|
||||||
`rm_uid` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元资源唯一标识',
|
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元名称',
|
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元名称',
|
||||||
`ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元服务IP',
|
`ip_addr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元服务IP',
|
||||||
`port` int DEFAULT '0' COMMENT '端口',
|
`port` int DEFAULT '0' COMMENT '端口',
|
||||||
`pv_flag` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'PNF' COMMENT '网元虚拟化标识 物理PNF 虚拟VNF',
|
`pv_flag` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'PNF' COMMENT '网元虚拟化标识 物理PNF 虚拟VNF',
|
||||||
`province` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'AreaNet' COMMENT '省份地域',
|
`province` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'AreaNet' COMMENT '省份地域',
|
||||||
`vendor_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '厂商名称',
|
`vendor_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '厂商名称',
|
||||||
`dn` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '网络标识',
|
`dn` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '网络标识',
|
||||||
`ne_address` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'MAC地址',
|
`mac_addr` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'MAC地址',
|
||||||
`host_ids` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元主机ID组 数据格式(ssh,telnet) UDM(ssh,telnet,redis) UPF(ssh,telnet,telnet)',
|
`host_ids` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元主机ID组 数据格式(ssh,telnet) UDM(ssh,telnet,redis) UPF(ssh,telnet,telnet)',
|
||||||
`status` int DEFAULT '0' COMMENT '网元状态 0离线 1在线 2配置待下发 3备用模式',
|
`status` int DEFAULT '0' COMMENT '网元状态 0离线 1在线 2配置待下发 3备用模式',
|
||||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注',
|
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注',
|
||||||
@@ -26,12 +23,5 @@ CREATE TABLE `ne_info` (
|
|||||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
||||||
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `ux_netype_neid` (`ne_type`,`ne_id`) USING BTREE
|
UNIQUE KEY `uk_core_ne_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '唯一核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_基础信息表 关联对应版本、授权、主机';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_基础信息表 关联创建版本、授权、主机';
|
||||||
|
|
||||||
-- 初始网元数据
|
|
||||||
INSERT INTO `ne_info` VALUES (1, 'OMC', '001', '4400HXOMC001', 'OMC_001', '127.0.0.1', 33030, 'PNF', 'AreaNet', '-', '-', '-', '1,2', 0, '', 'system', 1713928436971, '', 0);
|
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -1,19 +1,15 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `ne_license`
|
-- Table structure for table `ne_license`
|
||||||
--
|
--
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `ne_license`;
|
DROP TABLE IF EXISTS `ne_license`;
|
||||||
CREATE TABLE `ne_license` (
|
CREATE TABLE `ne_license` (
|
||||||
`id` bigint NOT NULL AUTO_INCREMENT,
|
`id` bigint NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`activation_request_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '激活申请代码',
|
`activation_request_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '激活申请代码',
|
||||||
`license_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '激活授权文件',
|
`license_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '激活授权文件',
|
||||||
`capability` bigint DEFAULT '0' COMMENT '用户容量',
|
`capability` bigint DEFAULT '0' COMMENT '容量 仅AMF/MME/UDM限制',
|
||||||
`serial_num` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '序列号',
|
`serial_num` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '序列号',
|
||||||
`expiry_date` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '许可证到期日期',
|
`expiry_date` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '许可证到期日期',
|
||||||
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '状态 0无效 1有效',
|
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '状态 0无效 1有效',
|
||||||
@@ -23,12 +19,5 @@ CREATE TABLE `ne_license` (
|
|||||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
||||||
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_lic_type_id` (`ne_type`,`ne_id`) USING BTREE COMMENT '唯一网元类型和网元ID'
|
UNIQUE KEY `uk_lic_core_ne_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '唯一核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_授权激活信息';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_授权激活信息';
|
||||||
|
|
||||||
-- 初始数据对应网元
|
|
||||||
INSERT INTO `ne_license` VALUES (1, 'OMC', '001', '', '', 0, '', '', '0', '', 'system', 1713928436971, '', 0);
|
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `ne_software`
|
-- Table structure for table `ne_software`
|
||||||
--
|
--
|
||||||
@@ -19,7 +16,3 @@ CREATE TABLE `ne_software` (
|
|||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_type_name_version` (`ne_type`,`name`,`version`) USING BTREE COMMENT '唯一网元类型和文件名版本是否唯一'
|
UNIQUE KEY `uk_type_name_version` (`ne_type`,`name`,`version`) USING BTREE COMMENT '唯一网元类型和文件名版本是否唯一'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='网元_软件包';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='网元_软件包';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `ne_state`
|
-- Table structure for table `ne_state`
|
||||||
--
|
--
|
||||||
DROP TABLE IF EXISTS `ne_state`;
|
DROP TABLE IF EXISTS `ne_state`;
|
||||||
CREATE TABLE `ne_state` (
|
CREATE TABLE `ne_state` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`version` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '版本',
|
`version` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '版本',
|
||||||
`capability` bigint DEFAULT '0' COMMENT '用户容量',
|
`capability` bigint DEFAULT '0' COMMENT '用户容量',
|
||||||
`serial_num` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '序列号',
|
`serial_num` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '序列号',
|
||||||
@@ -20,7 +18,5 @@ CREATE TABLE `ne_state` (
|
|||||||
`nf_mem_used` bigint DEFAULT '0' COMMENT '内存使用KB-nf',
|
`nf_mem_used` bigint DEFAULT '0' COMMENT '内存使用KB-nf',
|
||||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_type_id_time` (`ne_type`,`ne_id`,`create_time`) USING BTREE COMMENT 'idx_state_ne_type_id_at'
|
KEY `idx_state_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_状态记录内存/CPU/磁盘';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_状态记录内存/CPU/磁盘';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
|
||||||
|
|||||||
@@ -1,16 +1,12 @@
|
|||||||
SET NAMES utf8mb4;
|
|
||||||
SET FOREIGN_KEY_CHECKS = 0;
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Table structure for table `ne_version`
|
-- Table structure for table `ne_version`
|
||||||
--
|
--
|
||||||
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `ne_version`;
|
DROP TABLE IF EXISTS `ne_version`;
|
||||||
CREATE TABLE `ne_version` (
|
CREATE TABLE `ne_version` (
|
||||||
`id` bigint NOT NULL AUTO_INCREMENT,
|
`id` bigint NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '当前包名',
|
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '当前包名',
|
||||||
`version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '当前版本',
|
`version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '当前版本',
|
||||||
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '当前软件包',
|
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '当前软件包',
|
||||||
@@ -26,12 +22,5 @@ CREATE TABLE `ne_version` (
|
|||||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
||||||
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_ver_type_id` (`ne_type`,`ne_id`) USING BTREE COMMENT '唯一网元类型和ID'
|
UNIQUE KEY `uk_ver_core_ne_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '唯一核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_版本信息';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_版本信息';
|
||||||
|
|
||||||
-- 初始数据对应网元
|
|
||||||
INSERT INTO `ne_version` VALUES (1, 'OMC', '001', '', '', '', '', '', '', '', '', '', '0', 'system', 1729063407329, '', 0);
|
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
--
|
--
|
||||||
-- Table structure for table `trace_task`
|
-- Table structure for table `trace_task`
|
||||||
--
|
--
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `trace_task`;
|
DROP TABLE IF EXISTS `trace_task`;
|
||||||
CREATE TABLE `trace_task` (
|
CREATE TABLE `trace_task` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
`id` int NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||||
@@ -18,9 +17,8 @@ CREATE TABLE `trace_task` (
|
|||||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||||
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '任务标题',
|
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '任务标题',
|
||||||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '备注',
|
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '备注',
|
||||||
`ne_list` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元列表 neType_neId 例如 UDM_001,AMF_001',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
|
`ne_list` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元列表 neUid,neUid',
|
||||||
`notify_url` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '信息数据通知回调地址UDP 例如udp:192.168.5.58:33033',
|
`notify_url` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '信息数据通知回调地址UDP 例如udp:192.168.5.58:33033',
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='跟踪_任务';
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='跟踪_任务';
|
||||||
|
|
||||||
-- Dump completed on 2025-04-14 14:26:59
|
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
--
|
--
|
||||||
-- Table structure for table `udm_auth`
|
-- Table structure for table `udm_auth`
|
||||||
--
|
--
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `udm_auth`;
|
DROP TABLE IF EXISTS `udm_auth`;
|
||||||
CREATE TABLE `udm_auth` (
|
CREATE TABLE `udm_auth` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID',
|
`imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID',
|
||||||
`ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识',
|
|
||||||
`amf` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AMF',
|
`amf` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AMF',
|
||||||
`status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '状态',
|
`status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '状态',
|
||||||
`ki` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'ki',
|
`ki` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'ki',
|
||||||
`algo_index` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'algoIndex',
|
`algo_index` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'algoIndex',
|
||||||
`opc` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'OPC',
|
`opc` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'OPC',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_auth_imsi_ne` (`imsi`,`ne_id`) USING BTREE COMMENT 'imsi_neid唯一主键'
|
UNIQUE KEY `uk_udm_auth_imsi_ne` (`ne_uid`,`imsi`) USING BTREE COMMENT '唯一主键-IMSI_网元ID',
|
||||||
|
KEY `idx_udm_auth_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='UDM用户数据_鉴权';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='UDM用户数据_鉴权';
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
--
|
--
|
||||||
-- Table structure for table `udm_extend`
|
-- Table structure for table `udm_extend`
|
||||||
--
|
--
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `udm_extend`;
|
DROP TABLE IF EXISTS `udm_extend`;
|
||||||
CREATE TABLE `udm_extend` (
|
CREATE TABLE `udm_extend` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '默认ID',
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '默认ID',
|
||||||
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID',
|
`imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID',
|
||||||
`msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户电话号码',
|
`msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户电话号码',
|
||||||
`ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识',
|
|
||||||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注',
|
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `imsi_ne` (`imsi`,`ne_id`) USING BTREE COMMENT 'imsi_ne唯一索引'
|
UNIQUE KEY `uk_udm_extend_imsi_ne` (`ne_uid`,`imsi`) USING BTREE COMMENT '唯一索引-IMSI_资源标识',
|
||||||
|
KEY `idx_udm_extend_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UDM用户数据_IMSI扩展信息';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UDM用户数据_IMSI扩展信息';
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
--
|
--
|
||||||
-- Table structure for table `udm_sub`
|
-- Table structure for table `udm_sub`
|
||||||
--
|
--
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `udm_sub`;
|
DROP TABLE IF EXISTS `udm_sub`;
|
||||||
CREATE TABLE `udm_sub` (
|
CREATE TABLE `udm_sub` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID',
|
`imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID',
|
||||||
`msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户电话号码',
|
`msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户电话号码',
|
||||||
`ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识',
|
|
||||||
`am_dat` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData',
|
`am_dat` varchar(1500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData',
|
||||||
`ambr` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData SubUeAMBRTemp',
|
`ambr` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData SubUeAMBRTemp',
|
||||||
`nssai` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData SubSNSSAITemp',
|
`nssai` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'AmData SubSNSSAITemp',
|
||||||
@@ -36,7 +37,6 @@ CREATE TABLE `udm_sub` (
|
|||||||
`smf_sel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'smfSel',
|
`smf_sel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'smfSel',
|
||||||
`cag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'CAG',
|
`cag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'CAG',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_sub_imsi_ne` (`imsi`,`ne_id`) USING BTREE COMMENT 'imsi_neid唯一主键'
|
UNIQUE KEY `uk_udm_sub_imsi_ne` (`ne_uid`,`imsi`) USING BTREE COMMENT '唯一索引-SIM卡_网元标识',
|
||||||
|
KEY `idx_udm_sub_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UDM用户数据_签约';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UDM用户数据_签约';
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
--
|
--
|
||||||
-- Table structure for table `udm_voip`
|
-- Table structure for table `udm_voip`
|
||||||
--
|
--
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `udm_voip`;
|
DROP TABLE IF EXISTS `udm_voip`;
|
||||||
CREATE TABLE `udm_voip` (
|
CREATE TABLE `udm_voip` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
`ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户名',
|
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户名',
|
||||||
`password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '密码',
|
`password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '密码',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_voip_user_ne` (`username`,`ne_id`) USING BTREE COMMENT 'user_neid唯一主键'
|
UNIQUE KEY `uk_udm_voip_user_ne` (`username`,`ne_uid`) USING BTREE COMMENT 'user_neid唯一主键',
|
||||||
|
KEY `idx_udm_voip_smsc_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='UDM用户数据_VOIP';
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='UDM用户数据_VOIP';
|
||||||
|
|
||||||
-- Dump completed on 2025-04-22 15:26:56
|
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
--
|
--
|
||||||
-- Table structure for table `udm_volte_ims`
|
-- Table structure for table `udm_volte_ims`
|
||||||
--
|
--
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `udm_volte_ims`;
|
DROP TABLE IF EXISTS `udm_volte_ims`;
|
||||||
CREATE TABLE `udm_volte_ims` (
|
CREATE TABLE `udm_volte_ims` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
|
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||||
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID',
|
`imsi` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'SIM卡/USIM卡ID',
|
||||||
`msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户电话号码',
|
`msisdn` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户电话号码',
|
||||||
`ne_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'UDM网元标识',
|
|
||||||
`tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '0=VoIP, 1=VoLTE',
|
`tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '0=VoIP, 1=VoLTE',
|
||||||
`vni` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'VNI',
|
`vni` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'VNI',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_volte_imsi_ne` (`imsi`,`msisdn`,`ne_id`) USING BTREE COMMENT 'imsi_msisdn_neid唯一主键',
|
UNIQUE KEY `uk_volte_imsi_ne` (`ne_uid`,`imsi`,`msisdn`) USING BTREE COMMENT 'imsi_msisdn_neid唯一主键',
|
||||||
KEY `idx_volte_tag` (`tag`) USING BTREE COMMENT 'tag索引'
|
KEY `idx_udm_volte_tag` (`tag`) USING BTREE COMMENT 'tag索引',
|
||||||
|
KEY `idx_udm_volte_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UDM用户数据_VolteIMS用户';
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UDM用户数据_VolteIMS用户';
|
||||||
|
|
||||||
-- Dump completed on 2025-04-22 15:26:56
|
|
||||||
|
|||||||
@@ -4,15 +4,14 @@
|
|||||||
DROP TABLE IF EXISTS `ue_event`;
|
DROP TABLE IF EXISTS `ue_event`;
|
||||||
CREATE TABLE `ue_event` (
|
CREATE TABLE `ue_event` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '可能没有',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
||||||
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
|
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
|
||||||
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_type_t` (`event_type`,`timestamp`) USING BTREE
|
KEY `idx_ue_type_t` (`timestamp`,`event_type`) USING BTREE,
|
||||||
|
KEY `idx_ue_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UE事件_基础表结构';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UE事件_基础表结构';
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
|
||||||
|
|||||||
@@ -4,15 +4,16 @@
|
|||||||
DROP TABLE IF EXISTS `ue_event_amf`;
|
DROP TABLE IF EXISTS `ue_event_amf`;
|
||||||
CREATE TABLE `ue_event_amf` (
|
CREATE TABLE `ue_event_amf` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '可能没有',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
||||||
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
|
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
|
||||||
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_amf_type_t` (`event_type`,`timestamp`) USING BTREE
|
KEY `idx_ue_amf_type_t` (`timestamp`,`event_type`) USING BTREE,
|
||||||
|
KEY `idx_ue_amf_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UE事件_AMF终端接入';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UE事件_AMF终端接入';
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
-- Dump completed on 2025-02-14 15:26:56
|
||||||
|
|||||||
@@ -4,15 +4,16 @@
|
|||||||
DROP TABLE IF EXISTS `ue_event_mme`;
|
DROP TABLE IF EXISTS `ue_event_mme`;
|
||||||
CREATE TABLE `ue_event_mme` (
|
CREATE TABLE `ue_event_mme` (
|
||||||
`id` int NOT NULL AUTO_INCREMENT,
|
`id` int NOT NULL AUTO_INCREMENT,
|
||||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识',
|
||||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
`ne_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元唯一标识',
|
||||||
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '可能没有',
|
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网元类型',
|
||||||
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间戳',
|
||||||
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
|
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
|
||||||
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
|
||||||
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
KEY `idx_mme_type_t` (`event_type`,`timestamp`) USING BTREE
|
KEY `idx_ue_mme_type_t` (`timestamp`,`event_type`) USING BTREE,
|
||||||
|
KEY `idx_ue_mme_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UE事件_MME终端接入';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='UE事件_MME终端接入';
|
||||||
|
|
||||||
-- Dump completed on 2025-02-14 15:26:56
|
-- Dump completed on 2025-02-14 15:26:56
|
||||||
|
|||||||
@@ -47,8 +47,8 @@ func PostCDREventFrom(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 是否存在网元
|
// 是否存在网元
|
||||||
neInfo := neService.NewNeInfo.FindByRmuid(body.RmUID)
|
neInfo := neService.NewNeInfo.FindByCoreUidAndNeUid("*", body.RmUID)
|
||||||
if neInfo.NeType != body.NeType || neInfo.RmUID != body.RmUID {
|
if neInfo.NeType != body.NeType || neInfo.NeUID != body.RmUID {
|
||||||
services.ResponseInternalServerError500ProcessError(w, fmt.Errorf("network element does not exist"))
|
services.ResponseInternalServerError500ProcessError(w, fmt.Errorf("network element does not exist"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -88,14 +88,14 @@ func PostCDREventFrom(w http.ResponseWriter, r *http.Request) {
|
|||||||
switch neInfo.NeType {
|
switch neInfo.NeType {
|
||||||
case "IMS":
|
case "IMS":
|
||||||
if v, ok := body.CDR["recordType"]; ok && (v == "MOC" || v == "MTSM") {
|
if v, ok := body.CDR["recordType"]; ok && (v == "MOC" || v == "MTSM") {
|
||||||
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s", wsService.GROUP_IMS_CDR, neInfo.NeId), data)
|
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_IMS_CDR, neInfo.CoreUID, neInfo.NeUID), data)
|
||||||
}
|
}
|
||||||
case "SMF":
|
case "SMF":
|
||||||
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s", wsService.GROUP_SMF_CDR, neInfo.NeId), data)
|
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_SMF_CDR, neInfo.CoreUID, neInfo.NeUID), data)
|
||||||
case "SMSC":
|
case "SMSC":
|
||||||
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s", wsService.GROUP_SMSC_CDR, neInfo.NeId), data)
|
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_SMSC_CDR, neInfo.CoreUID, neInfo.NeUID), data)
|
||||||
case "SGWC":
|
case "SGWC":
|
||||||
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s", wsService.GROUP_SGWC_CDR, neInfo.NeId), data)
|
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_SGWC_CDR, neInfo.CoreUID, neInfo.NeUID), data)
|
||||||
}
|
}
|
||||||
|
|
||||||
services.ResponseStatusOK204NoContent(w)
|
services.ResponseStatusOK204NoContent(w)
|
||||||
|
|||||||
@@ -15,9 +15,7 @@ import (
|
|||||||
"be.ems/lib/global"
|
"be.ems/lib/global"
|
||||||
"be.ems/lib/log"
|
"be.ems/lib/log"
|
||||||
"be.ems/lib/services"
|
"be.ems/lib/services"
|
||||||
"be.ems/src/framework/constants"
|
|
||||||
"be.ems/src/framework/database/db"
|
"be.ems/src/framework/database/db"
|
||||||
neService "be.ems/src/modules/network_element/service"
|
|
||||||
|
|
||||||
"github.com/go-resty/resty/v2"
|
"github.com/go-resty/resty/v2"
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
@@ -26,8 +24,6 @@ import (
|
|||||||
var (
|
var (
|
||||||
// NE CM export/import
|
// NE CM export/import
|
||||||
NeCmUri = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/cm"
|
NeCmUri = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/cm"
|
||||||
// NE info
|
|
||||||
UriNeInfo = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/neInfo"
|
|
||||||
// NE backup file
|
// NE backup file
|
||||||
UriNeCmFile = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/{neType}/neBackup/{fileName}"
|
UriNeCmFile = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/{neType}/neBackup/{fileName}"
|
||||||
// service action uri, action: start/stop/restart
|
// service action uri, action: start/stop/restart
|
||||||
@@ -36,7 +32,6 @@ var (
|
|||||||
UriNeInstance = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/instance/{action}"
|
UriNeInstance = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/instance/{action}"
|
||||||
|
|
||||||
CustomNeCmUri = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/cm"
|
CustomNeCmUri = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/cm"
|
||||||
CustomUriNeInfo = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/neInfo"
|
|
||||||
CustomUriNeCmFile = config.UriPrefix + "/systemManagement/{apiVersion}/{neType}/neBackup/{fileName}"
|
CustomUriNeCmFile = config.UriPrefix + "/systemManagement/{apiVersion}/{neType}/neBackup/{fileName}"
|
||||||
// service action uri, action: start/stop/restart
|
// service action uri, action: start/stop/restart
|
||||||
CustomUriNeService = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/service/{action}"
|
CustomUriNeService = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/service/{action}"
|
||||||
@@ -68,37 +63,6 @@ func init() {
|
|||||||
SetTimeout(time.Duration(1 * time.Second))
|
SetTimeout(time.Duration(1 * time.Second))
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetNeInfo(w http.ResponseWriter, r *http.Request) {
|
|
||||||
log.Debug("GetNeInfo processing... ")
|
|
||||||
|
|
||||||
// _, err := services.CheckFrontValidRequest(w, r)
|
|
||||||
// if err != nil {
|
|
||||||
// log.Error("Request error:", err)
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
|
||||||
neType := vars["elementTypeValue"]
|
|
||||||
if neType == "" {
|
|
||||||
log.Error("elementTypeValue is empty")
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
neId := services.GetUriParamString(r, "ne_id", ",", false, false)
|
|
||||||
|
|
||||||
// no, _ := strconv.ParseInt(neId, 10, 64)
|
|
||||||
neInfo, err := dborm.XormGetNeInfo(neType, neId)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("dborm.XormGetNeInfo is failed:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var response services.DataResponse
|
|
||||||
response.Data = neInfo
|
|
||||||
services.ResponseWithJson(w, http.StatusOK, response)
|
|
||||||
}
|
|
||||||
|
|
||||||
type OmcNeConfig struct {
|
type OmcNeConfig struct {
|
||||||
NeId string `json:"neId" xorm:"ne_id"` // 网元标识(内部),
|
NeId string `json:"neId" xorm:"ne_id"` // 网元标识(内部),
|
||||||
RmUID string `json:"rmUID" xorm:"rm_uid"` // rmUID 网元唯一标识
|
RmUID string `json:"rmUID" xorm:"rm_uid"` // rmUID 网元唯一标识
|
||||||
@@ -110,291 +74,6 @@ type OmcNeConfig struct {
|
|||||||
Dn string `json:"dn" xorm:"dn"` // 资源里边的ManagedBy,性能的Dn,网络唯一标识
|
Dn string `json:"dn" xorm:"dn"` // 资源里边的ManagedBy,性能的Dn,网络唯一标识
|
||||||
}
|
}
|
||||||
|
|
||||||
func PostNeInfo(w http.ResponseWriter, r *http.Request) {
|
|
||||||
log.Debug("PostNeInfo processing... ")
|
|
||||||
|
|
||||||
// _, err := services.CheckFrontValidRequest(w, r)
|
|
||||||
// if err != nil {
|
|
||||||
// log.Error("Request error:", err)
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
|
||||||
neType := vars["elementTypeValue"]
|
|
||||||
if neType == "" {
|
|
||||||
log.Error("elementTypeValue is empty")
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
neTypeUpper := strings.ToUpper(neType)
|
|
||||||
syncFlag := services.GetUriParamString(r, "sync2ne", ",", false, false)
|
|
||||||
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to o.ReadAll:", err)
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Trace("Body:", string(body))
|
|
||||||
|
|
||||||
neInfo := new(dborm.NeInfo)
|
|
||||||
err = json.Unmarshal(body, neInfo)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to json.Unmarshal:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
//neInfo.UpdateTime = time.Now().Format(time.DateTime)
|
|
||||||
neInfo.UpdateTime = time.Now()
|
|
||||||
log.Debug("NE info:", neInfo)
|
|
||||||
|
|
||||||
//if !config.GetYamlConfig().OMC.Chk2Ne {
|
|
||||||
if syncFlag == "false" || neTypeUpper == config.GetYamlConfig().OMC.NeType {
|
|
||||||
neInfo.Status = NEStatusMaintain
|
|
||||||
affected, err := dborm.XormInsertNeInfo(neInfo)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to insert Ne info:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 刷新缓存,不存在结构体网元Id空字符串
|
|
||||||
neService.NewNeInfo.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
|
||||||
|
|
||||||
mapRow := make(map[string]interface{})
|
|
||||||
row := map[string]interface{}{"affectedRows": affected}
|
|
||||||
mapRow["data"] = row
|
|
||||||
services.ResponseWithJson(w, http.StatusOK, mapRow)
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
hostUri := global.CombineHostUri(neInfo.Ip, neInfo.Port)
|
|
||||||
//hostUri := fmt.Sprintf("http://%s:%v", neInfo.Ip, neInfo.Port)
|
|
||||||
apiUri := fmt.Sprintf("%s/systemManagement/v1/elementType/%s/objectType/config/omcNeConfig?ne_id=%s", config.DefaultUriPrefix, strings.ToLower(neInfo.NeType), neInfo.NeId)
|
|
||||||
requestURI2NF := fmt.Sprintf("%s%s", hostUri, apiUri)
|
|
||||||
log.Debug("requestURI2NF:", requestURI2NF)
|
|
||||||
|
|
||||||
omcNeConfig := &OmcNeConfig{
|
|
||||||
NeId: neInfo.NeId,
|
|
||||||
RmUID: neInfo.RmUID,
|
|
||||||
NeName: neInfo.NeName,
|
|
||||||
PvFlag: neInfo.PvFlag,
|
|
||||||
Province: neInfo.Province,
|
|
||||||
VendorName: neInfo.VendorName,
|
|
||||||
Dn: neInfo.Dn,
|
|
||||||
}
|
|
||||||
body, _ = json.Marshal(omcNeConfig)
|
|
||||||
response, err := client.R().
|
|
||||||
EnableTrace().
|
|
||||||
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
|
|
||||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
|
||||||
SetBody(body).
|
|
||||||
Put(requestURI2NF)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to Put:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Info("StatusCode: ", response.StatusCode())
|
|
||||||
|
|
||||||
respMsg := make(map[string]interface{})
|
|
||||||
switch response.StatusCode() {
|
|
||||||
case http.StatusOK, http.StatusCreated, http.StatusNoContent, http.StatusAccepted:
|
|
||||||
neInfo.Status = NEStatusActive
|
|
||||||
affected, err := dborm.XormInsertNeInfo(neInfo)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to dborm.XormInsertNeInfo:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
} else if affected <= 0 {
|
|
||||||
log.Infof("Not record affected to insert ne_info")
|
|
||||||
}
|
|
||||||
|
|
||||||
// 刷新缓存,不存在结构体网元Id空字符串
|
|
||||||
neService.NewNeInfo.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
|
||||||
|
|
||||||
services.ResponseStatusOK204NoContent(w)
|
|
||||||
return
|
|
||||||
default:
|
|
||||||
log.Info("response body:", string(response.Body()))
|
|
||||||
body := new(map[string]interface{})
|
|
||||||
_ = json.Unmarshal(response.Body(), &body)
|
|
||||||
respMsg["error"] = body
|
|
||||||
}
|
|
||||||
|
|
||||||
services.ResponseWithJson(w, response.StatusCode(), respMsg)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func PutNeInfo(w http.ResponseWriter, r *http.Request) {
|
|
||||||
log.Debug("PutNeInfo processing... ")
|
|
||||||
|
|
||||||
// _, err := services.CheckFrontValidRequest(w, r)
|
|
||||||
// if err != nil {
|
|
||||||
// log.Error("Request error:", err)
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
|
||||||
neType := vars["elementTypeValue"]
|
|
||||||
if neType == "" {
|
|
||||||
log.Error("elementTypeValue is empty")
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
neTypeLower := strings.ToLower(neType)
|
|
||||||
neTypeUpper := strings.ToUpper(neType)
|
|
||||||
syncFlag := services.GetUriParamString(r, "sync2ne", ",", false, false)
|
|
||||||
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to io.ReadAll:", err)
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
neInfo := new(dborm.NeInfo)
|
|
||||||
_ = json.Unmarshal(body, neInfo)
|
|
||||||
neInfo.NeType = strings.ToUpper(neType)
|
|
||||||
neInfo.UpdateTime = time.Now()
|
|
||||||
log.Debug("NE info:", neInfo)
|
|
||||||
|
|
||||||
//if !config.GetYamlConfig().OMC.Chk2Ne {
|
|
||||||
if syncFlag == "false" || neTypeUpper == config.GetYamlConfig().OMC.NeType {
|
|
||||||
neInfo.Status = NEStatusMaintain
|
|
||||||
affected, err := dborm.XormUpdateNeInfo(neInfo)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to update Ne info:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 刷新缓存,不存在结构体网元Id空字符串
|
|
||||||
neService.NewNeInfo.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
|
||||||
|
|
||||||
mapRow := make(map[string]interface{})
|
|
||||||
row := map[string]interface{}{"affectedRows": affected}
|
|
||||||
mapRow["data"] = row
|
|
||||||
services.ResponseWithJson(w, http.StatusOK, mapRow)
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
hostUri := global.CombineHostUri(neInfo.Ip, neInfo.Port)
|
|
||||||
//hostUri := fmt.Sprintf("http://%s:%v", neInfo.Ip, neInfo.Port)
|
|
||||||
apiUri := fmt.Sprintf("%s/systemManagement/v1/elementType/%s/objectType/config/omcNeConfig?ne_id=%s", config.DefaultUriPrefix, neTypeLower, neInfo.NeId)
|
|
||||||
requestURI2NF := fmt.Sprintf("%s%s", hostUri, apiUri)
|
|
||||||
log.Debug("requestURI2NF:", requestURI2NF)
|
|
||||||
|
|
||||||
omcNeConfig := &OmcNeConfig{
|
|
||||||
NeId: neInfo.NeId,
|
|
||||||
RmUID: neInfo.RmUID,
|
|
||||||
NeName: neInfo.NeName,
|
|
||||||
PvFlag: neInfo.PvFlag,
|
|
||||||
Province: neInfo.Province,
|
|
||||||
VendorName: neInfo.VendorName,
|
|
||||||
Dn: neInfo.Dn,
|
|
||||||
}
|
|
||||||
body, _ = json.Marshal(omcNeConfig)
|
|
||||||
response, err := client.R().
|
|
||||||
EnableTrace().
|
|
||||||
SetHeaders(map[string]string{constants.HEADER_KEY: r.Header.Get(constants.HEADER_KEY)}).
|
|
||||||
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
|
|
||||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
|
||||||
SetBody(body).
|
|
||||||
Put(requestURI2NF)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to Put:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Info("StatusCode: ", response.StatusCode())
|
|
||||||
|
|
||||||
respMsg := make(map[string]interface{})
|
|
||||||
switch response.StatusCode() {
|
|
||||||
case http.StatusOK, http.StatusCreated, http.StatusNoContent, http.StatusAccepted:
|
|
||||||
neInfo.Status = NEStatusActive
|
|
||||||
affected, err := dborm.XormUpdateNeInfo(neInfo)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to dborm.XormUpdateNeInfo:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
} else if affected <= 0 {
|
|
||||||
log.Infof("Not record affected to insert ne_info")
|
|
||||||
}
|
|
||||||
|
|
||||||
// 刷新缓存,不存在结构体网元Id空字符串
|
|
||||||
neService.NewNeInfo.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
|
||||||
|
|
||||||
services.ResponseStatusOK204NoContent(w)
|
|
||||||
return
|
|
||||||
default:
|
|
||||||
log.Info("response body:", string(response.Body()))
|
|
||||||
body := new(map[string]interface{})
|
|
||||||
_ = json.Unmarshal(response.Body(), &body)
|
|
||||||
respMsg["error"] = body
|
|
||||||
}
|
|
||||||
|
|
||||||
services.ResponseWithJson(w, response.StatusCode(), respMsg)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func DeleteNeInfo(w http.ResponseWriter, r *http.Request) {
|
|
||||||
log.Debug("DeleteNeInfo processing... ")
|
|
||||||
|
|
||||||
// _, err := services.CheckFrontValidRequest(w, r)
|
|
||||||
// if err != nil {
|
|
||||||
// log.Error("Request error:", err)
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
|
||||||
neType := vars["elementTypeValue"]
|
|
||||||
if neType == "" {
|
|
||||||
log.Error("elementTypeValue is empty")
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
|
|
||||||
if err != nil {
|
|
||||||
log.Error("io.ReadAll is failed:", err)
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
neInfo := new(dborm.NeInfo)
|
|
||||||
_ = json.Unmarshal(body, neInfo)
|
|
||||||
neInfo.NeType = strings.ToUpper(neType)
|
|
||||||
neInfo.NeId = services.GetUriParamString(r, "ne_id", ",", false, false)
|
|
||||||
neInfo, err = dborm.XormGetNeInfo(neInfo.NeType, neInfo.NeId)
|
|
||||||
if err != nil || neInfo == nil {
|
|
||||||
log.Error("Failed to delete Ne info:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Debug("NE info:", neInfo)
|
|
||||||
|
|
||||||
// if NE in active status, can't delete NE
|
|
||||||
if !IsActiveNF(neInfo) {
|
|
||||||
affected, err := dborm.XormDeleteNeInfo(neInfo)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to delete Ne info:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 刷新缓存,不存在结构体网元Id空字符串
|
|
||||||
neService.NewNeInfo.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
|
||||||
|
|
||||||
mapRow := make(map[string]interface{})
|
|
||||||
row := map[string]interface{}{"affectedRows": affected}
|
|
||||||
mapRow["data"] = row
|
|
||||||
services.ResponseWithJson(w, http.StatusOK, mapRow)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
err = global.ErrCMCannotDeleteActiveNE
|
|
||||||
log.Error(err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsActiveNF(neInfo *dborm.NeInfo) bool {
|
func IsActiveNF(neInfo *dborm.NeInfo) bool {
|
||||||
log.Debug("IsActiveNF processing... ")
|
log.Debug("IsActiveNF processing... ")
|
||||||
|
|
||||||
|
|||||||
@@ -1,208 +0,0 @@
|
|||||||
package cm
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"be.ems/lib/config"
|
|
||||||
"be.ems/lib/core/ctx"
|
|
||||||
"be.ems/lib/global"
|
|
||||||
"be.ems/lib/log"
|
|
||||||
"be.ems/lib/services"
|
|
||||||
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"io"
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
neService "be.ems/src/modules/network_element/service"
|
|
||||||
|
|
||||||
"github.com/go-resty/resty/v2"
|
|
||||||
"github.com/gorilla/mux"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
// parameter config management
|
|
||||||
ParamConfigUri = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/config/{paraName}"
|
|
||||||
|
|
||||||
CustomParamConfigUri = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/config/{paraName}"
|
|
||||||
)
|
|
||||||
|
|
||||||
func GetParamConfigFromNF(w http.ResponseWriter, r *http.Request) {
|
|
||||||
log.Debug("GetParamConfigFromNF processing... ")
|
|
||||||
|
|
||||||
neId := ctx.GetQuery(r, "ne_id")
|
|
||||||
vars := mux.Vars(r)
|
|
||||||
neType := vars["elementTypeValue"]
|
|
||||||
if neType == "" || neId == "" {
|
|
||||||
log.Error("elementTypeValue is empty")
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
neInfo := neService.NewNeInfo.FindByNeTypeAndNeID(neType, neId)
|
|
||||||
|
|
||||||
var response services.DataResponse
|
|
||||||
if neInfo.NeId == neId && neInfo.NeId != "" {
|
|
||||||
requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI)
|
|
||||||
log.Debug("requestURI2NF:", requestURI2NF)
|
|
||||||
|
|
||||||
resp, err := client.R().
|
|
||||||
EnableTrace().
|
|
||||||
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
|
|
||||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
|
||||||
Get(requestURI2NF)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to Get from NF:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
_ = json.Unmarshal(resp.Body(), &response)
|
|
||||||
}
|
|
||||||
log.Debug("response:", response)
|
|
||||||
}
|
|
||||||
|
|
||||||
services.ResponseWithJson(w, http.StatusOK, response)
|
|
||||||
}
|
|
||||||
|
|
||||||
func PostParamConfigToNF(w http.ResponseWriter, r *http.Request) {
|
|
||||||
log.Debug("PostParamConfigToNF processing... ")
|
|
||||||
|
|
||||||
neId := ctx.GetQuery(r, "ne_id")
|
|
||||||
vars := mux.Vars(r)
|
|
||||||
neType := vars["elementTypeValue"]
|
|
||||||
if neType == "" || neId == "" {
|
|
||||||
log.Error("elementTypeValue is empty")
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
neInfo := neService.NewNeInfo.FindByNeTypeAndNeID(neType, neId)
|
|
||||||
|
|
||||||
if neInfo.NeId != neId || neInfo.NeId == "" {
|
|
||||||
log.Error("neId is empty")
|
|
||||||
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI)
|
|
||||||
log.Debug("requestURI2NF: POST ", requestURI2NF)
|
|
||||||
|
|
||||||
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen)) //io.LimitReader限制大小
|
|
||||||
if err != nil {
|
|
||||||
log.Error("io.ReadAll is failed:", err)
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
client := resty.New()
|
|
||||||
response, err := client.R().
|
|
||||||
EnableTrace().
|
|
||||||
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
|
|
||||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
|
||||||
SetBody(body).
|
|
||||||
Post(requestURI2NF)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to POST to NF:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
services.ResponseWithJson(w, http.StatusNoContent, response)
|
|
||||||
}
|
|
||||||
|
|
||||||
func PutParamConfigToNF(w http.ResponseWriter, r *http.Request) {
|
|
||||||
log.Debug("PutParamConfigToNF processing... ")
|
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
|
||||||
neType := vars["elementTypeValue"]
|
|
||||||
if neType == "" {
|
|
||||||
log.Error("elementTypeValue is empty")
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// OMC配置接口 /api/rest/systemManagement/v1/elementType/omc/objectType/config/omcNeConfig
|
|
||||||
if v, ok := vars["paraName"]; ok && v == "omcNeConfig" && strings.ToLower(neType) == "omc" {
|
|
||||||
PutOMCNeConfig(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
neId := ctx.GetQuery(r, "ne_id")
|
|
||||||
neInfo := neService.NewNeInfo.FindByNeTypeAndNeID(neType, neId)
|
|
||||||
|
|
||||||
if neInfo.NeId != neId || neInfo.NeId == "" {
|
|
||||||
log.Error("neId is empty")
|
|
||||||
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI)
|
|
||||||
log.Debug("requestURI2NF: PUT ", requestURI2NF)
|
|
||||||
|
|
||||||
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen)) //io.LimitReader限制大小
|
|
||||||
if err != nil {
|
|
||||||
log.Error("io.ReadAll is failed:", err)
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
client := resty.New()
|
|
||||||
response, err := client.R().
|
|
||||||
EnableTrace().
|
|
||||||
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
|
|
||||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
|
||||||
SetBody(body).
|
|
||||||
Put(requestURI2NF)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to Put to NF:", err)
|
|
||||||
services.ResponseInternalServerError500ProcessError(w, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
services.ResponseWithJson(w, http.StatusNoContent, response)
|
|
||||||
}
|
|
||||||
|
|
||||||
// PutOMCNeConfig 网元OMC配置
|
|
||||||
//
|
|
||||||
// 目前没配置,返回204
|
|
||||||
func PutOMCNeConfig(w http.ResponseWriter, r *http.Request) {
|
|
||||||
services.ResponseStatusOK204NoContent(w)
|
|
||||||
}
|
|
||||||
|
|
||||||
func DeleteParamConfigToNF(w http.ResponseWriter, r *http.Request) {
|
|
||||||
log.Debug("DeleteParamConfigToNF processing... ")
|
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
|
||||||
neType := vars["elementTypeValue"]
|
|
||||||
if neType == "" {
|
|
||||||
log.Error("elementTypeValue is empty")
|
|
||||||
services.ResponseNotFound404UriNotExist(w, r)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
neId := ctx.GetQuery(r, "ne_id")
|
|
||||||
neInfo := neService.NewNeInfo.FindByNeTypeAndNeID(neType, neId)
|
|
||||||
|
|
||||||
if neInfo.NeId != neId || neInfo.NeId == "" {
|
|
||||||
log.Error("neId is empty")
|
|
||||||
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI)
|
|
||||||
log.Debug("requestURI2NF: DELETE ", requestURI2NF)
|
|
||||||
|
|
||||||
client := resty.New()
|
|
||||||
response, err := client.R().
|
|
||||||
EnableTrace().
|
|
||||||
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
|
|
||||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
|
||||||
Delete(requestURI2NF)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Failed to delete parameter:", err)
|
|
||||||
services.ResponseInternalServerError500NFConnectRefused(w)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
services.ResponseWithJson(w, http.StatusNoContent, response)
|
|
||||||
}
|
|
||||||
@@ -80,8 +80,8 @@ func PostUEEventFromAMF(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 是否存在网元
|
// 是否存在网元
|
||||||
neInfo := neService.NewNeInfo.FindByRmuid(data.RmUID)
|
neInfo := neService.NewNeInfo.FindByCoreUidAndNeUid("*", data.RmUID)
|
||||||
if neInfo.NeType != "AMF" || neInfo.RmUID != data.RmUID {
|
if neInfo.NeType != "AMF" || neInfo.NeUID != data.RmUID {
|
||||||
services.ResponseInternalServerError500ProcessError(c.Writer, fmt.Errorf("network element does not exist"))
|
services.ResponseInternalServerError500ProcessError(c.Writer, fmt.Errorf("network element does not exist"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -165,7 +165,7 @@ func PostUEEventFromAMF(c *gin.Context) {
|
|||||||
// 推送到ws订阅组
|
// 推送到ws订阅组
|
||||||
if data.NeType == "AMF" {
|
if data.NeType == "AMF" {
|
||||||
wsService.NewWSSend.ByGroupID(wsService.GROUP_AMF_UE, data)
|
wsService.NewWSSend.ByGroupID(wsService.GROUP_AMF_UE, data)
|
||||||
wsService.NewWSSend.ByGroupID(wsService.GROUP_AMF_UE+"_"+neInfo.NeId, data)
|
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_AMF_UE, neInfo.CoreUID, neInfo.NeUID), data)
|
||||||
}
|
}
|
||||||
|
|
||||||
services.ResponseStatusOK204NoContent(c.Writer)
|
services.ResponseStatusOK204NoContent(c.Writer)
|
||||||
@@ -195,8 +195,8 @@ func PostUEEvent(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 是否存在网元
|
// 是否存在网元
|
||||||
neInfo := neService.NewNeInfo.FindByRmuid(body.RmUID)
|
neInfo := neService.NewNeInfo.FindByCoreUidAndNeUid("*", body.RmUID)
|
||||||
if neInfo.NeType != body.NeType || neInfo.RmUID != body.RmUID {
|
if neInfo.NeType != body.NeType || neInfo.NeUID != body.RmUID {
|
||||||
services.ResponseInternalServerError500ProcessError(w, fmt.Errorf("network element does not exist"))
|
services.ResponseInternalServerError500ProcessError(w, fmt.Errorf("network element does not exist"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -237,11 +237,11 @@ func PostUEEvent(w http.ResponseWriter, r *http.Request) {
|
|||||||
// 推送到ws订阅组
|
// 推送到ws订阅组
|
||||||
if body.NeType == "MME" {
|
if body.NeType == "MME" {
|
||||||
wsService.NewWSSend.ByGroupID(wsService.GROUP_MME_UE, data)
|
wsService.NewWSSend.ByGroupID(wsService.GROUP_MME_UE, data)
|
||||||
wsService.NewWSSend.ByGroupID(wsService.GROUP_MME_UE+"_"+neInfo.NeId, data)
|
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_MME_UE, neInfo.CoreUID, neInfo.NeUID), data)
|
||||||
}
|
}
|
||||||
if body.NeType == "AMF" {
|
if body.NeType == "AMF" {
|
||||||
wsService.NewWSSend.ByGroupID(wsService.GROUP_AMF_UE, data)
|
wsService.NewWSSend.ByGroupID(wsService.GROUP_AMF_UE, data)
|
||||||
wsService.NewWSSend.ByGroupID(wsService.GROUP_AMF_UE+"_"+neInfo.NeId, data)
|
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_AMF_UE, neInfo.CoreUID, neInfo.NeUID), data)
|
||||||
}
|
}
|
||||||
|
|
||||||
services.ResponseStatusOK204NoContent(w)
|
services.ResponseStatusOK204NoContent(w)
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
log.Debug("alarmData:", v)
|
log.Debug("alarmData:", v)
|
||||||
|
|
||||||
// 是否存在网元 neId实际是rmUID
|
// 是否存在网元 neId实际是rmUID
|
||||||
neInfo := neService.FindByRmuid(v.NeId)
|
neInfo := neService.FindByCoreUidAndNeUid("*", v.NeId)
|
||||||
if neInfo.NeType != v.NeType {
|
if neInfo.NeType != v.NeType {
|
||||||
msg := fmt.Sprintf("network element does not exist %s", v.NeId)
|
msg := fmt.Sprintf("network element does not exist %s", v.NeId)
|
||||||
services.ResponseWithJson(w, 400, resp.ErrMsg(msg))
|
services.ResponseWithJson(w, 400, resp.ErrMsg(msg))
|
||||||
@@ -143,7 +143,7 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
v.AddInfo = fmt.Sprintf("NeInfo:%s", v.NeType)
|
v.AddInfo = fmt.Sprintf("NeInfo:%s", v.NeType)
|
||||||
}
|
}
|
||||||
if v.ObjectUid == "" {
|
if v.ObjectUid == "" {
|
||||||
v.ObjectUid = neInfo.RmUID
|
v.ObjectUid = neInfo.NeUID
|
||||||
}
|
}
|
||||||
if v.ObjectName == "" {
|
if v.ObjectName == "" {
|
||||||
v.ObjectName = neInfo.NeName
|
v.ObjectName = neInfo.NeName
|
||||||
@@ -161,7 +161,7 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
|
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM_EVENT, neInfo.NeType, neInfo.NeId)
|
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM_EVENT, neInfo.CoreUID, neInfo.NeUID)
|
||||||
wsService.NewWSSend.ByGroupID(groupID, clearAlarmEvent)
|
wsService.NewWSSend.ByGroupID(groupID, clearAlarmEvent)
|
||||||
}
|
}
|
||||||
if v.AlarmStatus == AlarmStatusActive {
|
if v.AlarmStatus == AlarmStatusActive {
|
||||||
@@ -171,7 +171,7 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
|
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM_EVENT, neInfo.NeType, neInfo.NeId)
|
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM_EVENT, neInfo.CoreUID, neInfo.NeUID)
|
||||||
wsService.NewWSSend.ByGroupID(groupID, newAlarmEvent)
|
wsService.NewWSSend.ByGroupID(groupID, newAlarmEvent)
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
@@ -184,7 +184,7 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
|
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
|
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.CoreUID, neInfo.NeUID)
|
||||||
wsService.NewWSSend.ByGroupID(groupID, clearAlarm)
|
wsService.NewWSSend.ByGroupID(groupID, clearAlarm)
|
||||||
}
|
}
|
||||||
if v.AlarmStatus == AlarmStatusActive {
|
if v.AlarmStatus == AlarmStatusActive {
|
||||||
@@ -194,7 +194,7 @@ func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
|
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
|
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.CoreUID, neInfo.NeUID)
|
||||||
wsService.NewWSSend.ByGroupID(groupID, newAlarm)
|
wsService.NewWSSend.ByGroupID(groupID, newAlarm)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,12 +232,13 @@ func alarmClear(neInfo neModel.NeInfo, v Alarm) (neDataModel.Alarm, error) {
|
|||||||
alarmService := neDataService.NewAlarm
|
alarmService := neDataService.NewAlarm
|
||||||
// 检查网元告警ID是否唯一
|
// 检查网元告警ID是否唯一
|
||||||
alarmIdArr := alarmService.Find(neDataModel.Alarm{
|
alarmIdArr := alarmService.Find(neDataModel.Alarm{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
})
|
})
|
||||||
if len(alarmIdArr) != 1 {
|
if len(alarmIdArr) != 1 {
|
||||||
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] clear alarm not exists alarmId:%s", neInfo.NeType, neInfo.NeId, v.AlarmId)
|
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] clear alarm not exists alarmId:%s", neInfo.CoreUID, neInfo.NeUID, v.AlarmId)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 产生时间
|
// 产生时间
|
||||||
@@ -245,11 +246,9 @@ func alarmClear(neInfo neModel.NeInfo, v Alarm) (neDataModel.Alarm, error) {
|
|||||||
|
|
||||||
alarm := neDataModel.Alarm{
|
alarm := neDataModel.Alarm{
|
||||||
ID: alarmIdArr[0].ID,
|
ID: alarmIdArr[0].ID,
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
NeName: neInfo.NeName,
|
|
||||||
Province: neInfo.Province,
|
|
||||||
PvFlag: neInfo.PvFlag,
|
|
||||||
AlarmSeq: alarmIdArr[0].AlarmSeq, // seq 告警序号
|
AlarmSeq: alarmIdArr[0].AlarmSeq, // seq 告警序号
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
AlarmTitle: v.AlarmTitle,
|
AlarmTitle: v.AlarmTitle,
|
||||||
@@ -276,7 +275,7 @@ func alarmClear(neInfo neModel.NeInfo, v Alarm) (neDataModel.Alarm, error) {
|
|||||||
if rows > 0 {
|
if rows > 0 {
|
||||||
return alarm, nil
|
return alarm, nil
|
||||||
}
|
}
|
||||||
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] clear alarm fail", neInfo.NeType, neInfo.NeId)
|
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] clear alarm fail", neInfo.CoreUID, neInfo.NeUID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// alarmNew 新增告警
|
// alarmNew 新增告警
|
||||||
@@ -284,24 +283,23 @@ func alarmNew(neInfo neModel.NeInfo, v Alarm) (neDataModel.Alarm, error) {
|
|||||||
alarmService := neDataService.NewAlarm
|
alarmService := neDataService.NewAlarm
|
||||||
// 检查网元告警ID是否唯一
|
// 检查网元告警ID是否唯一
|
||||||
alarmIdArr := alarmService.Find(neDataModel.Alarm{
|
alarmIdArr := alarmService.Find(neDataModel.Alarm{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
})
|
})
|
||||||
if len(alarmIdArr) > 0 {
|
if len(alarmIdArr) > 0 {
|
||||||
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] new alarm already exists alarmId:%s", neInfo.NeType, neInfo.NeId, v.AlarmId)
|
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] new alarm already exists alarmId:%s", neInfo.CoreUID, neInfo.NeUID, v.AlarmId)
|
||||||
}
|
}
|
||||||
// seq 告警序号
|
// seq 告警序号
|
||||||
lastSeq := alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.NeId)
|
lastSeq := alarmService.FindAlarmSeqLast(neInfo.CoreUID, neInfo.NeUID)
|
||||||
// 产生时间
|
// 产生时间
|
||||||
eventTime := date.ParseStrToDate(v.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
|
eventTime := date.ParseStrToDate(v.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
|
||||||
|
|
||||||
alarm := neDataModel.Alarm{
|
alarm := neDataModel.Alarm{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
NeName: neInfo.NeName,
|
|
||||||
Province: neInfo.Province,
|
|
||||||
PvFlag: neInfo.PvFlag,
|
|
||||||
AlarmSeq: lastSeq + 1,
|
AlarmSeq: lastSeq + 1,
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
AlarmTitle: v.AlarmTitle,
|
AlarmTitle: v.AlarmTitle,
|
||||||
@@ -324,7 +322,7 @@ func alarmNew(neInfo neModel.NeInfo, v Alarm) (neDataModel.Alarm, error) {
|
|||||||
alarm.ID = insertId
|
alarm.ID = insertId
|
||||||
return alarm, nil
|
return alarm, nil
|
||||||
}
|
}
|
||||||
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] new alarm fail", neInfo.NeType, neInfo.NeId)
|
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] new alarm fail", neInfo.CoreUID, neInfo.NeUID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// alarmSaveLog 保存告警日志
|
// alarmSaveLog 保存告警日志
|
||||||
@@ -332,8 +330,9 @@ func alarmSaveLog(neInfo neModel.NeInfo, v Alarm) int64 {
|
|||||||
alarmLogService := neDataService.NewAlarmLog
|
alarmLogService := neDataService.NewAlarmLog
|
||||||
eventTime := date.ParseStrToDate(v.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
|
eventTime := date.ParseStrToDate(v.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
|
||||||
alarmLog := neDataModel.AlarmLog{
|
alarmLog := neDataModel.AlarmLog{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmSeq: int64(v.AlarmSeq),
|
AlarmSeq: int64(v.AlarmSeq),
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
AlarmTitle: v.AlarmTitle,
|
AlarmTitle: v.AlarmTitle,
|
||||||
@@ -365,12 +364,13 @@ func alarmEventClear(neInfo neModel.NeInfo, v Alarm) (neDataModel.AlarmEvent, er
|
|||||||
alarmEventService := neDataService.NewAlarmEvent
|
alarmEventService := neDataService.NewAlarmEvent
|
||||||
// 检查网元告警ID是否唯一
|
// 检查网元告警ID是否唯一
|
||||||
alarmIdArr := alarmEventService.Find(neDataModel.AlarmEvent{
|
alarmIdArr := alarmEventService.Find(neDataModel.AlarmEvent{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
})
|
})
|
||||||
if len(alarmIdArr) != 1 {
|
if len(alarmIdArr) != 1 {
|
||||||
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] clear alarm event not exists alarmId:%s", neInfo.NeType, neInfo.NeId, v.AlarmId)
|
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] clear alarm event not exists alarmId:%s", neInfo.CoreUID, neInfo.NeUID, v.AlarmId)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 产生时间
|
// 产生时间
|
||||||
@@ -378,8 +378,9 @@ func alarmEventClear(neInfo neModel.NeInfo, v Alarm) (neDataModel.AlarmEvent, er
|
|||||||
|
|
||||||
alarmEvent := neDataModel.AlarmEvent{
|
alarmEvent := neDataModel.AlarmEvent{
|
||||||
ID: alarmIdArr[0].ID,
|
ID: alarmIdArr[0].ID,
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmSeq: alarmIdArr[0].AlarmSeq, // seq 告警序号
|
AlarmSeq: alarmIdArr[0].AlarmSeq, // seq 告警序号
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
AlarmTitle: v.AlarmTitle,
|
AlarmTitle: v.AlarmTitle,
|
||||||
@@ -403,7 +404,7 @@ func alarmEventClear(neInfo neModel.NeInfo, v Alarm) (neDataModel.AlarmEvent, er
|
|||||||
if rows > 0 {
|
if rows > 0 {
|
||||||
return alarmEvent, nil
|
return alarmEvent, nil
|
||||||
}
|
}
|
||||||
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] clear alarm event fail", neInfo.NeType, neInfo.NeId)
|
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] clear alarm event fail", neInfo.CoreUID, neInfo.NeUID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// alarmEventNew 新增告警事件
|
// alarmEventNew 新增告警事件
|
||||||
@@ -411,21 +412,23 @@ func alarmEventNew(neInfo neModel.NeInfo, v Alarm) (neDataModel.AlarmEvent, erro
|
|||||||
alarmEventService := neDataService.NewAlarmEvent
|
alarmEventService := neDataService.NewAlarmEvent
|
||||||
// 检查网元告警ID是否唯一
|
// 检查网元告警ID是否唯一
|
||||||
alarmIdArr := alarmEventService.Find(neDataModel.AlarmEvent{
|
alarmIdArr := alarmEventService.Find(neDataModel.AlarmEvent{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
})
|
})
|
||||||
if len(alarmIdArr) > 0 {
|
if len(alarmIdArr) > 0 {
|
||||||
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] new alarm event already exists alarmId:%s", neInfo.NeType, neInfo.NeId, v.AlarmId)
|
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] new alarm event already exists alarmId:%s", neInfo.CoreUID, neInfo.NeUID, v.AlarmId)
|
||||||
}
|
}
|
||||||
// seq 告警序号
|
// seq 告警序号
|
||||||
lastSeq := alarmEventService.FindAlarmEventSeqLast(neInfo.NeType, neInfo.NeId)
|
lastSeq := alarmEventService.FindAlarmEventSeqLast(neInfo.CoreUID, neInfo.NeUID)
|
||||||
// 产生时间
|
// 产生时间
|
||||||
eventTime := date.ParseStrToDate(v.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
|
eventTime := date.ParseStrToDate(v.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
|
||||||
|
|
||||||
alarmEvent := neDataModel.AlarmEvent{
|
alarmEvent := neDataModel.AlarmEvent{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmSeq: lastSeq + 1,
|
AlarmSeq: lastSeq + 1,
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
AlarmTitle: v.AlarmTitle,
|
AlarmTitle: v.AlarmTitle,
|
||||||
@@ -447,8 +450,9 @@ func alarmEventNew(neInfo neModel.NeInfo, v Alarm) (neDataModel.AlarmEvent, erro
|
|||||||
if v.AlarmCode == constants.ALARM_EVENT_REBOOT {
|
if v.AlarmCode == constants.ALARM_EVENT_REBOOT {
|
||||||
alarmService := neDataService.NewAlarm
|
alarmService := neDataService.NewAlarm
|
||||||
rows := alarmService.Find(neDataModel.Alarm{
|
rows := alarmService.Find(neDataModel.Alarm{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmStatus: "1",
|
AlarmStatus: "1",
|
||||||
})
|
})
|
||||||
for _, v := range rows {
|
for _, v := range rows {
|
||||||
@@ -457,11 +461,11 @@ func alarmEventNew(neInfo neModel.NeInfo, v Alarm) (neDataModel.AlarmEvent, erro
|
|||||||
}
|
}
|
||||||
// 网元重启后,有跟踪任务的需要重新补发启动任务
|
// 网元重启后,有跟踪任务的需要重新补发启动任务
|
||||||
if v.AlarmCode == constants.ALARM_EVENT_REBOOT {
|
if v.AlarmCode == constants.ALARM_EVENT_REBOOT {
|
||||||
traceService.NewTraceTask.RunUnstopped(neInfo.NeType, neInfo.NeId)
|
traceService.NewTraceTask.RunUnstopped(neInfo.CoreUID, neInfo.NeUID)
|
||||||
}
|
}
|
||||||
return alarmEvent, nil
|
return alarmEvent, nil
|
||||||
}
|
}
|
||||||
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] new alarm event fail", neInfo.NeType, neInfo.NeId)
|
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] new alarm event fail", neInfo.CoreUID, neInfo.NeUID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// mapToAlarm 将 []map[string]any 转换为 []Alarm
|
// mapToAlarm 将 []map[string]any 转换为 []Alarm
|
||||||
@@ -505,7 +509,7 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if len(data) == 0 {
|
if len(data) == 0 {
|
||||||
log.Infof("Not found sync alarms, neType=%s, neId=%s", neInfo.NeType, neInfo.NeId)
|
log.Infof("Not found sync alarms, neType=%s, neId=%s", neInfo.CoreUID, neInfo.NeUID)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -519,7 +523,7 @@ func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
v.AddInfo = fmt.Sprintf("NeInfo:%s", v.NeType)
|
v.AddInfo = fmt.Sprintf("NeInfo:%s", v.NeType)
|
||||||
}
|
}
|
||||||
if v.ObjectUid == "" {
|
if v.ObjectUid == "" {
|
||||||
v.ObjectUid = neInfo.RmUID
|
v.ObjectUid = neInfo.NeUID
|
||||||
}
|
}
|
||||||
if v.ObjectName == "" {
|
if v.ObjectName == "" {
|
||||||
v.ObjectName = neInfo.NeName
|
v.ObjectName = neInfo.NeName
|
||||||
|
|||||||
@@ -188,11 +188,12 @@ func writeLog(alarmData *Alarm, toUser, forwardBy string, err error) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
result = err.Error()
|
result = err.Error()
|
||||||
}
|
}
|
||||||
neInfo := neService.NewNeInfo.FindByRmuid(alarmData.NeId)
|
neInfo := neService.NewNeInfo.FindByCoreUidAndNeUid("*", alarmData.NeId)
|
||||||
eventTime := date.ParseStrToDate(alarmData.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
|
eventTime := date.ParseStrToDate(alarmData.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
|
||||||
alarmForwardLog := neDataModel.AlarmForwardLog{
|
alarmForwardLog := neDataModel.AlarmForwardLog{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmSeq: int64(alarmData.AlarmSeq),
|
AlarmSeq: int64(alarmData.AlarmSeq),
|
||||||
AlarmId: alarmData.AlarmId,
|
AlarmId: alarmData.AlarmId,
|
||||||
AlarmTitle: alarmData.AlarmTitle,
|
AlarmTitle: alarmData.AlarmTitle,
|
||||||
|
|||||||
@@ -83,13 +83,13 @@ func PostMML2ToNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
log.Debug("neType:", neType, "neId", neId)
|
log.Debug("neType:", neType, "neId", neId)
|
||||||
|
|
||||||
neInfoArr := neService.NewNeInfo.Find(neModel.NeInfo{NeType: neType, NeId: neId}, false, true)
|
neInfoArr := neService.NewNeInfo.Find(neModel.NeInfo{NeType: neType, NeUID: neId}, false, true)
|
||||||
if len(neInfoArr) < 1 {
|
if len(neInfoArr) < 1 {
|
||||||
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
neInfo := neInfoArr[0]
|
neInfo := neInfoArr[0]
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" || len(neInfo.Hosts) < 2 {
|
if neInfo.NeUID != neId || neInfo.IPAddr == "" || len(neInfo.Hosts) < 2 {
|
||||||
services.ResponseWithJson(w, 200, map[string]any{
|
services.ResponseWithJson(w, 200, map[string]any{
|
||||||
"code": 0,
|
"code": 0,
|
||||||
"msg": "neInfo not found",
|
"msg": "neInfo not found",
|
||||||
@@ -235,13 +235,13 @@ func PostMMLToNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
neInfoArr := neService.NewNeInfo.Find(neModel.NeInfo{NeType: neType, NeId: neId}, false, true)
|
neInfoArr := neService.NewNeInfo.Find(neModel.NeInfo{NeType: neType, NeUID: neId}, false, true)
|
||||||
if len(neInfoArr) < 1 {
|
if len(neInfoArr) < 1 {
|
||||||
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
neInfo := neInfoArr[0]
|
neInfo := neInfoArr[0]
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" || len(neInfo.Hosts) < 2 {
|
if neInfo.NeUID != neId || neInfo.IPAddr == "" || len(neInfo.Hosts) < 2 {
|
||||||
services.ResponseWithJson(w, 200, map[string]any{
|
services.ResponseWithJson(w, 200, map[string]any{
|
||||||
"code": 0,
|
"code": 0,
|
||||||
"msg": "neInfo not found",
|
"msg": "neInfo not found",
|
||||||
@@ -619,7 +619,7 @@ func PostMMLToNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
// UDM 特殊命令处理
|
// UDM 特殊命令处理
|
||||||
if neType == "UDM" && mml == "dec key" {
|
if neType == "UDM" && mml == "dec key" {
|
||||||
output, err := neService.NewNeInfo.NeRunSSHCmd(neInfo.NeType, neInfo.NeId, "cat /usr/local/etc/udm/ueKeyProfile.tmp")
|
output, err := neService.NewNeInfo.NeRunSSHCmd(neInfo.CoreUID, neInfo.NeUID, "cat /usr/local/etc/udm/ueKeyProfile.tmp")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
mmlResult = append(mmlResult, err.Error())
|
mmlResult = append(mmlResult, err.Error())
|
||||||
} else {
|
} else {
|
||||||
@@ -645,13 +645,13 @@ func PostMMLToOMC(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
log.Debug("neType:", neType, "neId", neId)
|
log.Debug("neType:", neType, "neId", neId)
|
||||||
|
|
||||||
neInfoArr := neService.NewNeInfo.Find(neModel.NeInfo{NeType: neType, NeId: neId}, false, false)
|
neInfoArr := neService.NewNeInfo.Find(neModel.NeInfo{NeType: neType, NeUID: neId}, false, false)
|
||||||
if len(neInfoArr) < 1 {
|
if len(neInfoArr) < 1 {
|
||||||
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
services.ResponseInternalServerError500DatabaseOperationFailed(w)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
neInfo := neInfoArr[0]
|
neInfo := neInfoArr[0]
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.NeUID != neId || neInfo.IPAddr == "" {
|
||||||
services.ResponseWithJson(w, 200, map[string]any{
|
services.ResponseWithJson(w, 200, map[string]any{
|
||||||
"code": 0,
|
"code": 0,
|
||||||
"msg": "neInfo not found",
|
"msg": "neInfo not found",
|
||||||
@@ -667,7 +667,7 @@ func PostMMLToOMC(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
log.Trace("Body:", string(body))
|
log.Trace("Body:", string(body))
|
||||||
|
|
||||||
hostUri := fmt.Sprintf("http://%s:%d", neInfo.IP, neInfo.Port)
|
hostUri := fmt.Sprintf("http://%s:%d", neInfo.IPAddr, neInfo.Port)
|
||||||
omcMmlVar := &mmlp.MmlVar{
|
omcMmlVar := &mmlp.MmlVar{
|
||||||
Version: global.Version,
|
Version: global.Version,
|
||||||
Output: mmlp.DefaultFormatType,
|
Output: mmlp.DefaultFormatType,
|
||||||
|
|||||||
@@ -168,8 +168,7 @@ func saveKPIData(kpiReport KpiReport, index int64) int64 {
|
|||||||
KpiValuesByte, _ := json.Marshal(KpiValues)
|
KpiValuesByte, _ := json.Marshal(KpiValues)
|
||||||
kpiData := neDataModel.KpiReport{
|
kpiData := neDataModel.KpiReport{
|
||||||
NeType: taskNe.NeType,
|
NeType: taskNe.NeType,
|
||||||
NeName: taskNe.NEName,
|
NeUID: taskNe.RmUID,
|
||||||
RmUid: taskNe.RmUID,
|
|
||||||
Date: date.ParseDateToStr(receiverTime, "2006-01-02"),
|
Date: date.ParseDateToStr(receiverTime, "2006-01-02"),
|
||||||
StartTime: date.ParseDateToStr(startTime, "15:04:05"),
|
StartTime: date.ParseDateToStr(startTime, "15:04:05"),
|
||||||
EndTime: date.ParseDateToStr(endTime, "15:04:05"),
|
EndTime: date.ParseDateToStr(endTime, "15:04:05"),
|
||||||
@@ -183,8 +182,8 @@ func saveKPIData(kpiReport KpiReport, index int64) int64 {
|
|||||||
// 指标事件对象
|
// 指标事件对象
|
||||||
kpiEvent := map[string]any{
|
kpiEvent := map[string]any{
|
||||||
"neType": kpiData.NeType,
|
"neType": kpiData.NeType,
|
||||||
"neName": kpiData.NeName,
|
"coreUid": kpiData.CoreUID,
|
||||||
"rmUID": kpiData.RmUid,
|
"neUid": kpiData.NeUID,
|
||||||
"startIndex": kpiData.Index,
|
"startIndex": kpiData.Index,
|
||||||
"timeGroup": kpiData.CreatedAt,
|
"timeGroup": kpiData.CreatedAt,
|
||||||
// kip_id ...
|
// kip_id ...
|
||||||
@@ -194,15 +193,15 @@ func saveKPIData(kpiReport KpiReport, index int64) int64 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 发送到匹配的网元
|
// 发送到匹配的网元
|
||||||
neInfo := neService.NewNeInfo.FindByRmuid(kpiData.RmUid)
|
neInfo := neService.NewNeInfo.FindByCoreUidAndNeUid("*", kpiData.NeUID)
|
||||||
if neInfo.RmUID == kpiData.RmUid {
|
if neInfo.NeUID == kpiData.NeUID {
|
||||||
// 推送到ws订阅组
|
// 推送到ws订阅组
|
||||||
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI, neInfo.NeType, neInfo.NeId), kpiEvent)
|
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI, neInfo.CoreUID, neInfo.NeUID), kpiEvent)
|
||||||
if neInfo.NeType == "UPF" {
|
if neInfo.NeType == "UPF" {
|
||||||
// 更新UPF总流量
|
// 更新UPF总流量
|
||||||
upValue := parse.Number(kpiEvent["UPF.03"])
|
upValue := parse.Number(kpiEvent["UPF.03"])
|
||||||
downValue := parse.Number(kpiEvent["UPF.06"])
|
downValue := parse.Number(kpiEvent["UPF.06"])
|
||||||
neDataService.NewKpiReport.UPFTodayFlowUpdate(neInfo.RmUID, upValue, downValue)
|
neDataService.NewKpiReport.UPFTodayFlowUpdate(neInfo.NeUID, upValue, downValue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -248,8 +247,8 @@ func saveKPIDataC(kpiReport KpiReport, index int64) int64 {
|
|||||||
KpiValuesByte, _ := json.Marshal(KpiValues)
|
KpiValuesByte, _ := json.Marshal(KpiValues)
|
||||||
kpiData := neDataModel.KpiCReport{
|
kpiData := neDataModel.KpiCReport{
|
||||||
NeType: taskNe.NeType,
|
NeType: taskNe.NeType,
|
||||||
NeName: taskNe.NEName,
|
CoreUID: taskNe.NEName,
|
||||||
RmUid: taskNe.RmUID,
|
NeUID: taskNe.RmUID,
|
||||||
Date: date.ParseDateToStr(receiverTime, "2006-01-02"),
|
Date: date.ParseDateToStr(receiverTime, "2006-01-02"),
|
||||||
StartTime: date.ParseDateToStr(startTime, "15:04:05"),
|
StartTime: date.ParseDateToStr(startTime, "15:04:05"),
|
||||||
EndTime: date.ParseDateToStr(endTime, "15:04:05"),
|
EndTime: date.ParseDateToStr(endTime, "15:04:05"),
|
||||||
@@ -263,8 +262,8 @@ func saveKPIDataC(kpiReport KpiReport, index int64) int64 {
|
|||||||
// 指标事件对象
|
// 指标事件对象
|
||||||
kpiEvent := map[string]any{
|
kpiEvent := map[string]any{
|
||||||
"neType": kpiData.NeType,
|
"neType": kpiData.NeType,
|
||||||
"neName": kpiData.NeName,
|
"neName": kpiData.NeUID,
|
||||||
"rmUID": kpiData.RmUid,
|
"rmUID": kpiData.NeUID,
|
||||||
"startIndex": kpiData.Index,
|
"startIndex": kpiData.Index,
|
||||||
"timeGroup": kpiData.CreatedAt,
|
"timeGroup": kpiData.CreatedAt,
|
||||||
// kip_id ...
|
// kip_id ...
|
||||||
@@ -274,10 +273,10 @@ func saveKPIDataC(kpiReport KpiReport, index int64) int64 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 发送到匹配的网元
|
// 发送到匹配的网元
|
||||||
neInfo := neService.NewNeInfo.FindByRmuid(kpiData.RmUid)
|
neInfo := neService.NewNeInfo.FindByCoreUidAndNeUid("*", kpiData.NeUID)
|
||||||
if neInfo.RmUID == kpiData.RmUid {
|
if neInfo.NeUID == kpiData.NeUID {
|
||||||
// 推送自定义KPI到ws订阅组
|
// 推送自定义KPI到ws订阅组
|
||||||
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI_C, neInfo.NeType, neInfo.NeId), kpiEvent)
|
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI_C, neInfo.CoreUID, neInfo.NeUID), kpiEvent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return insertId
|
return insertId
|
||||||
@@ -379,12 +378,12 @@ func PostKPIReportFromNFOld(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 发送到匹配的网元
|
// 发送到匹配的网元
|
||||||
neInfo := neService.NewNeInfo.FindByRmuid(kpiData.RmUid)
|
neInfo := neService.NewNeInfo.FindByCoreUidAndNeUid("*", kpiData.RmUid)
|
||||||
// custom kpi report to FE
|
// custom kpi report to FE
|
||||||
kpiCEvent := map[string]any{
|
kpiCEvent := map[string]any{
|
||||||
// kip_id ...
|
// kip_id ...
|
||||||
"neType": kpiData.NEType,
|
"neType": kpiData.NEType,
|
||||||
"neId": neInfo.NeId,
|
"neId": neInfo.NeUID,
|
||||||
"neName": kpiData.NEName,
|
"neName": kpiData.NEName,
|
||||||
"rmUID": kpiData.RmUid,
|
"rmUID": kpiData.RmUid,
|
||||||
"startIndex": kpiData.Index,
|
"startIndex": kpiData.Index,
|
||||||
@@ -413,11 +412,11 @@ func PostKPIReportFromNFOld(w http.ResponseWriter, r *http.Request) {
|
|||||||
// KPI自定义指标入库
|
// KPI自定义指标入库
|
||||||
kpi_c_report.InsertKpiCReport(kpiData.NEType, report)
|
kpi_c_report.InsertKpiCReport(kpiData.NEType, report)
|
||||||
|
|
||||||
if neInfo.RmUID == kpiData.RmUid {
|
if neInfo.NeUID == kpiData.RmUid {
|
||||||
// 推送到ws订阅组
|
// 推送到ws订阅组
|
||||||
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI, neInfo.NeType, neInfo.NeId), kpiEvent)
|
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI, neInfo.CoreUID, neInfo.NeUID), kpiEvent)
|
||||||
// 推送自定义KPI到ws订阅组
|
// 推送自定义KPI到ws订阅组
|
||||||
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI_C, neInfo.NeType, neInfo.NeId), kpiCEvent)
|
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_KPI_C, neInfo.CoreUID, neInfo.NeUID), kpiCEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
services.ResponseStatusOK204NoContent(w)
|
services.ResponseStatusOK204NoContent(w)
|
||||||
|
|||||||
@@ -258,11 +258,11 @@ func GetUEInfoFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
neInfo := neService.NewNeInfo.FindByNeTypeAndNeID(neType, neId)
|
neInfo := neService.NewNeInfo.FindByCoreUidAndNeUid(neType, neId)
|
||||||
|
|
||||||
var response services.MapResponse
|
var response services.MapResponse
|
||||||
if neInfo.NeId == neId && neInfo.NeId != "" {
|
if neInfo.NeUID == neId && neInfo.NeUID != "" {
|
||||||
requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI)
|
requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IPAddr, neInfo.Port, r.RequestURI)
|
||||||
log.Debug("requestURI2NF:", requestURI2NF)
|
log.Debug("requestURI2NF:", requestURI2NF)
|
||||||
resp, err := client.R().
|
resp, err := client.R().
|
||||||
EnableTrace().
|
EnableTrace().
|
||||||
@@ -652,8 +652,8 @@ func PostNBInfoFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
neInfo := neService.NewNeInfo.FindByRmuid(body.RmUID)
|
neInfo := neService.NewNeInfo.FindByCoreUidAndNeUid("*", body.RmUID)
|
||||||
if neInfo.RmUID != body.RmUID {
|
if neInfo.NeUID != body.RmUID {
|
||||||
services.ResponseInternalServerError500ProcessError(w, fmt.Errorf("inconsistent network element rmUID"))
|
services.ResponseInternalServerError500ProcessError(w, fmt.Errorf("inconsistent network element rmUID"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -674,8 +674,8 @@ func PostNBInfoFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
nbStateService.Insert(neDataModel.NBState{
|
nbStateService.Insert(neDataModel.NBState{
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
CoreUID: neInfo.CoreUID,
|
||||||
RmUid: neInfo.RmUID,
|
NeUID: neInfo.NeUID,
|
||||||
Address: v.Address,
|
Address: v.Address,
|
||||||
Name: v.Name,
|
Name: v.Name,
|
||||||
Position: v.Position,
|
Position: v.Position,
|
||||||
|
|||||||
@@ -208,17 +208,17 @@ type NeInfo struct {
|
|||||||
|
|
||||||
func XormGetNeInfo(neType string, neId string) (*NeInfo, error) {
|
func XormGetNeInfo(neType string, neId string) (*NeInfo, error) {
|
||||||
log.Debug("XormGetNeInfo processing... ")
|
log.Debug("XormGetNeInfo processing... ")
|
||||||
neInfox := neService.NewNeInfo.FindByNeTypeAndNeID(neType, neId)
|
neInfox := neService.NewNeInfo.FindByCoreUidAndNeUid(neType, neId)
|
||||||
|
|
||||||
neInfo := new(NeInfo)
|
neInfo := new(NeInfo)
|
||||||
neInfo.NeType = neType
|
neInfo.NeType = neType
|
||||||
neInfo.NeId = neId
|
neInfo.NeId = neId
|
||||||
neInfo.RmUID = neInfox.RmUID
|
neInfo.RmUID = neInfox.NeType
|
||||||
neInfo.NeName = neInfox.NeName
|
neInfo.NeName = neInfox.NeName
|
||||||
neInfo.Ip = neInfox.IP
|
neInfo.Ip = neInfox.IPAddr
|
||||||
neInfo.Port = fmt.Sprint(neInfox.Port)
|
neInfo.Port = fmt.Sprint(neInfox.Port)
|
||||||
neInfo.PvFlag = neInfox.PvFlag
|
neInfo.PvFlag = neInfox.PvFlag
|
||||||
neInfo.NeAddress = neInfox.NeAddress
|
neInfo.NeAddress = neInfox.MacAddr
|
||||||
neInfo.Province = neInfox.Province
|
neInfo.Province = neInfox.Province
|
||||||
neInfo.VendorName = neInfox.VendorName
|
neInfo.VendorName = neInfox.VendorName
|
||||||
neInfo.Dn = neInfox.Dn
|
neInfo.Dn = neInfox.Dn
|
||||||
|
|||||||
@@ -133,29 +133,6 @@ func init() {
|
|||||||
Register("POST", pm.CustomMeasurementUri, pm.PostMeasurementFromNF, nil)
|
Register("POST", pm.CustomMeasurementUri, pm.PostMeasurementFromNF, nil)
|
||||||
Register("GET", pm.CustomMeasurementUri, pm.GetMeasurementFromNF, nil)
|
Register("GET", pm.CustomMeasurementUri, pm.GetMeasurementFromNF, nil)
|
||||||
|
|
||||||
// parameter config management
|
|
||||||
Register("GET", cm.ParamConfigUri, cm.GetParamConfigFromNF, nil)
|
|
||||||
Register("POST", cm.ParamConfigUri, cm.PostParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("log.operate.title.neConfig", collectlogs.BUSINESS_TYPE_INSERT)))
|
|
||||||
Register("PUT", cm.ParamConfigUri, cm.PutParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("log.operate.title.neConfig", collectlogs.BUSINESS_TYPE_UPDATE)))
|
|
||||||
Register("DELETE", cm.ParamConfigUri, cm.DeleteParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("log.operate.title.neConfig", collectlogs.BUSINESS_TYPE_INSERT)))
|
|
||||||
|
|
||||||
Register("GET", cm.CustomParamConfigUri, cm.GetParamConfigFromNF, nil)
|
|
||||||
Register("POST", cm.CustomParamConfigUri, cm.PostParamConfigToNF, nil)
|
|
||||||
Register("PUT", cm.CustomParamConfigUri, cm.PutParamConfigToNF, nil)
|
|
||||||
Register("DELETE", cm.CustomParamConfigUri, cm.DeleteParamConfigToNF, nil)
|
|
||||||
|
|
||||||
// Get/Create/Modify/Delete NE info
|
|
||||||
Register("GET", cm.UriNeInfo, cm.GetNeInfo, nil)
|
|
||||||
Register("POST", cm.UriNeInfo, cm.PostNeInfo, midware.LogOperate(collectlogs.OptionNew("NE Info", collectlogs.BUSINESS_TYPE_INSERT)))
|
|
||||||
Register("PUT", cm.UriNeInfo, cm.PutNeInfo, midware.LogOperate(collectlogs.OptionNew("NE Info", collectlogs.BUSINESS_TYPE_UPDATE)))
|
|
||||||
Register("DELETE", cm.UriNeInfo, cm.DeleteNeInfo, midware.LogOperate(collectlogs.OptionNew("NE Info", collectlogs.BUSINESS_TYPE_DELETE)))
|
|
||||||
|
|
||||||
// Get/Create/Modify/Delete NE info
|
|
||||||
Register("GET", cm.CustomUriNeInfo, cm.GetNeInfo, nil)
|
|
||||||
Register("POST", cm.CustomUriNeInfo, cm.PostNeInfo, nil)
|
|
||||||
Register("PUT", cm.CustomUriNeInfo, cm.PutNeInfo, nil)
|
|
||||||
Register("DELETE", cm.CustomUriNeInfo, cm.DeleteNeInfo, nil)
|
|
||||||
|
|
||||||
//ne service action handle
|
//ne service action handle
|
||||||
Register("POST", cm.UriNeService, cm.PostNeServiceAction, nil)
|
Register("POST", cm.UriNeService, cm.PostNeServiceAction, nil)
|
||||||
//ne service action handle
|
//ne service action handle
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ func (c *ConnTelnet) NewClient() (*ConnTelnet, error) {
|
|||||||
proto = "tcp6"
|
proto = "tcp6"
|
||||||
c.Addr = fmt.Sprintf("[%s]", c.Addr)
|
c.Addr = fmt.Sprintf("[%s]", c.Addr)
|
||||||
}
|
}
|
||||||
addr := fmt.Sprintf("%s:%d", c.Addr, c.Port)
|
addr := net.JoinHostPort(c.Addr, fmt.Sprint(c.Port))
|
||||||
|
|
||||||
// 默认等待5s
|
// 默认等待5s
|
||||||
if c.DialTimeOut == 0 {
|
if c.DialTimeOut == 0 {
|
||||||
|
|||||||
@@ -4,8 +4,10 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"hash/fnv"
|
"hash/fnv"
|
||||||
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"be.ems/src/framework/cmd"
|
"be.ems/src/framework/cmd"
|
||||||
@@ -24,29 +26,32 @@ var LaunchInfo map[string]any
|
|||||||
|
|
||||||
// codeGenerate 生成机器的唯一标识符
|
// codeGenerate 生成机器的唯一标识符
|
||||||
func codeGenerate() string {
|
func codeGenerate() string {
|
||||||
var machineID string
|
var machineID []string
|
||||||
|
|
||||||
// 获取主机名
|
// 获取所有网络接口信息
|
||||||
hostname, err := os.Hostname()
|
interfaces, _ := net.Interfaces()
|
||||||
if err != nil {
|
for _, iface := range interfaces {
|
||||||
panic(err)
|
// 检查接口是否有 MAC 地址
|
||||||
|
if iface.HardwareAddr != nil {
|
||||||
|
machineID = append(machineID, iface.HardwareAddr.String())
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
machineID += hostname
|
|
||||||
|
|
||||||
// 获取 CPU 信息
|
// 获取 CPU 信息
|
||||||
numCPU := runtime.NumCPU()
|
numCPU := runtime.NumCPU()
|
||||||
machineID += fmt.Sprintf("%d", numCPU)
|
machineID = append(machineID, fmt.Sprintf("%d", numCPU))
|
||||||
|
|
||||||
// 获取操作系统信息
|
// 获取操作系统信息
|
||||||
osInfo := runtime.GOOS
|
osInfo := runtime.GOOS
|
||||||
machineID += osInfo
|
machineID = append(machineID, osInfo)
|
||||||
|
|
||||||
// 使用哈希函数生成机器码
|
// 使用哈希函数生成机器码
|
||||||
h := fnv.New32a()
|
h := fnv.New32a()
|
||||||
h.Write([]byte(machineID))
|
h.Write([]byte(strings.Join(machineID, "&")))
|
||||||
machineCode := h.Sum32()
|
machineCode := h.Sum32()
|
||||||
|
|
||||||
return fmt.Sprintf("%x", machineCode)
|
return strings.ToUpper(fmt.Sprintf("%x", machineCode))
|
||||||
}
|
}
|
||||||
|
|
||||||
// 网管本地路径
|
// 网管本地路径
|
||||||
@@ -69,8 +74,8 @@ func codeFileRead() (map[string]any, error) {
|
|||||||
}
|
}
|
||||||
content := string(bytes)
|
content := string(bytes)
|
||||||
// 解密
|
// 解密
|
||||||
hostKey := config.Get("aes.hostKey").(string)
|
appKey := config.Get("aes.appKey").(string)
|
||||||
contentDe, err := crypto.AESDecryptBase64(content, hostKey)
|
contentDe, err := crypto.AESDecryptBase64(content, appKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("CodeFileRead decrypt: %v", err.Error())
|
logger.Errorf("CodeFileRead decrypt: %v", err.Error())
|
||||||
return mapData, fmt.Errorf("decrypt fail")
|
return mapData, fmt.Errorf("decrypt fail")
|
||||||
@@ -88,8 +93,8 @@ func codeFileRead() (map[string]any, error) {
|
|||||||
func codeFileWrite(data map[string]any) error {
|
func codeFileWrite(data map[string]any) error {
|
||||||
jsonByte, _ := json.Marshal(data)
|
jsonByte, _ := json.Marshal(data)
|
||||||
// 加密
|
// 加密
|
||||||
hostKey := config.Get("aes.hostKey").(string)
|
appKey := config.Get("aes.appKey").(string)
|
||||||
contentEn, err := crypto.AESEncryptBase64(string(jsonByte), hostKey)
|
contentEn, err := crypto.AESEncryptBase64(string(jsonByte), appKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("insert encrypt: %v", err.Error())
|
logger.Errorf("insert encrypt: %v", err.Error())
|
||||||
return fmt.Errorf("encrypt fail")
|
return fmt.Errorf("encrypt fail")
|
||||||
|
|||||||
@@ -72,22 +72,22 @@ func (s *BackupExportCDRProcessor) Execute(data any) (any, error) {
|
|||||||
case "ims":
|
case "ims":
|
||||||
neList := s.neInfoService.Find(neModel.NeInfo{NeType: "IMS"}, false, false)
|
neList := s.neInfoService.Find(neModel.NeInfo{NeType: "IMS"}, false, false)
|
||||||
for _, ne := range neList {
|
for _, ne := range neList {
|
||||||
result[ne.NeName] = s.exportIMS(params.Hour, ne.RmUID, params.FileType)
|
result[ne.NeName] = s.exportIMS(ne.CoreUID, ne.NeUID, params.Hour, params.FileType)
|
||||||
}
|
}
|
||||||
case "smsc":
|
case "smsc":
|
||||||
neList := s.neInfoService.Find(neModel.NeInfo{NeType: "SMSC"}, false, false)
|
neList := s.neInfoService.Find(neModel.NeInfo{NeType: "SMSC"}, false, false)
|
||||||
for _, ne := range neList {
|
for _, ne := range neList {
|
||||||
result[ne.NeName] = s.exportSMSC(params.Hour, ne.RmUID, params.FileType)
|
result[ne.NeName] = s.exportSMSC(ne.CoreUID, ne.NeUID, params.Hour, params.FileType)
|
||||||
}
|
}
|
||||||
case "smf":
|
case "smf":
|
||||||
neList := s.neInfoService.Find(neModel.NeInfo{NeType: "SMF"}, false, false)
|
neList := s.neInfoService.Find(neModel.NeInfo{NeType: "SMF"}, false, false)
|
||||||
for _, ne := range neList {
|
for _, ne := range neList {
|
||||||
result[ne.NeName] = s.exportSMF(params.Hour, ne.RmUID, params.FileType)
|
result[ne.NeName] = s.exportSMF(ne.CoreUID, ne.NeUID, params.Hour, params.FileType)
|
||||||
}
|
}
|
||||||
case "sgwc":
|
case "sgwc":
|
||||||
neList := s.neInfoService.Find(neModel.NeInfo{NeType: "SGWC"}, false, false)
|
neList := s.neInfoService.Find(neModel.NeInfo{NeType: "SGWC"}, false, false)
|
||||||
for _, ne := range neList {
|
for _, ne := range neList {
|
||||||
result[ne.NeName] = s.exportSGWC(params.Hour, ne.RmUID, params.FileType)
|
result[ne.NeName] = s.exportSGWC(ne.CoreUID, ne.NeUID, params.Hour, params.FileType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -97,7 +97,7 @@ func (s *BackupExportCDRProcessor) Execute(data any) (any, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportIMS 导出IMS-CDR会话事件数据
|
// exportIMS 导出IMS-CDR会话事件数据
|
||||||
func (s BackupExportCDRProcessor) exportIMS(hour int, rmUID, fileType string) string {
|
func (s BackupExportCDRProcessor) exportIMS(coreUid, neUid string, hour int, fileType string) string {
|
||||||
// 前 hour 小时
|
// 前 hour 小时
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
||||||
@@ -107,7 +107,8 @@ func (s BackupExportCDRProcessor) exportIMS(hour int, rmUID, fileType string) st
|
|||||||
query := neDataModel.CDREventIMSQuery{
|
query := neDataModel.CDREventIMSQuery{
|
||||||
SortField: "timestamp",
|
SortField: "timestamp",
|
||||||
SortOrder: "asc",
|
SortOrder: "asc",
|
||||||
RmUID: rmUID,
|
CoreUID: coreUid,
|
||||||
|
NeUID: neUid,
|
||||||
BeginTime: start.UnixMilli(),
|
BeginTime: start.UnixMilli(),
|
||||||
EndTime: end.UnixMilli(),
|
EndTime: end.UnixMilli(),
|
||||||
PageNum: 1,
|
PageNum: 1,
|
||||||
@@ -232,7 +233,7 @@ func (s BackupExportCDRProcessor) exportIMS(hour int, rmUID, fileType string) st
|
|||||||
|
|
||||||
data = append(data, []string{
|
data = append(data, []string{
|
||||||
fmt.Sprint(row.ID),
|
fmt.Sprint(row.ID),
|
||||||
row.NeName,
|
row.NeUID,
|
||||||
recordType,
|
recordType,
|
||||||
callTypeLable,
|
callTypeLable,
|
||||||
caller,
|
caller,
|
||||||
@@ -359,7 +360,7 @@ func (s BackupExportCDRProcessor) exportIMS(hour int, rmUID, fileType string) st
|
|||||||
|
|
||||||
dataCells = append(dataCells, map[string]any{
|
dataCells = append(dataCells, map[string]any{
|
||||||
"A" + idx: row.ID,
|
"A" + idx: row.ID,
|
||||||
"B" + idx: row.NeName,
|
"B" + idx: row.NeUID,
|
||||||
"C" + idx: recordType,
|
"C" + idx: recordType,
|
||||||
"D" + idx: callTypeLable,
|
"D" + idx: callTypeLable,
|
||||||
"E" + idx: caller,
|
"E" + idx: caller,
|
||||||
@@ -386,7 +387,7 @@ func (s BackupExportCDRProcessor) exportIMS(hour int, rmUID, fileType string) st
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportSMSC 导出SMSC-CDR会话事件数据
|
// exportSMSC 导出SMSC-CDR会话事件数据
|
||||||
func (s BackupExportCDRProcessor) exportSMSC(hour int, rmUID, fileType string) string {
|
func (s BackupExportCDRProcessor) exportSMSC(coreUid, neUid string, hour int, fileType string) string {
|
||||||
// 前 hour 小时
|
// 前 hour 小时
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
||||||
@@ -396,7 +397,8 @@ func (s BackupExportCDRProcessor) exportSMSC(hour int, rmUID, fileType string) s
|
|||||||
query := neDataModel.CDREventSMSCQuery{
|
query := neDataModel.CDREventSMSCQuery{
|
||||||
SortField: "timestamp",
|
SortField: "timestamp",
|
||||||
SortOrder: "asc",
|
SortOrder: "asc",
|
||||||
RmUID: rmUID,
|
CoreUID: coreUid,
|
||||||
|
NeUID: neUid,
|
||||||
BeginTime: start.UnixMilli(),
|
BeginTime: start.UnixMilli(),
|
||||||
EndTime: end.UnixMilli(),
|
EndTime: end.UnixMilli(),
|
||||||
PageNum: 1,
|
PageNum: 1,
|
||||||
@@ -488,7 +490,7 @@ func (s BackupExportCDRProcessor) exportSMSC(hour int, rmUID, fileType string) s
|
|||||||
|
|
||||||
data = append(data, []string{
|
data = append(data, []string{
|
||||||
fmt.Sprint(row.ID),
|
fmt.Sprint(row.ID),
|
||||||
row.NeName,
|
row.NeUID,
|
||||||
recordType,
|
recordType,
|
||||||
serviceType,
|
serviceType,
|
||||||
caller,
|
caller,
|
||||||
@@ -579,7 +581,7 @@ func (s BackupExportCDRProcessor) exportSMSC(hour int, rmUID, fileType string) s
|
|||||||
|
|
||||||
dataCells = append(dataCells, map[string]any{
|
dataCells = append(dataCells, map[string]any{
|
||||||
"A" + idx: row.ID,
|
"A" + idx: row.ID,
|
||||||
"B" + idx: row.NeName,
|
"B" + idx: row.NeUID,
|
||||||
"C" + idx: recordType,
|
"C" + idx: recordType,
|
||||||
"D" + idx: serviceType,
|
"D" + idx: serviceType,
|
||||||
"E" + idx: caller,
|
"E" + idx: caller,
|
||||||
@@ -603,7 +605,7 @@ func (s BackupExportCDRProcessor) exportSMSC(hour int, rmUID, fileType string) s
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportSMF 导出SMF-CDR会话事件数据
|
// exportSMF 导出SMF-CDR会话事件数据
|
||||||
func (s BackupExportCDRProcessor) exportSMF(hour int, rmUID, fileType string) string {
|
func (s BackupExportCDRProcessor) exportSMF(coreUid, neUid string, hour int, fileType string) string {
|
||||||
// 前 hour 小时
|
// 前 hour 小时
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
||||||
@@ -612,7 +614,8 @@ func (s BackupExportCDRProcessor) exportSMF(hour int, rmUID, fileType string) st
|
|||||||
query := neDataModel.CDREventSMFQuery{
|
query := neDataModel.CDREventSMFQuery{
|
||||||
SortField: "timestamp",
|
SortField: "timestamp",
|
||||||
SortOrder: "asc",
|
SortOrder: "asc",
|
||||||
RmUID: rmUID,
|
CoreUID: coreUid,
|
||||||
|
NeUID: neUid,
|
||||||
BeginTime: start.UnixMilli(),
|
BeginTime: start.UnixMilli(),
|
||||||
EndTime: end.UnixMilli(),
|
EndTime: end.UnixMilli(),
|
||||||
PageNum: 1,
|
PageNum: 1,
|
||||||
@@ -787,8 +790,8 @@ func (s BackupExportCDRProcessor) exportSMF(hour int, rmUID, fileType string) st
|
|||||||
data = append(data, []string{
|
data = append(data, []string{
|
||||||
fmt.Sprint(row.ID),
|
fmt.Sprint(row.ID),
|
||||||
chargingID,
|
chargingID,
|
||||||
row.NeName,
|
row.NeType,
|
||||||
row.RmUid,
|
row.NeUID,
|
||||||
subscriptionIDData,
|
subscriptionIDData,
|
||||||
subscriptionIDType,
|
subscriptionIDType,
|
||||||
fmt.Sprint(dataVolumeUplink),
|
fmt.Sprint(dataVolumeUplink),
|
||||||
@@ -974,8 +977,8 @@ func (s BackupExportCDRProcessor) exportSMF(hour int, rmUID, fileType string) st
|
|||||||
dataCells = append(dataCells, map[string]any{
|
dataCells = append(dataCells, map[string]any{
|
||||||
"A" + idx: row.ID,
|
"A" + idx: row.ID,
|
||||||
"B" + idx: chargingID,
|
"B" + idx: chargingID,
|
||||||
"C" + idx: row.NeName,
|
"C" + idx: row.NeType,
|
||||||
"D" + idx: row.RmUid,
|
"D" + idx: row.NeUID,
|
||||||
"E" + idx: subscriptionIDData,
|
"E" + idx: subscriptionIDData,
|
||||||
"F" + idx: subscriptionIDType,
|
"F" + idx: subscriptionIDType,
|
||||||
"G" + idx: dataVolumeUplink,
|
"G" + idx: dataVolumeUplink,
|
||||||
@@ -1011,7 +1014,7 @@ func (s BackupExportCDRProcessor) exportSMF(hour int, rmUID, fileType string) st
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportSGWC 导出SGWC-CDR会话事件数据
|
// exportSGWC 导出SGWC-CDR会话事件数据
|
||||||
func (s BackupExportCDRProcessor) exportSGWC(hour int, rmUID, fileType string) string {
|
func (s BackupExportCDRProcessor) exportSGWC(coreUid, neUid string, hour int, fileType string) string {
|
||||||
// 前 hour 小时
|
// 前 hour 小时
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
end := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location())
|
||||||
@@ -1020,7 +1023,8 @@ func (s BackupExportCDRProcessor) exportSGWC(hour int, rmUID, fileType string) s
|
|||||||
query := neDataModel.CDREventSGWCQuery{
|
query := neDataModel.CDREventSGWCQuery{
|
||||||
SortField: "timestamp",
|
SortField: "timestamp",
|
||||||
SortOrder: "asc",
|
SortOrder: "asc",
|
||||||
RmUID: rmUID,
|
CoreUID: coreUid,
|
||||||
|
NeUID: neUid,
|
||||||
BeginTime: start.UnixMilli(),
|
BeginTime: start.UnixMilli(),
|
||||||
EndTime: end.UnixMilli(),
|
EndTime: end.UnixMilli(),
|
||||||
PageNum: 1,
|
PageNum: 1,
|
||||||
@@ -1197,8 +1201,8 @@ func (s BackupExportCDRProcessor) exportSGWC(hour int, rmUID, fileType string) s
|
|||||||
|
|
||||||
data = append(data, []string{
|
data = append(data, []string{
|
||||||
fmt.Sprint(row.ID),
|
fmt.Sprint(row.ID),
|
||||||
row.NeName,
|
row.NeType,
|
||||||
row.RmUid,
|
row.NeUID,
|
||||||
chargingID,
|
chargingID,
|
||||||
servedIMSI,
|
servedIMSI,
|
||||||
servedMSISDN,
|
servedMSISDN,
|
||||||
@@ -1388,8 +1392,8 @@ func (s BackupExportCDRProcessor) exportSGWC(hour int, rmUID, fileType string) s
|
|||||||
|
|
||||||
dataCells = append(dataCells, map[string]any{
|
dataCells = append(dataCells, map[string]any{
|
||||||
"A" + idx: row.ID,
|
"A" + idx: row.ID,
|
||||||
"B" + idx: row.NeName,
|
"B" + idx: row.NeType,
|
||||||
"C" + idx: row.RmUid,
|
"C" + idx: row.NeUID,
|
||||||
"D" + idx: chargingID,
|
"D" + idx: chargingID,
|
||||||
"E" + idx: servedIMSI,
|
"E" + idx: servedIMSI,
|
||||||
"F" + idx: servedMSISDN,
|
"F" + idx: servedMSISDN,
|
||||||
|
|||||||
@@ -342,8 +342,8 @@ func (s BackupExportTableProcessor) exportSMF(hour int, columns []string, filePa
|
|||||||
if col == "id" {
|
if col == "id" {
|
||||||
arr[i] = fmt.Sprintf("%d", row.ID)
|
arr[i] = fmt.Sprintf("%d", row.ID)
|
||||||
}
|
}
|
||||||
if col == "neName" || col == "ne_name" {
|
if col == "neType" || col == "ne_type" {
|
||||||
arr[i] = fmt.Sprintf("%v", row.NeName)
|
arr[i] = fmt.Sprintf("%v", row.NeType)
|
||||||
}
|
}
|
||||||
// 单层json
|
// 单层json
|
||||||
if strings.HasPrefix("json", col) {
|
if strings.HasPrefix("json", col) {
|
||||||
@@ -461,8 +461,8 @@ func (s BackupExportTableProcessor) exportIMS(hour int, columns []string, filePa
|
|||||||
if col == "id" {
|
if col == "id" {
|
||||||
arr[i] = fmt.Sprintf("%d", row.ID)
|
arr[i] = fmt.Sprintf("%d", row.ID)
|
||||||
}
|
}
|
||||||
if col == "neName" || col == "ne_name" {
|
if col == "neType" || col == "ne_type" {
|
||||||
arr[i] = fmt.Sprintf("%v", row.NeName)
|
arr[i] = fmt.Sprintf("%v", row.NeType)
|
||||||
}
|
}
|
||||||
// 单层json
|
// 单层json
|
||||||
if strings.HasPrefix("json", col) {
|
if strings.HasPrefix("json", col) {
|
||||||
@@ -651,8 +651,8 @@ func (s BackupExportTableProcessor) exportSMSC(hour int, columns []string, fileP
|
|||||||
if v == "id" {
|
if v == "id" {
|
||||||
arr[i] = fmt.Sprintf("%d", row.ID)
|
arr[i] = fmt.Sprintf("%d", row.ID)
|
||||||
}
|
}
|
||||||
if v == "neName" || v == "ne_name" {
|
if v == "neType" || v == "ne_type" {
|
||||||
arr[i] = fmt.Sprintf("%v", row.NeName)
|
arr[i] = fmt.Sprintf("%v", row.NeType)
|
||||||
}
|
}
|
||||||
// 单层json
|
// 单层json
|
||||||
if strings.HasPrefix("json", v) {
|
if strings.HasPrefix("json", v) {
|
||||||
@@ -840,8 +840,8 @@ func (s BackupExportTableProcessor) exportSGWC(hour int, columns []string, fileP
|
|||||||
if v == "id" {
|
if v == "id" {
|
||||||
arr[i] = fmt.Sprintf("%d", row.ID)
|
arr[i] = fmt.Sprintf("%d", row.ID)
|
||||||
}
|
}
|
||||||
if v == "neName" || v == "ne_name" {
|
if v == "neType" || v == "ne_type" {
|
||||||
arr[i] = fmt.Sprintf("%v", row.NeName)
|
arr[i] = fmt.Sprintf("%v", row.NeType)
|
||||||
}
|
}
|
||||||
// 单层json
|
// 单层json
|
||||||
if strings.HasPrefix("json", v) {
|
if strings.HasPrefix("json", v) {
|
||||||
|
|||||||
@@ -63,13 +63,13 @@ func (s *BackupExportUDMProcessor) Execute(data any) (any, error) {
|
|||||||
for _, v := range params.DataType {
|
for _, v := range params.DataType {
|
||||||
switch v {
|
switch v {
|
||||||
case "auth":
|
case "auth":
|
||||||
result[fmt.Sprintf("%s-%s", neInfo.NeId, v)] = s.exportAuth(neInfo.NeId, params.FileType)
|
result[fmt.Sprintf("%s-%s", neInfo.NeUID, v)] = s.exportAuth(neInfo.CoreUID, neInfo.NeUID, params.FileType)
|
||||||
case "sub":
|
case "sub":
|
||||||
result[fmt.Sprintf("%s-%s", neInfo.NeId, v)] = s.exportSub(neInfo.NeId, params.FileType)
|
result[fmt.Sprintf("%s-%s", neInfo.NeUID, v)] = s.exportSub(neInfo.CoreUID, neInfo.NeUID, params.FileType)
|
||||||
case "voip":
|
case "voip":
|
||||||
result[fmt.Sprintf("%s-%s", neInfo.NeId, v)] = s.exportVOIP(neInfo.NeId, params.FileType)
|
result[fmt.Sprintf("%s-%s", neInfo.NeUID, v)] = s.exportVOIP(neInfo.CoreUID, neInfo.NeUID, params.FileType)
|
||||||
case "volte":
|
case "volte":
|
||||||
result[fmt.Sprintf("%s-%s", neInfo.NeId, v)] = s.exportVolte(neInfo.NeId, params.FileType)
|
result[fmt.Sprintf("%s-%s", neInfo.NeUID, v)] = s.exportVolte(neInfo.CoreUID, neInfo.NeUID, params.FileType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -79,14 +79,14 @@ func (s *BackupExportUDMProcessor) Execute(data any) (any, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportAuth 导出鉴权用户数据
|
// exportAuth 导出鉴权用户数据
|
||||||
func (s BackupExportUDMProcessor) exportAuth(neId, fileType string) string {
|
func (s BackupExportUDMProcessor) exportAuth(coreUid, neUid, fileType string) string {
|
||||||
rows := s.udmAuthService.Find(neDataModel.UDMAuthUser{NeId: neId})
|
rows := s.udmAuthService.Find(neDataModel.UDMAuthUser{CoreUID: coreUid, NeUID: neUid})
|
||||||
if len(rows) <= 0 {
|
if len(rows) <= 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 文件名
|
// 文件名
|
||||||
fileName := fmt.Sprintf("auth_%s_export_%s.%s", neId, time.Now().Format("20060102150405"), fileType)
|
fileName := fmt.Sprintf("auth_%s_export_%s.%s", neUid, time.Now().Format("20060102150405"), fileType)
|
||||||
filePath := filepath.Join("/usr/local/omc/backup/udm_data/auth", fileName)
|
filePath := filepath.Join("/usr/local/omc/backup/udm_data/auth", fileName)
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
filePath = fmt.Sprintf("C:%s", filePath)
|
filePath = fmt.Sprintf("C:%s", filePath)
|
||||||
@@ -133,14 +133,14 @@ func (s BackupExportUDMProcessor) exportAuth(neId, fileType string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportSub 导出签约用户数据
|
// exportSub 导出签约用户数据
|
||||||
func (s BackupExportUDMProcessor) exportSub(neId, fileType string) string {
|
func (s BackupExportUDMProcessor) exportSub(coreUid, neUid, fileType string) string {
|
||||||
rows := s.udmSubService.Find(neDataModel.UDMSubUser{NeId: neId})
|
rows := s.udmSubService.Find(neDataModel.UDMSubUser{CoreUID: coreUid, NeUID: neUid})
|
||||||
if len(rows) <= 0 {
|
if len(rows) <= 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 文件名
|
// 文件名
|
||||||
fileName := fmt.Sprintf("sub_%s_export_%s.%s", neId, time.Now().Format("20060102150405"), fileType)
|
fileName := fmt.Sprintf("sub_%s_export_%s.%s", neUid, time.Now().Format("20060102150405"), fileType)
|
||||||
filePath := filepath.Join("/usr/local/omc/backup/udm_data/sub", fileName)
|
filePath := filepath.Join("/usr/local/omc/backup/udm_data/sub", fileName)
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
filePath = fmt.Sprintf("C:%s", filePath)
|
filePath = fmt.Sprintf("C:%s", filePath)
|
||||||
@@ -181,14 +181,14 @@ func (s BackupExportUDMProcessor) exportSub(neId, fileType string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportVOIP 导出VOIP用户数据
|
// exportVOIP 导出VOIP用户数据
|
||||||
func (s BackupExportUDMProcessor) exportVOIP(neId, fileType string) string {
|
func (s BackupExportUDMProcessor) exportVOIP(coreUid, neUid, fileType string) string {
|
||||||
rows := s.udmVOIPService.Find(neDataModel.UDMVOIPUser{NeId: neId})
|
rows := s.udmVOIPService.Find(neDataModel.UDMVOIPUser{CoreUID: coreUid, NeUID: neUid})
|
||||||
if len(rows) <= 0 {
|
if len(rows) <= 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 文件名
|
// 文件名
|
||||||
fileName := fmt.Sprintf("voip_%s_export_%s.%s", neId, time.Now().Format("20060102150405"), fileType)
|
fileName := fmt.Sprintf("voip_%s_export_%s.%s", neUid, time.Now().Format("20060102150405"), fileType)
|
||||||
filePath := filepath.Join("/usr/local/omc/backup/udm_data/voip", fileName)
|
filePath := filepath.Join("/usr/local/omc/backup/udm_data/voip", fileName)
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
filePath = fmt.Sprintf("C:%s", filePath)
|
filePath = fmt.Sprintf("C:%s", filePath)
|
||||||
@@ -227,14 +227,14 @@ func (s BackupExportUDMProcessor) exportVOIP(neId, fileType string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// exportVolte 导出Volte用户数据
|
// exportVolte 导出Volte用户数据
|
||||||
func (s BackupExportUDMProcessor) exportVolte(neId, fileType string) string {
|
func (s BackupExportUDMProcessor) exportVolte(coreUid, neUid, fileType string) string {
|
||||||
rows := s.udmVolteIMSService.Find(neDataModel.UDMVolteIMSUser{NeId: neId})
|
rows := s.udmVolteIMSService.Find(neDataModel.UDMVolteIMSUser{CoreUID: coreUid, NeUID: neUid})
|
||||||
if len(rows) <= 0 {
|
if len(rows) <= 0 {
|
||||||
return "no data"
|
return "no data"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 文件名
|
// 文件名
|
||||||
fileName := fmt.Sprintf("volte_%s_export_%s.%s", neId, time.Now().Format("20060102150405"), fileType)
|
fileName := fmt.Sprintf("volte_%s_export_%s.%s", neUid, time.Now().Format("20060102150405"), fileType)
|
||||||
filePath := filepath.Join("/usr/local/omc/backup/udm_data/volte", fileName)
|
filePath := filepath.Join("/usr/local/omc/backup/udm_data/volte", fileName)
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
filePath = fmt.Sprintf("C:%s", filePath)
|
filePath = fmt.Sprintf("C:%s", filePath)
|
||||||
|
|||||||
@@ -55,18 +55,17 @@ func (s *DeleteNeConfigBackupProcessor) Execute(data any) (any, error) {
|
|||||||
|
|
||||||
neList := s.neInfoService.Find(neModel.NeInfo{}, false, false)
|
neList := s.neInfoService.Find(neModel.NeInfo{}, false, false)
|
||||||
for _, neInfo := range neList {
|
for _, neInfo := range neList {
|
||||||
neTypeAndId := fmt.Sprintf("%s_%s", neInfo.NeType, neInfo.NeId)
|
|
||||||
tx := db.DB("").Model(&neModel.NeConfigBackup{})
|
tx := db.DB("").Model(&neModel.NeConfigBackup{})
|
||||||
tx = tx.Where("ne_type = ? and ne_id = ?", neInfo.NeType, neInfo.NeId)
|
tx = tx.Where("core_uid = ? and ne_uid = ?", neInfo.CoreUID, neInfo.NeUID)
|
||||||
|
|
||||||
// 查询数量为0直接返回
|
// 查询数量为0直接返回
|
||||||
var total int64 = 0
|
var total int64 = 0
|
||||||
if err := tx.Count(&total).Error; err != nil {
|
if err := tx.Count(&total).Error; err != nil {
|
||||||
result[neTypeAndId] = err.Error()
|
result[neInfo.NeUID] = err.Error()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if total <= int64(params.StoreNum) {
|
if total <= int64(params.StoreNum) {
|
||||||
result[neTypeAndId] = "less than storeNum"
|
result[neInfo.NeUID] = "less than storeNum"
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,11 +73,11 @@ func (s *DeleteNeConfigBackupProcessor) Execute(data any) (any, error) {
|
|||||||
var lastCreateTime int64 = 0
|
var lastCreateTime int64 = 0
|
||||||
lastTx := tx.Select("create_time").Order("create_time DESC").Limit(1)
|
lastTx := tx.Select("create_time").Order("create_time DESC").Limit(1)
|
||||||
if err := lastTx.Find(&lastCreateTime).Error; err != nil {
|
if err := lastTx.Find(&lastCreateTime).Error; err != nil {
|
||||||
result[neTypeAndId] = err.Error()
|
result[neInfo.NeUID] = err.Error()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if lastCreateTime <= 1e12 {
|
if lastCreateTime <= 1e12 {
|
||||||
result[neTypeAndId] = "no data"
|
result[neInfo.NeUID] = "no data"
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,22 +88,22 @@ func (s *DeleteNeConfigBackupProcessor) Execute(data any) (any, error) {
|
|||||||
// 删除小于最后时间的数据
|
// 删除小于最后时间的数据
|
||||||
delTx := tx.Delete("create_time < ?", ltTime.UnixMilli())
|
delTx := tx.Delete("create_time < ?", ltTime.UnixMilli())
|
||||||
if err := delTx.Error; err != nil {
|
if err := delTx.Error; err != nil {
|
||||||
result[neTypeAndId] = err.Error()
|
result[neInfo.NeUID] = err.Error()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
result[neTypeAndId] = tx.RowsAffected
|
result[neInfo.NeUID] = tx.RowsAffected
|
||||||
|
|
||||||
// 删除本地文件
|
// 删除本地文件
|
||||||
s.deleteFile(neInfo.NeType, neInfo.NeId, ltTime)
|
s.deleteFile(neInfo.CoreUID, neInfo.NeUID, ltTime)
|
||||||
}
|
}
|
||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// deleteFile 删除本地文件
|
// deleteFile 删除本地文件
|
||||||
func (s DeleteNeConfigBackupProcessor) deleteFile(neType, neId string, oldFileDate time.Time) {
|
func (s DeleteNeConfigBackupProcessor) deleteFile(neType, neUid string, oldFileDate time.Time) {
|
||||||
neTypeLower := strings.ToLower(neType)
|
neTypeLower := strings.ToLower(neType)
|
||||||
localPath := fmt.Sprintf("/usr/local/omc/backup/ne_config/%s/%s ", neTypeLower, neId)
|
localPath := fmt.Sprintf("/usr/local/omc/backup/ne_config/%s/%s ", neTypeLower, neUid)
|
||||||
files, err := os.ReadDir(localPath)
|
files, err := os.ReadDir(localPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("logger Remove ne_config File ReadDir err: %v", err.Error())
|
logger.Errorf("logger Remove ne_config File ReadDir err: %v", err.Error())
|
||||||
@@ -113,7 +112,7 @@ func (s DeleteNeConfigBackupProcessor) deleteFile(neType, neId string, oldFileDa
|
|||||||
for _, file := range files {
|
for _, file := range files {
|
||||||
// 跳过非指定文件名
|
// 跳过非指定文件名
|
||||||
// zipFileName := fmt.Sprintf("%s-%s-etc-%s.zip", neTypeLower, neInfo.NeId, date.ParseDateToStr(time.Now(), date.YYYYMMDDHHMMSS))
|
// zipFileName := fmt.Sprintf("%s-%s-etc-%s.zip", neTypeLower, neInfo.NeId, date.ParseDateToStr(time.Now(), date.YYYYMMDDHHMMSS))
|
||||||
fileName := fmt.Sprintf("%s-%s-etc-", neTypeLower, neId)
|
fileName := fmt.Sprintf("%s-%s-etc-", neTypeLower, neUid)
|
||||||
if !strings.HasPrefix(file.Name(), fileName) {
|
if !strings.HasPrefix(file.Name(), fileName) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,15 +69,15 @@ func (s *NeAlarmStateCheckProcessor) Execute(data any) (any, error) {
|
|||||||
if neInfo.CreateTime == 0 {
|
if neInfo.CreateTime == 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
neTypeAndId := fmt.Sprintf("%s_%s", neInfo.NeType, neInfo.NeId)
|
|
||||||
// 网元在线状态
|
// 网元在线状态
|
||||||
isOnline := parse.Boolean(neInfo.ServerState["online"])
|
isOnline := parse.Boolean(neInfo.ServerState["online"])
|
||||||
// 告警ID
|
// 告警ID
|
||||||
params.AlarmId = fmt.Sprintf("%d%d", constants.ALARM_STATE_CHECK, neInfo.CreateTime)
|
params.AlarmId = fmt.Sprintf("%d%d", constants.ALARM_STATE_CHECK, neInfo.CreateTime)
|
||||||
// 检查网元告警ID是否唯一
|
// 检查网元告警ID是否唯一
|
||||||
alarmIdArr := s.alarmService.Find(neDataModel.Alarm{
|
alarmIdArr := s.alarmService.Find(neDataModel.Alarm{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmId: params.AlarmId,
|
AlarmId: params.AlarmId,
|
||||||
})
|
})
|
||||||
// 告警状态
|
// 告警状态
|
||||||
@@ -90,12 +90,12 @@ func (s *NeAlarmStateCheckProcessor) Execute(data any) (any, error) {
|
|||||||
// 进行清除
|
// 进行清除
|
||||||
clearAlarm, err := s.alarmClear(neInfo, alarmIdArr[0])
|
clearAlarm, err := s.alarmClear(neInfo, alarmIdArr[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
result[neTypeAndId] = err.Error()
|
result[neInfo.NeUID] = err.Error()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
|
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeUID)
|
||||||
s.wsSendService.ByGroupID(groupID, clearAlarm)
|
s.wsSendService.ByGroupID(groupID, clearAlarm)
|
||||||
result[neTypeAndId] = "alarm clear"
|
result[neInfo.NeUID] = "alarm clear"
|
||||||
}
|
}
|
||||||
|
|
||||||
// 不在线
|
// 不在线
|
||||||
@@ -103,12 +103,12 @@ func (s *NeAlarmStateCheckProcessor) Execute(data any) (any, error) {
|
|||||||
// 进行新增
|
// 进行新增
|
||||||
newAlarm, err := s.alarmNew(neInfo, params)
|
newAlarm, err := s.alarmNew(neInfo, params)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
result[neTypeAndId] = err.Error()
|
result[neInfo.NeUID] = err.Error()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
|
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.CoreUID, neInfo.NeUID)
|
||||||
s.wsSendService.ByGroupID(groupID, newAlarm)
|
s.wsSendService.ByGroupID(groupID, newAlarm)
|
||||||
result[neTypeAndId] = "alarm new"
|
result[neInfo.NeUID] = "alarm new"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,17 +135,15 @@ func (s NeAlarmStateCheckProcessor) alarmClear(neInfo neModel.NeInfo, v neDataMo
|
|||||||
// alarmNew 新增告警
|
// alarmNew 新增告警
|
||||||
func (s NeAlarmStateCheckProcessor) alarmNew(neInfo neModel.NeInfo, v alarmParams) (neDataModel.Alarm, error) {
|
func (s NeAlarmStateCheckProcessor) alarmNew(neInfo neModel.NeInfo, v alarmParams) (neDataModel.Alarm, error) {
|
||||||
// seq 告警序号
|
// seq 告警序号
|
||||||
lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.NeId)
|
lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.CoreUID, neInfo.NeUID)
|
||||||
lastTime := neInfo.UpdateTime // 网元最后更新时间
|
lastTime := neInfo.UpdateTime // 网元最后更新时间
|
||||||
if lastTime < neInfo.CreateTime {
|
if lastTime < neInfo.CreateTime {
|
||||||
lastTime = time.Now().UnixMilli()
|
lastTime = time.Now().UnixMilli()
|
||||||
}
|
}
|
||||||
alarm := neDataModel.Alarm{
|
alarm := neDataModel.Alarm{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
NeName: neInfo.NeName,
|
|
||||||
Province: neInfo.Province,
|
|
||||||
PvFlag: neInfo.PvFlag,
|
|
||||||
AlarmSeq: lastSeq + 1,
|
AlarmSeq: lastSeq + 1,
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
AlarmTitle: v.AlarmTitle,
|
AlarmTitle: v.AlarmTitle,
|
||||||
@@ -154,7 +152,7 @@ func (s NeAlarmStateCheckProcessor) alarmNew(neInfo neModel.NeInfo, v alarmParam
|
|||||||
AlarmType: v.AlarmType,
|
AlarmType: v.AlarmType,
|
||||||
OrigSeverity: v.OrigSeverity,
|
OrigSeverity: v.OrigSeverity,
|
||||||
PerceivedSeverity: v.OrigSeverity,
|
PerceivedSeverity: v.OrigSeverity,
|
||||||
ObjectUid: neInfo.RmUID,
|
ObjectUid: neInfo.NeUID,
|
||||||
ObjectName: "NE State",
|
ObjectName: "NE State",
|
||||||
ObjectType: "state",
|
ObjectType: "state",
|
||||||
LocationInfo: "NE State: Heartbeat",
|
LocationInfo: "NE State: Heartbeat",
|
||||||
|
|||||||
@@ -103,18 +103,20 @@ func (s *NeAlarmStateCheckCMDProcessor) Execute(data any) (any, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 检查状态
|
// 检查状态
|
||||||
|
neInfo.ServerState["coreUid"] = neInfo.CoreUID
|
||||||
|
neInfo.ServerState["neUid"] = neInfo.NeUID
|
||||||
err := s.serverState(neInfo.ServerState, params.CPUUseGt, params.MemUseGt, params.DiskUseGt)
|
err := s.serverState(neInfo.ServerState, params.CPUUseGt, params.MemUseGt, params.DiskUseGt)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
neTypeAndId := fmt.Sprintf("%s_%s", neInfo.NeType, neInfo.NeId)
|
|
||||||
// 告警ID
|
// 告警ID
|
||||||
params.AlarmId = fmt.Sprintf("%d%d", constants.ALARM_CMD_CHECK, neInfo.CreateTime)
|
params.AlarmId = fmt.Sprintf("%d%d", constants.ALARM_CMD_CHECK, neInfo.CreateTime)
|
||||||
// 检查网元告警ID是否唯一
|
// 检查网元告警ID是否唯一
|
||||||
alarmIdArr := s.alarmService.Find(neDataModel.Alarm{
|
alarmIdArr := s.alarmService.Find(neDataModel.Alarm{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmId: params.AlarmId,
|
AlarmId: params.AlarmId,
|
||||||
})
|
})
|
||||||
// 告警状态, 存在的需要手动清除
|
// 告警状态, 存在的需要手动清除
|
||||||
@@ -126,12 +128,12 @@ func (s *NeAlarmStateCheckCMDProcessor) Execute(data any) (any, error) {
|
|||||||
if alarmStatus == "1" {
|
if alarmStatus == "1" {
|
||||||
clearAlarm, err := s.alarmClear(neInfo, alarmIdArr[0])
|
clearAlarm, err := s.alarmClear(neInfo, alarmIdArr[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
result[neTypeAndId] = err.Error()
|
result[neInfo.NeUID] = err.Error()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
|
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.CoreUID, neInfo.NeUID)
|
||||||
s.wsSendService.ByGroupID(groupID, clearAlarm)
|
s.wsSendService.ByGroupID(groupID, clearAlarm)
|
||||||
result[neTypeAndId] = "alarm clear"
|
result[neInfo.NeUID] = "alarm clear"
|
||||||
alarmStatus = "" // 标记为未记录再次发起新告警
|
alarmStatus = "" // 标记为未记录再次发起新告警
|
||||||
}
|
}
|
||||||
// 未记录
|
// 未记录
|
||||||
@@ -147,12 +149,12 @@ func (s *NeAlarmStateCheckCMDProcessor) Execute(data any) (any, error) {
|
|||||||
params.AddInfo = addInfo // 恢复附加信息
|
params.AddInfo = addInfo // 恢复附加信息
|
||||||
triggerCount.Clear() // 重置连续触发次数
|
triggerCount.Clear() // 重置连续触发次数
|
||||||
if err != nil {
|
if err != nil {
|
||||||
result[neTypeAndId] = err.Error()
|
result[neInfo.NeUID] = err.Error()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
|
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.CoreUID, neInfo.NeUID)
|
||||||
s.wsSendService.ByGroupID(groupID, newAlarm)
|
s.wsSendService.ByGroupID(groupID, newAlarm)
|
||||||
result[neTypeAndId] = "alarm new"
|
result[neInfo.NeUID] = "alarm new"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,8 +206,8 @@ func (s NeAlarmStateCheckCMDProcessor) serverState(state map[string]any, cpuUseG
|
|||||||
|
|
||||||
// 插入网元状态记录
|
// 插入网元状态记录
|
||||||
neState := neDataModel.NEState{
|
neState := neDataModel.NEState{
|
||||||
NeType: fmt.Sprint(state["neType"]),
|
CoreUID: fmt.Sprint(state["coreUid"]),
|
||||||
NeId: fmt.Sprint(state["neId"]),
|
NeUID: fmt.Sprint(state["neUid"]),
|
||||||
Version: fmt.Sprint(state["version"]),
|
Version: fmt.Sprint(state["version"]),
|
||||||
Capability: parse.Number(state["capability"]),
|
Capability: parse.Number(state["capability"]),
|
||||||
SerialNum: fmt.Sprint(state["sn"]),
|
SerialNum: fmt.Sprint(state["sn"]),
|
||||||
@@ -221,7 +223,7 @@ func (s NeAlarmStateCheckCMDProcessor) serverState(state map[string]any, cpuUseG
|
|||||||
// 删除网元状态记录7天前
|
// 删除网元状态记录7天前
|
||||||
s.neStateService.DeleteByTime(time.Now().UnixMilli() - 7*24*60*60*1000)
|
s.neStateService.DeleteByTime(time.Now().UnixMilli() - 7*24*60*60*1000)
|
||||||
// 推送ws消息
|
// 推送ws消息
|
||||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_NE_STATE, neState.NeType, neState.NeId)
|
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_NE_STATE, neState.CoreUID, neState.NeUID)
|
||||||
s.wsSendService.ByGroupID(groupID, neState)
|
s.wsSendService.ByGroupID(groupID, neState)
|
||||||
|
|
||||||
// 检查CPU/Menory/Disk使用率
|
// 检查CPU/Menory/Disk使用率
|
||||||
@@ -237,9 +239,8 @@ func (s NeAlarmStateCheckCMDProcessor) serverState(state map[string]any, cpuUseG
|
|||||||
}
|
}
|
||||||
if len(warnMsg) > 0 {
|
if len(warnMsg) > 0 {
|
||||||
currentTime := time.Now()
|
currentTime := time.Now()
|
||||||
neTypeAndId := fmt.Sprintf("%s_%s", neState.NeType, neState.NeId)
|
|
||||||
validTimes := []time.Time{}
|
validTimes := []time.Time{}
|
||||||
if v, ok := triggerCount.Load(neTypeAndId); ok {
|
if v, ok := triggerCount.Load(neState.NeUID); ok {
|
||||||
times := v.([]time.Time)
|
times := v.([]time.Time)
|
||||||
// 清理过期的记录:10秒前的触发记录不再计入
|
// 清理过期的记录:10秒前的触发记录不再计入
|
||||||
for _, t := range times {
|
for _, t := range times {
|
||||||
@@ -248,11 +249,11 @@ func (s NeAlarmStateCheckCMDProcessor) serverState(state map[string]any, cpuUseG
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
validTimes = append(validTimes, currentTime)
|
validTimes = append(validTimes, currentTime)
|
||||||
triggerCount.Store(neTypeAndId, validTimes)
|
triggerCount.Store(neState.NeUID, validTimes)
|
||||||
} else {
|
} else {
|
||||||
// 事件第一次触发,初始化记录
|
// 事件第一次触发,初始化记录
|
||||||
validTimes = append(validTimes, currentTime)
|
validTimes = append(validTimes, currentTime)
|
||||||
triggerCount.Store(neTypeAndId, validTimes)
|
triggerCount.Store(neState.NeUID, validTimes)
|
||||||
}
|
}
|
||||||
if int64(len(validTimes)) >= triggerMax {
|
if int64(len(validTimes)) >= triggerMax {
|
||||||
return fmt.Errorf("greater than %s", strings.Join(warnMsg, ", "))
|
return fmt.Errorf("greater than %s", strings.Join(warnMsg, ", "))
|
||||||
@@ -280,17 +281,15 @@ func (s NeAlarmStateCheckCMDProcessor) alarmClear(neInfo neModel.NeInfo, v neDat
|
|||||||
// alarmNew 新增告警
|
// alarmNew 新增告警
|
||||||
func (s NeAlarmStateCheckCMDProcessor) alarmNew(neInfo neModel.NeInfo, v alarmParams) (neDataModel.Alarm, error) {
|
func (s NeAlarmStateCheckCMDProcessor) alarmNew(neInfo neModel.NeInfo, v alarmParams) (neDataModel.Alarm, error) {
|
||||||
// seq 告警序号
|
// seq 告警序号
|
||||||
lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.NeId)
|
lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.CoreUID, neInfo.NeUID)
|
||||||
lastTime := neInfo.UpdateTime // 网元最后更新时间
|
lastTime := neInfo.UpdateTime // 网元最后更新时间
|
||||||
if lastTime < neInfo.CreateTime {
|
if lastTime < neInfo.CreateTime {
|
||||||
lastTime = time.Now().UnixMilli()
|
lastTime = time.Now().UnixMilli()
|
||||||
}
|
}
|
||||||
alarm := neDataModel.Alarm{
|
alarm := neDataModel.Alarm{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
NeName: neInfo.NeName,
|
|
||||||
Province: neInfo.Province,
|
|
||||||
PvFlag: neInfo.PvFlag,
|
|
||||||
AlarmSeq: lastSeq + 1,
|
AlarmSeq: lastSeq + 1,
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
AlarmTitle: v.AlarmTitle,
|
AlarmTitle: v.AlarmTitle,
|
||||||
@@ -299,7 +298,7 @@ func (s NeAlarmStateCheckCMDProcessor) alarmNew(neInfo neModel.NeInfo, v alarmPa
|
|||||||
AlarmType: v.AlarmType,
|
AlarmType: v.AlarmType,
|
||||||
OrigSeverity: v.OrigSeverity,
|
OrigSeverity: v.OrigSeverity,
|
||||||
PerceivedSeverity: v.OrigSeverity,
|
PerceivedSeverity: v.OrigSeverity,
|
||||||
ObjectUid: neInfo.RmUID,
|
ObjectUid: neInfo.NeUID,
|
||||||
ObjectName: "NE CPU/Menory/Disk",
|
ObjectName: "NE CPU/Menory/Disk",
|
||||||
ObjectType: "cmd",
|
ObjectType: "cmd",
|
||||||
LocationInfo: "NE CPU/Menory/Disk: Heartbeat",
|
LocationInfo: "NE CPU/Menory/Disk: Heartbeat",
|
||||||
|
|||||||
@@ -92,13 +92,13 @@ func (s *NeAlarmStateCheckLicenseProcessor) Execute(data any) (any, error) {
|
|||||||
params.AddInfo = err.Error()
|
params.AddInfo = err.Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
neTypeAndId := fmt.Sprintf("%s_%s", neInfo.NeType, neInfo.NeId)
|
|
||||||
// 告警ID
|
// 告警ID
|
||||||
params.AlarmId = fmt.Sprintf("%d%d", constants.ALARM_LICENSE_CHECK, neInfo.CreateTime)
|
params.AlarmId = fmt.Sprintf("%d%d", constants.ALARM_LICENSE_CHECK, neInfo.CreateTime)
|
||||||
// 检查网元告警ID是否唯一
|
// 检查网元告警ID是否唯一
|
||||||
alarmIdArr := s.alarmService.Find(neDataModel.Alarm{
|
alarmIdArr := s.alarmService.Find(neDataModel.Alarm{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
AlarmId: params.AlarmId,
|
AlarmId: params.AlarmId,
|
||||||
})
|
})
|
||||||
// 告警状态, 存在的需要手动清除
|
// 告警状态, 存在的需要手动清除
|
||||||
@@ -110,12 +110,12 @@ func (s *NeAlarmStateCheckLicenseProcessor) Execute(data any) (any, error) {
|
|||||||
if alarmStatus == "1" {
|
if alarmStatus == "1" {
|
||||||
clearAlarm, err := s.alarmClear(neInfo, alarmIdArr[0])
|
clearAlarm, err := s.alarmClear(neInfo, alarmIdArr[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
result[neTypeAndId] = err.Error()
|
result[neInfo.NeUID] = err.Error()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
|
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.CoreUID, neInfo.NeUID)
|
||||||
s.wsSendService.ByGroupID(groupID, clearAlarm)
|
s.wsSendService.ByGroupID(groupID, clearAlarm)
|
||||||
result[neTypeAndId] = "alarm clear"
|
result[neInfo.NeUID] = "alarm clear"
|
||||||
alarmStatus = "" // 标记为未记录再次发起新告警
|
alarmStatus = "" // 标记为未记录再次发起新告警
|
||||||
}
|
}
|
||||||
// 未记录
|
// 未记录
|
||||||
@@ -130,12 +130,12 @@ func (s *NeAlarmStateCheckLicenseProcessor) Execute(data any) (any, error) {
|
|||||||
newAlarm, err := s.alarmNew(neInfo, params)
|
newAlarm, err := s.alarmNew(neInfo, params)
|
||||||
params.AddInfo = addInfo // 恢复附加信息
|
params.AddInfo = addInfo // 恢复附加信息
|
||||||
if err != nil {
|
if err != nil {
|
||||||
result[neTypeAndId] = err.Error()
|
result[neInfo.NeUID] = err.Error()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
|
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.CoreUID, neInfo.NeUID)
|
||||||
s.wsSendService.ByGroupID(groupID, newAlarm)
|
s.wsSendService.ByGroupID(groupID, newAlarm)
|
||||||
result[neTypeAndId] = "alarm new"
|
result[neInfo.NeUID] = "alarm new"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -183,17 +183,15 @@ func (s NeAlarmStateCheckLicenseProcessor) alarmClear(neInfo neModel.NeInfo, v n
|
|||||||
// alarmNew 新增告警
|
// alarmNew 新增告警
|
||||||
func (s NeAlarmStateCheckLicenseProcessor) alarmNew(neInfo neModel.NeInfo, v alarmParams) (neDataModel.Alarm, error) {
|
func (s NeAlarmStateCheckLicenseProcessor) alarmNew(neInfo neModel.NeInfo, v alarmParams) (neDataModel.Alarm, error) {
|
||||||
// seq 告警序号
|
// seq 告警序号
|
||||||
lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.NeId)
|
lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.CoreUID, neInfo.NeUID)
|
||||||
lastTime := neInfo.UpdateTime // 网元最后更新时间
|
lastTime := neInfo.UpdateTime // 网元最后更新时间
|
||||||
if lastTime < neInfo.CreateTime {
|
if lastTime < neInfo.CreateTime {
|
||||||
lastTime = time.Now().UnixMilli()
|
lastTime = time.Now().UnixMilli()
|
||||||
}
|
}
|
||||||
alarm := neDataModel.Alarm{
|
alarm := neDataModel.Alarm{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
NeName: neInfo.NeName,
|
|
||||||
Province: neInfo.Province,
|
|
||||||
PvFlag: neInfo.PvFlag,
|
|
||||||
AlarmSeq: lastSeq + 1,
|
AlarmSeq: lastSeq + 1,
|
||||||
AlarmId: v.AlarmId,
|
AlarmId: v.AlarmId,
|
||||||
AlarmTitle: v.AlarmTitle,
|
AlarmTitle: v.AlarmTitle,
|
||||||
@@ -202,7 +200,7 @@ func (s NeAlarmStateCheckLicenseProcessor) alarmNew(neInfo neModel.NeInfo, v ala
|
|||||||
AlarmType: v.AlarmType,
|
AlarmType: v.AlarmType,
|
||||||
OrigSeverity: v.OrigSeverity,
|
OrigSeverity: v.OrigSeverity,
|
||||||
PerceivedSeverity: v.OrigSeverity,
|
PerceivedSeverity: v.OrigSeverity,
|
||||||
ObjectUid: neInfo.RmUID,
|
ObjectUid: neInfo.NeUID,
|
||||||
ObjectName: "NE License",
|
ObjectName: "NE License",
|
||||||
ObjectType: "license",
|
ObjectType: "license",
|
||||||
LocationInfo: "NE License: Heartbeat",
|
LocationInfo: "NE License: Heartbeat",
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ func (s *NeConfigBackupProcessor) Execute(data any) (any, error) {
|
|||||||
|
|
||||||
neList := s.neInfoService.Find(neModel.NeInfo{}, false, false)
|
neList := s.neInfoService.Find(neModel.NeInfo{}, false, false)
|
||||||
for _, neInfo := range neList {
|
for _, neInfo := range neList {
|
||||||
neTypeAndId := fmt.Sprintf("%s_%s", neInfo.NeType, neInfo.NeId)
|
neTypeAndId := fmt.Sprintf("%s_%s", neInfo.NeType, neInfo.ID)
|
||||||
// 将网元文件备份到本地
|
// 将网元文件备份到本地
|
||||||
zipFilePath, err := s.neConfigBackupService.FileNeToLocal(neInfo)
|
zipFilePath, err := s.neConfigBackupService.FileNeToLocal(neInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -48,8 +48,9 @@ func (s *NeConfigBackupProcessor) Execute(data any) (any, error) {
|
|||||||
|
|
||||||
// 新增备份记录
|
// 新增备份记录
|
||||||
item := neModel.NeConfigBackup{
|
item := neModel.NeConfigBackup{
|
||||||
|
CoreUID: neInfo.CoreUID,
|
||||||
|
NeUID: neInfo.NeUID,
|
||||||
NeType: neInfo.NeType,
|
NeType: neInfo.NeType,
|
||||||
NeId: neInfo.NeId,
|
|
||||||
Name: filepath.Base(zipFilePath),
|
Name: filepath.Base(zipFilePath),
|
||||||
Path: zipFilePath,
|
Path: zipFilePath,
|
||||||
CreateBy: "system",
|
CreateBy: "system",
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ func (s *NeDataUDM) Execute(data any) (any, error) {
|
|||||||
|
|
||||||
neList := s.neInfoService.Find(neModel.NeInfo{NeType: "UDM"}, false, false)
|
neList := s.neInfoService.Find(neModel.NeInfo{NeType: "UDM"}, false, false)
|
||||||
for _, neInfo := range neList {
|
for _, neInfo := range neList {
|
||||||
result[fmt.Sprintf("AuthNumber_%s", neInfo.NeId)] = s.udmAuthService.ResetData(neInfo.NeId)
|
result[fmt.Sprintf("AuthNumber_%s", neInfo.NeUID)] = s.udmAuthService.ResetData(neInfo.CoreUID, neInfo.NeUID)
|
||||||
result[fmt.Sprintf("SubNumber_%s", neInfo.NeId)] = s.udmSubService.ResetData(neInfo.NeId)
|
result[fmt.Sprintf("SubNumber_%s", neInfo.NeUID)] = s.udmSubService.ResetData(neInfo.CoreUID, neInfo.NeUID)
|
||||||
}
|
}
|
||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ package controller
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"be.ems/src/framework/i18n"
|
|
||||||
"be.ems/src/framework/reqctx"
|
|
||||||
"be.ems/src/framework/resp"
|
"be.ems/src/framework/resp"
|
||||||
"be.ems/src/modules/network_data/model"
|
"be.ems/src/modules/network_data/model"
|
||||||
neDataService "be.ems/src/modules/network_data/service"
|
neDataService "be.ems/src/modules/network_data/service"
|
||||||
@@ -45,7 +43,6 @@ type KPIController struct {
|
|||||||
// @Description Access to statistical data
|
// @Description Access to statistical data
|
||||||
// @Router /neData/kpi/data [get]
|
// @Router /neData/kpi/data [get]
|
||||||
func (s KPIController) KPIData(c *gin.Context) {
|
func (s KPIController) KPIData(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
var querys model.KPIQuery
|
var querys model.KPIQuery
|
||||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -53,14 +50,6 @@ func (s KPIController) KPIData(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
|
|
||||||
// 查询数据
|
// 查询数据
|
||||||
kpiData := s.kpiReportService.FindData(querys)
|
kpiData := s.kpiReportService.FindData(querys)
|
||||||
c.JSON(200, resp.OkData(kpiData))
|
c.JSON(200, resp.OkData(kpiData))
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ type NBStateController struct {
|
|||||||
// @Description Base Station Status List
|
// @Description Base Station Status List
|
||||||
// @Router /nb-state/list [get]
|
// @Router /nb-state/list [get]
|
||||||
func (s NBStateController) List(c *gin.Context) {
|
func (s NBStateController) List(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
var query model.NBStateQuery
|
var query model.NBStateQuery
|
||||||
if err := c.ShouldBindQuery(&query); err != nil {
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -57,14 +56,6 @@ func (s NBStateController) List(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息 rmUID
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(query.NeType, query.NeID)
|
|
||||||
if neInfo.NeId != query.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
query.RmUID = neInfo.RmUID
|
|
||||||
|
|
||||||
// 查询数据
|
// 查询数据
|
||||||
rows, total := s.nbStateService.FindByPage(query)
|
rows, total := s.nbStateService.FindByPage(query)
|
||||||
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
||||||
@@ -96,13 +87,7 @@ func (s NBStateController) Export(c *gin.Context) {
|
|||||||
if querys.PageSize > 10000 {
|
if querys.PageSize > 10000 {
|
||||||
querys.PageSize = 10000
|
querys.PageSize = 10000
|
||||||
}
|
}
|
||||||
// 查询网元信息 rmUID
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
rows, total := s.nbStateService.FindByPage(querys)
|
rows, total := s.nbStateService.FindByPage(querys)
|
||||||
if total == 0 {
|
if total == 0 {
|
||||||
// 导出数据记录为空
|
// 导出数据记录为空
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ type AMFController struct {
|
|||||||
// @Description UE Session List
|
// @Description UE Session List
|
||||||
// @Router /neData/amf/ue/list [get]
|
// @Router /neData/amf/ue/list [get]
|
||||||
func (s *AMFController) UEList(c *gin.Context) {
|
func (s *AMFController) UEList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
var querys model.UEEventAMFQuery
|
var querys model.UEEventAMFQuery
|
||||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -56,14 +55,6 @@ func (s *AMFController) UEList(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("AMF", querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
|
|
||||||
// 查询数据
|
// 查询数据
|
||||||
rows, total := s.ueEventService.FindByPage(querys)
|
rows, total := s.ueEventService.FindByPage(querys)
|
||||||
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
||||||
@@ -133,13 +124,7 @@ func (s *AMFController) UEExport(c *gin.Context) {
|
|||||||
if querys.PageSize > 10000 {
|
if querys.PageSize > 10000 {
|
||||||
querys.PageSize = 10000
|
querys.PageSize = 10000
|
||||||
}
|
}
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("AMF", querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
rows, total := s.ueEventService.FindByPage(querys)
|
rows, total := s.ueEventService.FindByPage(querys)
|
||||||
if total == 0 {
|
if total == 0 {
|
||||||
// 导出数据记录为空
|
// 导出数据记录为空
|
||||||
@@ -176,8 +161,9 @@ func (s *AMFController) UEExport(c *gin.Context) {
|
|||||||
func (s *AMFController) NbInfoList(c *gin.Context) {
|
func (s *AMFController) NbInfoList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var query struct {
|
var query struct {
|
||||||
NeId string `form:"neId" binding:"required"`
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
NbId string `form:"id"`
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
|
NbId string `form:"id"`
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindQuery(&query); err != nil {
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -186,8 +172,8 @@ func (s *AMFController) NbInfoList(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("AMF", query.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != query.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -219,15 +205,19 @@ func (s *AMFController) NbInfoList(c *gin.Context) {
|
|||||||
// @Router /neData/amf/nb/list-cfg [get]
|
// @Router /neData/amf/nb/list-cfg [get]
|
||||||
func (s *AMFController) NbStateList(c *gin.Context) {
|
func (s *AMFController) NbStateList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Query("neId")
|
var query struct {
|
||||||
if neId == "" {
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("AMF", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ type IMSController struct {
|
|||||||
// @Description CDR Session List
|
// @Description CDR Session List
|
||||||
// @Router /neData/ims/cdr/list [get]
|
// @Router /neData/ims/cdr/list [get]
|
||||||
func (s *IMSController) CDRList(c *gin.Context) {
|
func (s *IMSController) CDRList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
var querys model.CDREventIMSQuery
|
var querys model.CDREventIMSQuery
|
||||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -57,14 +56,6 @@ func (s *IMSController) CDRList(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息 rmUID
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
|
|
||||||
// 查询数据
|
// 查询数据
|
||||||
rows, total := s.cdrEventService.FindByPage(querys)
|
rows, total := s.cdrEventService.FindByPage(querys)
|
||||||
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
||||||
@@ -134,13 +125,7 @@ func (s *IMSController) CDRExport(c *gin.Context) {
|
|||||||
if querys.PageSize > 10000 {
|
if querys.PageSize > 10000 {
|
||||||
querys.PageSize = 10000
|
querys.PageSize = 10000
|
||||||
}
|
}
|
||||||
// 查询网元信息 rmUID
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
rows, total := s.cdrEventService.FindByPage(querys)
|
rows, total := s.cdrEventService.FindByPage(querys)
|
||||||
if total == 0 {
|
if total == 0 {
|
||||||
// 导出数据记录为空
|
// 导出数据记录为空
|
||||||
@@ -175,15 +160,19 @@ func (s *IMSController) CDRExport(c *gin.Context) {
|
|||||||
// @Router /neData/ims/session/num [get]
|
// @Router /neData/ims/session/num [get]
|
||||||
func (s *IMSController) UeSessionNum(c *gin.Context) {
|
func (s *IMSController) UeSessionNum(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Query("neId")
|
var query struct {
|
||||||
if neId == "" {
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("IMS", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -216,9 +205,10 @@ func (s *IMSController) UeSessionNum(c *gin.Context) {
|
|||||||
func (s *IMSController) UeSessionList(c *gin.Context) {
|
func (s *IMSController) UeSessionList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var query struct {
|
var query struct {
|
||||||
NeId string `form:"neId" binding:"required"`
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
IMSI string `form:"imsi"`
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
MSISDN string `form:"msisdn"`
|
IMSI string `form:"imsi"`
|
||||||
|
MSISDN string `form:"msisdn"`
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindQuery(&query); err != nil {
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -227,8 +217,8 @@ func (s *IMSController) UeSessionList(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("IMS", query.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != query.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ type MMEController struct {
|
|||||||
// @Description UE Session List
|
// @Description UE Session List
|
||||||
// @Router /neData/mme/ue/list [get]
|
// @Router /neData/mme/ue/list [get]
|
||||||
func (s *MMEController) UEList(c *gin.Context) {
|
func (s *MMEController) UEList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
var querys model.UEEventMMEQuery
|
var querys model.UEEventMMEQuery
|
||||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -56,14 +55,6 @@ func (s *MMEController) UEList(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("MME", querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
|
|
||||||
// 查询数据
|
// 查询数据
|
||||||
rows, total := s.ueEventService.FindByPage(querys)
|
rows, total := s.ueEventService.FindByPage(querys)
|
||||||
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
||||||
@@ -133,13 +124,7 @@ func (s *MMEController) UEExport(c *gin.Context) {
|
|||||||
if querys.PageSize > 10000 {
|
if querys.PageSize > 10000 {
|
||||||
querys.PageSize = 10000
|
querys.PageSize = 10000
|
||||||
}
|
}
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("MME", querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
rows, total := s.ueEventService.FindByPage(querys)
|
rows, total := s.ueEventService.FindByPage(querys)
|
||||||
if total == 0 {
|
if total == 0 {
|
||||||
// 导出数据记录为空
|
// 导出数据记录为空
|
||||||
@@ -176,8 +161,9 @@ func (s *MMEController) UEExport(c *gin.Context) {
|
|||||||
func (s *MMEController) NbInfoList(c *gin.Context) {
|
func (s *MMEController) NbInfoList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var query struct {
|
var query struct {
|
||||||
NeId string `form:"neId" binding:"required"`
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
NbId string `form:"id"`
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
|
NbId string `form:"id"`
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindQuery(&query); err != nil {
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -186,8 +172,8 @@ func (s *MMEController) NbInfoList(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("MME", query.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != query.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -219,15 +205,19 @@ func (s *MMEController) NbInfoList(c *gin.Context) {
|
|||||||
// @Router /neData/mme/nb/list-cfg [get]
|
// @Router /neData/mme/nb/list-cfg [get]
|
||||||
func (s *MMEController) NbStateList(c *gin.Context) {
|
func (s *MMEController) NbStateList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Query("neId")
|
var query struct {
|
||||||
if neId == "" {
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("MME", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,9 +42,10 @@ type PCFController struct {
|
|||||||
func (s PCFController) RuleInfoList(c *gin.Context) {
|
func (s PCFController) RuleInfoList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var query struct {
|
var query struct {
|
||||||
NeId string `form:"neId" binding:"required"`
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
IMSI string `form:"imsi"`
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
MSISDN string `form:"msisdn"`
|
IMSI string `form:"imsi"`
|
||||||
|
MSISDN string `form:"msisdn"`
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindQuery(&query); err != nil {
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -53,8 +54,8 @@ func (s PCFController) RuleInfoList(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("PCF", query.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != query.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -88,7 +89,8 @@ func (s PCFController) RuleInfoList(c *gin.Context) {
|
|||||||
func (s PCFController) RuleInfoAdd(c *gin.Context) {
|
func (s PCFController) RuleInfoAdd(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var body struct {
|
var body struct {
|
||||||
NeId string `json:"neId" binding:"required"` // 网元ID
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
Num int64 `json:"num"` // 批量添加,默认0单条,大于1时imsi/msisdn会累加数值
|
Num int64 `json:"num"` // 批量添加,默认0单条,大于1时imsi/msisdn会累加数值
|
||||||
ParamData map[string]any `json:"paramData" binding:"required"` // 参数数据
|
ParamData map[string]any `json:"paramData" binding:"required"` // 参数数据
|
||||||
// Imsi string `json:"imsi" binding:"required"`
|
// Imsi string `json:"imsi" binding:"required"`
|
||||||
@@ -109,8 +111,8 @@ func (s PCFController) RuleInfoAdd(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("PCF", body.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != body.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -145,7 +147,8 @@ func (s PCFController) RuleInfoAdd(c *gin.Context) {
|
|||||||
func (s PCFController) RuleInfoEdit(c *gin.Context) {
|
func (s PCFController) RuleInfoEdit(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var body struct {
|
var body struct {
|
||||||
NeId string `json:"neId" binding:"required"` // 网元ID
|
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||||
Num int64 `json:"num"` // 更新数量
|
Num int64 `json:"num"` // 更新数量
|
||||||
ParamData map[string]any `json:"paramData" binding:"required"` // 参数数据
|
ParamData map[string]any `json:"paramData" binding:"required"` // 参数数据
|
||||||
// Imsi string `json:"imsi" binding:"required"`
|
// Imsi string `json:"imsi" binding:"required"`
|
||||||
@@ -166,8 +169,8 @@ func (s PCFController) RuleInfoEdit(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("PCF", body.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != body.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -204,9 +207,10 @@ func (s PCFController) RuleInfoEdit(c *gin.Context) {
|
|||||||
func (s PCFController) RuleInfoRemove(c *gin.Context) {
|
func (s PCFController) RuleInfoRemove(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var query struct {
|
var query struct {
|
||||||
NeId string `form:"neId" binding:"required"` // 网元ID
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
IMSI string `form:"imsi" binding:"required"` // IMSi, 带数量时为批量删除
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
Num int64 `form:"num"` // 删除数量
|
IMSI string `form:"imsi" binding:"required"` // IMSi, 带数量时为批量删除
|
||||||
|
Num int64 `form:"num"` // 删除数量
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindQuery(&query); err != nil {
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -215,8 +219,8 @@ func (s PCFController) RuleInfoRemove(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("PCF", query.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != query.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -252,7 +256,8 @@ func (s PCFController) RuleInfoRemove(c *gin.Context) {
|
|||||||
func (s PCFController) RuleInfoExport(c *gin.Context) {
|
func (s PCFController) RuleInfoExport(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var query struct {
|
var query struct {
|
||||||
NeId string `form:"neId" binding:"required"`
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
FileType string `form:"fileType" binding:"required,oneof=txt"` // 文件类型
|
FileType string `form:"fileType" binding:"required,oneof=txt"` // 文件类型
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindQuery(&query); err != nil {
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
@@ -262,8 +267,8 @@ func (s PCFController) RuleInfoExport(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("PCF", query.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != query.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -298,7 +303,8 @@ func (s PCFController) RuleInfoExport(c *gin.Context) {
|
|||||||
func (s PCFController) RuleInfoImport(c *gin.Context) {
|
func (s PCFController) RuleInfoImport(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var body struct {
|
var body struct {
|
||||||
NeId string `json:"neId" binding:"required"`
|
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||||
FileType string `json:"fileType" binding:"required,oneof=txt"` // 文件类型
|
FileType string `json:"fileType" binding:"required,oneof=txt"` // 文件类型
|
||||||
FilePath string `json:"filePath" binding:"required"` // 网元端文件所在绝对路径
|
FilePath string `json:"filePath" binding:"required"` // 网元端文件所在绝对路径
|
||||||
}
|
}
|
||||||
@@ -309,8 +315,8 @@ func (s PCFController) RuleInfoImport(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("PCF", body.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != body.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ type SGWCController struct {
|
|||||||
// @Description CDR Session List
|
// @Description CDR Session List
|
||||||
// @Router /neData/sgwc/cdr/list [get]
|
// @Router /neData/sgwc/cdr/list [get]
|
||||||
func (s *SGWCController) CDRList(c *gin.Context) {
|
func (s *SGWCController) CDRList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
var querys model.CDREventSGWCQuery
|
var querys model.CDREventSGWCQuery
|
||||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -57,14 +56,6 @@ func (s *SGWCController) CDRList(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息 rmUID
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
|
|
||||||
// 查询数据
|
// 查询数据
|
||||||
rows, total := s.cdrEventService.FindByPage(querys)
|
rows, total := s.cdrEventService.FindByPage(querys)
|
||||||
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
||||||
@@ -134,13 +125,7 @@ func (s *SGWCController) CDRExport(c *gin.Context) {
|
|||||||
if querys.PageSize > 10000 {
|
if querys.PageSize > 10000 {
|
||||||
querys.PageSize = 10000
|
querys.PageSize = 10000
|
||||||
}
|
}
|
||||||
// 查询网元信息 rmUID
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
rows, total := s.cdrEventService.FindByPage(querys)
|
rows, total := s.cdrEventService.FindByPage(querys)
|
||||||
if total == 0 {
|
if total == 0 {
|
||||||
// 导出数据记录为空
|
// 导出数据记录为空
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ type SMFController struct {
|
|||||||
// @Description CDR Session List
|
// @Description CDR Session List
|
||||||
// @Router /neData/smf/cdr/list [get]
|
// @Router /neData/smf/cdr/list [get]
|
||||||
func (s *SMFController) CDRList(c *gin.Context) {
|
func (s *SMFController) CDRList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
var querys model.CDREventSMFQuery
|
var querys model.CDREventSMFQuery
|
||||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -59,14 +58,6 @@ func (s *SMFController) CDRList(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息 rmUID
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
|
|
||||||
// 查询数据
|
// 查询数据
|
||||||
rows, total := s.cdrEventService.FindByPage(querys)
|
rows, total := s.cdrEventService.FindByPage(querys)
|
||||||
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
||||||
@@ -136,13 +127,7 @@ func (s *SMFController) CDRExport(c *gin.Context) {
|
|||||||
if querys.PageSize > 10000 {
|
if querys.PageSize > 10000 {
|
||||||
querys.PageSize = 10000
|
querys.PageSize = 10000
|
||||||
}
|
}
|
||||||
// 查询网元信息 rmUID
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
rows, total := s.cdrEventService.FindByPage(querys)
|
rows, total := s.cdrEventService.FindByPage(querys)
|
||||||
if total == 0 {
|
if total == 0 {
|
||||||
// 导出数据记录为空
|
// 导出数据记录为空
|
||||||
@@ -178,7 +163,8 @@ func (s *SMFController) CDRExport(c *gin.Context) {
|
|||||||
func (s *SMFController) SubUserNum(c *gin.Context) {
|
func (s *SMFController) SubUserNum(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var query struct {
|
var query struct {
|
||||||
NeId string `form:"neId" binding:"required"`
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindQuery(&query); err != nil {
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -187,8 +173,8 @@ func (s *SMFController) SubUserNum(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("SMF", query.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != query.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -223,7 +209,8 @@ func (s *SMFController) SubUserNum(c *gin.Context) {
|
|||||||
func (s *SMFController) SubUserList(c *gin.Context) {
|
func (s *SMFController) SubUserList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var query struct {
|
var query struct {
|
||||||
NeId string `form:"neId" binding:"required"`
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
IMSI string `form:"imsi"`
|
IMSI string `form:"imsi"`
|
||||||
MSISDN string `form:"msisdn"`
|
MSISDN string `form:"msisdn"`
|
||||||
Upstate string `form:"upstate"`
|
Upstate string `form:"upstate"`
|
||||||
@@ -236,8 +223,8 @@ func (s *SMFController) SubUserList(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("SMF", query.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != query.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -265,7 +252,7 @@ func (s *SMFController) SubUserList(c *gin.Context) {
|
|||||||
imsiStr = strings.TrimPrefix(imsiStr, "imsi-")
|
imsiStr = strings.TrimPrefix(imsiStr, "imsi-")
|
||||||
item["imsi"] = imsiStr
|
item["imsi"] = imsiStr
|
||||||
// 查UDM拓展信息
|
// 查UDM拓展信息
|
||||||
info := s.UDMExtendService.FindByIMSIAndNeID(imsiStr, "%")
|
info := s.UDMExtendService.FindByIMSIAndNeID(query.CoreUID, query.NeUID, imsiStr)
|
||||||
item["remark"] = info.Remark
|
item["remark"] = info.Remark
|
||||||
}
|
}
|
||||||
if v, ok := item["msisdn"]; ok && v != nil {
|
if v, ok := item["msisdn"]; ok && v != nil {
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ type SMSCController struct {
|
|||||||
// @Description CDR Session List
|
// @Description CDR Session List
|
||||||
// @Router /neData/smsc/cdr/list [get]
|
// @Router /neData/smsc/cdr/list [get]
|
||||||
func (s *SMSCController) CDRList(c *gin.Context) {
|
func (s *SMSCController) CDRList(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
var querys model.CDREventSMSCQuery
|
var querys model.CDREventSMSCQuery
|
||||||
if err := c.ShouldBindQuery(&querys); err != nil {
|
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -56,14 +55,6 @@ func (s *SMSCController) CDRList(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元信息 rmUID
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
|
|
||||||
// 查询数据
|
// 查询数据
|
||||||
rows, total := s.cdrEventService.FindByPage(querys)
|
rows, total := s.cdrEventService.FindByPage(querys)
|
||||||
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
|
||||||
@@ -133,13 +124,7 @@ func (s *SMSCController) CDRExport(c *gin.Context) {
|
|||||||
if querys.PageSize > 10000 {
|
if querys.PageSize > 10000 {
|
||||||
querys.PageSize = 10000
|
querys.PageSize = 10000
|
||||||
}
|
}
|
||||||
// 查询网元信息 rmUID
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID(querys.NeType, querys.NeID)
|
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
querys.RmUID = neInfo.RmUID
|
|
||||||
rows, total := s.cdrEventService.FindByPage(querys)
|
rows, total := s.cdrEventService.FindByPage(querys)
|
||||||
if total == 0 {
|
if total == 0 {
|
||||||
// 导出数据记录为空
|
// 导出数据记录为空
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ type UDMAuthController struct {
|
|||||||
|
|
||||||
// UDM鉴权用户重载数据
|
// UDM鉴权用户重载数据
|
||||||
//
|
//
|
||||||
// PUT /resetData/:neId
|
// PUT /reset
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/auth
|
// @Tags network_data/udm/auth
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -47,15 +47,19 @@ type UDMAuthController struct {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM Authentication User Data Refresh
|
// @Summary UDM Authentication User Data Refresh
|
||||||
// @Description UDM Authenticated User Data List Refresh Synchronization Latest
|
// @Description UDM Authenticated User Data List Refresh Synchronization Latest
|
||||||
// @Router /neData/udm/auth/resetData/{neId} [put]
|
// @Router /neData/udm/auth/reset [put]
|
||||||
func (s *UDMAuthController) ResetData(c *gin.Context) {
|
func (s *UDMAuthController) ResetData(c *gin.Context) {
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
if neId == "" {
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
data := s.udmAuthService.ResetData(neId)
|
data := s.udmAuthService.ResetData(query.CoreUID, query.NeUID)
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,30 +92,35 @@ func (s *UDMAuthController) List(c *gin.Context) {
|
|||||||
// @Tags network_data/udm/auth
|
// @Tags network_data/udm/auth
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Param neId path string true "NE ID" default(001)
|
// @Param coreUid query string true "NE ID" default(001)
|
||||||
// @Param value path string true "IMSI"
|
// @Param neUid query string true "NE ID" default(001)
|
||||||
|
// @Param imsi query string true "IMSI"
|
||||||
// @Success 200 {object} object "Response Results"
|
// @Success 200 {object} object "Response Results"
|
||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM Authentication User Information
|
// @Summary UDM Authentication User Information
|
||||||
// @Description UDM Authentication User Information
|
// @Description UDM Authentication User Information
|
||||||
// @Router /neData/udm/auth/{neId}/{value} [get]
|
// @Router /neData/udm/auth [get]
|
||||||
func (s *UDMAuthController) Info(c *gin.Context) {
|
func (s *UDMAuthController) Info(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
imsi := c.Param("imsi")
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
if neId == "" || imsi == "" {
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId/imsi is empty"))
|
IMSI string `form:"imsi" binding:"required"` // 网元唯一标识
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -119,7 +128,7 @@ func (s *UDMAuthController) Info(c *gin.Context) {
|
|||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
// 发送MML
|
// 发送MML
|
||||||
cmd := fmt.Sprintf("dsp authdat:imsi=%s", imsi)
|
cmd := fmt.Sprintf("dsp authdat:imsi=%s", query.IMSI)
|
||||||
data, err := telnet.ConvertToMap(telnetClient, cmd)
|
data, err := telnet.ConvertToMap(telnetClient, cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
@@ -132,14 +141,14 @@ func (s *UDMAuthController) Info(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 解析返回的数据
|
// 解析返回的数据
|
||||||
u := s.udmAuthService.ParseInfo(imsi, neId, data)
|
u := s.udmAuthService.ParseInfo(neInfo.CoreUID, neInfo.NeUID, query.IMSI, data)
|
||||||
s.udmAuthService.Insert(neId, u)
|
s.udmAuthService.Insert(neInfo.CoreUID, neInfo.NeUID, u)
|
||||||
c.JSON(200, resp.OkData(u))
|
c.JSON(200, resp.OkData(u))
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDM鉴权用户新增
|
// UDM鉴权用户新增
|
||||||
//
|
//
|
||||||
// POST /:neId
|
// POST /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/auth
|
// @Tags network_data/udm/auth
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -150,12 +159,13 @@ func (s *UDMAuthController) Info(c *gin.Context) {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM Authentication User Added
|
// @Summary UDM Authentication User Added
|
||||||
// @Description UDM Authentication User Added
|
// @Description UDM Authentication User Added
|
||||||
// @Router /neData/udm/auth/{neId} [post]
|
// @Router /neData/udm/auth [post]
|
||||||
func (s *UDMAuthController) Add(c *gin.Context) {
|
func (s *UDMAuthController) Add(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
// 传入数量大于0时,为批量新增
|
||||||
if neId == "" {
|
num := parse.Number(c.Query("num"))
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
if num < 0 {
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: num is empty"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,19 +181,38 @@ func (s *UDMAuthController) Add(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元获取IP
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
|
// 批量新增
|
||||||
|
if num > 1 {
|
||||||
|
// 发送MML
|
||||||
|
cmd := fmt.Sprintf("baa authdat:start_imsi=%s,sub_num=%d,", body.IMSI, num)
|
||||||
|
cmd += s.udmAuthService.ParseCommandParams(body)
|
||||||
|
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 命令ok时
|
||||||
|
if strings.Contains(data, "ok") {
|
||||||
|
s.udmAuthService.LoadData(neInfo.CoreUID, neInfo.NeUID, body.IMSI, num)
|
||||||
|
}
|
||||||
|
c.JSON(200, resp.OkData(data))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// 发送MML
|
// 发送MML
|
||||||
cmd := fmt.Sprintf("add authdat:imsi=%s,", body.IMSI)
|
cmd := fmt.Sprintf("add authdat:imsi=%s,", body.IMSI)
|
||||||
cmd += s.udmAuthService.ParseCommandParams(body)
|
cmd += s.udmAuthService.ParseCommandParams(body)
|
||||||
@@ -195,79 +224,14 @@ func (s *UDMAuthController) Add(c *gin.Context) {
|
|||||||
|
|
||||||
// 命令ok时
|
// 命令ok时
|
||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
s.udmAuthService.Insert(neId, body)
|
s.udmAuthService.Insert(neInfo.CoreUID, neInfo.NeUID, body)
|
||||||
}
|
|
||||||
c.JSON(200, resp.OkData(data))
|
|
||||||
}
|
|
||||||
|
|
||||||
// UDM鉴权用户批量新增
|
|
||||||
//
|
|
||||||
// POST /:neId/:num
|
|
||||||
//
|
|
||||||
// @Tags network_data/udm/auth
|
|
||||||
// @Accept json
|
|
||||||
// @Produce json
|
|
||||||
// @Param neId path string true "NE ID" default(001)
|
|
||||||
// @Param value path number true "Number of releases, value includes start imsi"
|
|
||||||
// @Param data body object true "Request Param"
|
|
||||||
// @Success 200 {object} object "Response Results"
|
|
||||||
// @Security TokenAuth
|
|
||||||
// @Summary UDM Authentication User Batch Add
|
|
||||||
// @Description UDM Authentication User Batch Add
|
|
||||||
// @Router /neData/udm/auth/{neId}/{value} [post]
|
|
||||||
func (s *UDMAuthController) Adds(c *gin.Context) {
|
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
neId := c.Param("neId")
|
|
||||||
num := c.Param("num")
|
|
||||||
if neId == "" || num == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId/num is empty"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var body model.UDMAuthUser
|
|
||||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if body.IMSI == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: imsi is empty"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// 网元主机的Telnet客户端
|
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer telnetClient.Close()
|
|
||||||
|
|
||||||
// 发送MML
|
|
||||||
cmd := fmt.Sprintf("baa authdat:start_imsi=%s,sub_num=%s,", body.IMSI, num)
|
|
||||||
cmd += s.udmAuthService.ParseCommandParams(body)
|
|
||||||
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 命令ok时
|
|
||||||
if strings.Contains(data, "ok") {
|
|
||||||
s.udmAuthService.LoadData(neId, body.IMSI, num)
|
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDM鉴权用户修改
|
// UDM鉴权用户修改
|
||||||
//
|
//
|
||||||
// PUT /:neId
|
// PUT /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/auth
|
// @Tags network_data/udm/auth
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -278,15 +242,9 @@ func (s *UDMAuthController) Adds(c *gin.Context) {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM Authenticated User Modification
|
// @Summary UDM Authenticated User Modification
|
||||||
// @Description UDM Authenticated User Modification
|
// @Description UDM Authenticated User Modification
|
||||||
// @Router /neData/udm/auth/{neId} [put]
|
// @Router /neData/udm/auth [put]
|
||||||
func (s *UDMAuthController) Edit(c *gin.Context) {
|
func (s *UDMAuthController) Edit(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
|
||||||
if neId == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var body model.UDMAuthUser
|
var body model.UDMAuthUser
|
||||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
@@ -299,13 +257,13 @@ func (s *UDMAuthController) Edit(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元获取IP
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -323,7 +281,7 @@ func (s *UDMAuthController) Edit(c *gin.Context) {
|
|||||||
|
|
||||||
// 命令ok时
|
// 命令ok时
|
||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
s.udmAuthService.Insert(neId, body)
|
s.udmAuthService.Insert(neInfo.CoreUID, neInfo.NeUID, body)
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
}
|
}
|
||||||
@@ -344,35 +302,56 @@ func (s *UDMAuthController) Edit(c *gin.Context) {
|
|||||||
// @Router /neData/udm/auth/{neId}/{value} [delete]
|
// @Router /neData/udm/auth/{neId}/{value} [delete]
|
||||||
func (s *UDMAuthController) Remove(c *gin.Context) {
|
func (s *UDMAuthController) Remove(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
imsi := c.Param("imsi")
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
if neId == "" || imsi == "" {
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId/imsi is empty"))
|
IMSI string `form:"imsi" binding:"required"` // IMSi
|
||||||
|
Num int64 `form:"num"` // 批量数量
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理字符转id数组后去重
|
// 查询网元信息
|
||||||
imsiArr := strings.Split(imsi, ",")
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
uniqueIDs := parse.RemoveDuplicates(imsiArr)
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID || neInfo.NeType != "UDM" {
|
||||||
if len(uniqueIDs) <= 0 {
|
|
||||||
c.JSON(200, resp.Err(nil))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
|
if query.Num > 0 {
|
||||||
|
// 发送MML
|
||||||
|
cmd := fmt.Sprintf("bde authdat:start_imsi=%s,sub_num=%d", query.IMSI, query.Num)
|
||||||
|
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 命令ok时
|
||||||
|
if strings.Contains(data, "ok") {
|
||||||
|
s.udmAuthService.LoadData(neInfo.CoreUID, neInfo.NeUID, query.IMSI, query.Num)
|
||||||
|
}
|
||||||
|
c.JSON(200, resp.OkData(data))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理字符转id数组后去重
|
||||||
|
imsiArr := strings.Split(query.IMSI, ",")
|
||||||
|
uniqueIDs := parse.RemoveDuplicates(imsiArr)
|
||||||
|
if len(uniqueIDs) <= 0 {
|
||||||
|
c.JSON(200, resp.Err(nil))
|
||||||
|
return
|
||||||
|
}
|
||||||
resultData := map[string]string{}
|
resultData := map[string]string{}
|
||||||
for _, imsi := range uniqueIDs {
|
for _, imsi := range uniqueIDs {
|
||||||
// 发送MML
|
// 发送MML
|
||||||
@@ -384,7 +363,7 @@ func (s *UDMAuthController) Remove(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
// 命令ok时
|
// 命令ok时
|
||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
s.udmAuthService.Delete(imsi, neId)
|
s.udmAuthService.Delete(neInfo.CoreUID, neInfo.NeUID, imsi)
|
||||||
}
|
}
|
||||||
resultData[imsi] = data
|
resultData[imsi] = data
|
||||||
}
|
}
|
||||||
@@ -392,60 +371,6 @@ func (s *UDMAuthController) Remove(c *gin.Context) {
|
|||||||
c.JSON(200, resp.OkData(resultData))
|
c.JSON(200, resp.OkData(resultData))
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDM鉴权用户批量删除
|
|
||||||
//
|
|
||||||
// DELETE /:neId/:imsi/:num
|
|
||||||
//
|
|
||||||
// @Tags network_data/udm/auth
|
|
||||||
// @Accept json
|
|
||||||
// @Produce json
|
|
||||||
// @Param neId path string true "NE ID" default(001)
|
|
||||||
// @Param imsi path string true "IMSI"
|
|
||||||
// @Param num path number true "Number of releases, value includes start imsi"
|
|
||||||
// @Success 200 {object} object "Response Results"
|
|
||||||
// @Security TokenAuth
|
|
||||||
// @Summary UDM Authentication User Batch Deletion
|
|
||||||
// @Description UDM Authentication User Batch Deletion
|
|
||||||
// @Router /neData/udm/auth/{neId}/{imsi}/{num} [delete]
|
|
||||||
func (s *UDMAuthController) Removes(c *gin.Context) {
|
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
neId := c.Param("neId")
|
|
||||||
imsi := c.Param("imsi")
|
|
||||||
num := c.Param("num")
|
|
||||||
if neId == "" || imsi == "" || num == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId/imsi/num is empty"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// 网元主机的Telnet客户端
|
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer telnetClient.Close()
|
|
||||||
|
|
||||||
// 发送MML
|
|
||||||
cmd := fmt.Sprintf("bde authdat:start_imsi=%s,sub_num=%s", imsi, num)
|
|
||||||
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 命令ok时
|
|
||||||
if strings.Contains(data, "ok") {
|
|
||||||
s.udmAuthService.LoadData(neId, imsi, num)
|
|
||||||
}
|
|
||||||
c.JSON(200, resp.OkData(data))
|
|
||||||
}
|
|
||||||
|
|
||||||
// UDM鉴权用户导出
|
// UDM鉴权用户导出
|
||||||
//
|
//
|
||||||
// GET /export
|
// GET /export
|
||||||
@@ -465,13 +390,12 @@ func (s *UDMAuthController) Removes(c *gin.Context) {
|
|||||||
// @Router /neData/udm/auth/export [get]
|
// @Router /neData/udm/auth/export [get]
|
||||||
func (s *UDMAuthController) Export(c *gin.Context) {
|
func (s *UDMAuthController) Export(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
// 查询结果,根据查询条件结果,单页最大值限制
|
neUid := c.Query("neUid")
|
||||||
neId := c.Query("neId")
|
if c.Query("coreUid") == "" || neUid == "" {
|
||||||
fileType := c.Query("type")
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: coreUid or neUid is empty"))
|
||||||
if neId == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
fileType := c.Query("type")
|
||||||
if !(fileType == "csv" || fileType == "txt") {
|
if !(fileType == "csv" || fileType == "txt") {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "ne.udm.errImportUserSubFileFormat")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "ne.udm.errImportUserSubFileFormat")))
|
||||||
return
|
return
|
||||||
@@ -484,8 +408,6 @@ func (s *UDMAuthController) Export(c *gin.Context) {
|
|||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.exportEmpty")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.exportEmpty")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// rows := s.udmAuthService.SelectList(model.UDMAuthUser{NeId: neId})
|
|
||||||
if len(rows) <= 0 {
|
if len(rows) <= 0 {
|
||||||
// 导出数据记录为空
|
// 导出数据记录为空
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.exportEmpty")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.exportEmpty")))
|
||||||
@@ -493,7 +415,7 @@ func (s *UDMAuthController) Export(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 文件名
|
// 文件名
|
||||||
fileName := fmt.Sprintf("udm_auth_user_export_%s_%d.%s", neId, time.Now().UnixMilli(), fileType)
|
fileName := fmt.Sprintf("udm_auth_user_export_%s_%d.%s", neUid, time.Now().UnixMilli(), fileType)
|
||||||
filePath := filepath.Join(file.ParseUploadFileDir(constants.UPLOAD_EXPORT), fileName)
|
filePath := filepath.Join(file.ParseUploadFileDir(constants.UPLOAD_EXPORT), fileName)
|
||||||
|
|
||||||
if fileType == "csv" {
|
if fileType == "csv" {
|
||||||
@@ -550,7 +472,8 @@ func (s *UDMAuthController) Export(c *gin.Context) {
|
|||||||
func (s *UDMAuthController) Import(c *gin.Context) {
|
func (s *UDMAuthController) Import(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var body struct {
|
var body struct {
|
||||||
NeId string `json:"neId" binding:"required"` // 网元ID
|
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||||
UploadPath string `json:"uploadPath" binding:"required"` // 上传文件路径
|
UploadPath string `json:"uploadPath" binding:"required"` // 上传文件路径
|
||||||
TypeVal string `json:"typeVal" binding:"required,oneof=default k4"` // default: 默认导入方式, k4: k4类型导入方式
|
TypeVal string `json:"typeVal" binding:"required,oneof=default k4"` // default: 默认导入方式, k4: k4类型导入方式
|
||||||
TypeData any `json:"typeData"` // k4类型的数据密钥
|
TypeData any `json:"typeData"` // k4类型的数据密钥
|
||||||
@@ -567,15 +490,14 @@ func (s *UDMAuthController) Import(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", body.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != body.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 网元主机的SSH客户端
|
// 网元主机的SSH客户端
|
||||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.NeType, neInfo.NeId)
|
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.CoreUID, neInfo.NeUID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -599,7 +521,7 @@ func (s *UDMAuthController) Import(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.NeType, neInfo.NeId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -618,7 +540,7 @@ func (s *UDMAuthController) Import(c *gin.Context) {
|
|||||||
|
|
||||||
// K4类型发特定请求
|
// K4类型发特定请求
|
||||||
if body.TypeVal == "k4" {
|
if body.TypeVal == "k4" {
|
||||||
resultMsg, resultErr = neFetchlink.UDMImportAuth(neInfo.IP, map[string]any{
|
resultMsg, resultErr = neFetchlink.UDMImportAuth(neInfo.IPAddr, map[string]any{
|
||||||
"path": neFilePath, "k4": body.TypeData,
|
"path": neFilePath, "k4": body.TypeData,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -632,11 +554,11 @@ func (s *UDMAuthController) Import(c *gin.Context) {
|
|||||||
if strings.Contains(resultMsg, "ok") {
|
if strings.Contains(resultMsg, "ok") {
|
||||||
if strings.HasSuffix(body.UploadPath, ".csv") {
|
if strings.HasSuffix(body.UploadPath, ".csv") {
|
||||||
data := file.ReadFileCSV(localFilePath)
|
data := file.ReadFileCSV(localFilePath)
|
||||||
go s.udmAuthService.InsertData(neInfo.NeId, "csv", data)
|
go s.udmAuthService.InsertData(neInfo.CoreUID, neInfo.NeUID, "csv", data)
|
||||||
}
|
}
|
||||||
if strings.HasSuffix(body.UploadPath, ".txt") {
|
if strings.HasSuffix(body.UploadPath, ".txt") {
|
||||||
data := file.ReadFileTXTLine(",", localFilePath)
|
data := file.ReadFileTXTLine(",", localFilePath)
|
||||||
go s.udmAuthService.InsertData(neInfo.NeId, "txt", data)
|
go s.udmAuthService.InsertData(neInfo.CoreUID, neInfo.NeUID, "txt", data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkMsg(resultMsg))
|
c.JSON(200, resp.OkMsg(resultMsg))
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ type UDMSubController struct {
|
|||||||
|
|
||||||
// UDM签约用户重载数据
|
// UDM签约用户重载数据
|
||||||
//
|
//
|
||||||
// PUT /resetData/:neId
|
// PUT /reset
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/sub
|
// @Tags network_data/udm/sub
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -46,15 +46,19 @@ type UDMSubController struct {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM Subscriber User Reload Data
|
// @Summary UDM Subscriber User Reload Data
|
||||||
// @Description UDM Subscriber User Reload Data
|
// @Description UDM Subscriber User Reload Data
|
||||||
// @Router /neData/udm/sub/resetData/{neId} [put]
|
// @Router /neData/udm/sub/reset [put]
|
||||||
func (s *UDMSubController) ResetData(c *gin.Context) {
|
func (s *UDMSubController) ResetData(c *gin.Context) {
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
if neId == "" {
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
data := s.udmSubService.ResetData(neId)
|
data := s.udmSubService.ResetData(query.CoreUID, query.NeUID)
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,7 +87,7 @@ func (s *UDMSubController) List(c *gin.Context) {
|
|||||||
|
|
||||||
// UDM签约用户信息
|
// UDM签约用户信息
|
||||||
//
|
//
|
||||||
// GET /:neId/:imsi
|
// GET /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/sub
|
// @Tags network_data/udm/sub
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -94,24 +98,28 @@ func (s *UDMSubController) List(c *gin.Context) {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM Subscriber User Information
|
// @Summary UDM Subscriber User Information
|
||||||
// @Description UDM Subscriber User Information
|
// @Description UDM Subscriber User Information
|
||||||
// @Router /neData/udm/sub/{neId}/{value} [get]
|
// @Router /neData/udm/sub [get]
|
||||||
func (s *UDMSubController) Info(c *gin.Context) {
|
func (s *UDMSubController) Info(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
imsi := c.Param("imsi")
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
if neId == "" || imsi == "" {
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId or imsi is empty"))
|
IMSI string `form:"imsi" binding:"required"` // 网元唯一标识
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -119,7 +127,7 @@ func (s *UDMSubController) Info(c *gin.Context) {
|
|||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
// 发送MML
|
// 发送MML
|
||||||
cmd := fmt.Sprintf("dsp udmuser:imsi=%s", imsi)
|
cmd := fmt.Sprintf("dsp udmuser:imsi=%s", query.IMSI)
|
||||||
data, err := telnet.ConvertToMap(telnetClient, cmd)
|
data, err := telnet.ConvertToMap(telnetClient, cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
@@ -132,14 +140,14 @@ func (s *UDMSubController) Info(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 解析返回的数据
|
// 解析返回的数据
|
||||||
u := s.udmSubService.ParseInfo(imsi, neId, data)
|
u := s.udmSubService.ParseInfo(neInfo.CoreUID, neInfo.NeUID, query.IMSI, data)
|
||||||
s.udmSubService.Insert(neId, u)
|
s.udmSubService.Insert(neInfo.CoreUID, neInfo.NeUID, u)
|
||||||
c.JSON(200, resp.OkData(u))
|
c.JSON(200, resp.OkData(u))
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDM签约用户新增
|
// UDM签约用户新增
|
||||||
//
|
//
|
||||||
// POST /:neId
|
// POST /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/sub
|
// @Tags network_data/udm/sub
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -150,12 +158,13 @@ func (s *UDMSubController) Info(c *gin.Context) {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM Subscriber User Added
|
// @Summary UDM Subscriber User Added
|
||||||
// @Description UDM Subscriber User Added
|
// @Description UDM Subscriber User Added
|
||||||
// @Router /neData/udm/sub/{neId} [post]
|
// @Router /neData/udm/sub [post]
|
||||||
func (s *UDMSubController) Add(c *gin.Context) {
|
func (s *UDMSubController) Add(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
// 传入数量大于0时,为批量新增
|
||||||
if neId == "" {
|
num := parse.Number(c.Query("num"))
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
if num < 0 {
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: num is empty"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,19 +180,41 @@ func (s *UDMSubController) Add(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元获取IP
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
|
// 批量新增
|
||||||
|
if num > 1 {
|
||||||
|
// 发送MML
|
||||||
|
cmd := fmt.Sprintf("baa udmuser:start_imsi=%s,start_msisdn=%s,sub_num=%d,", body.IMSI, body.MSISDN, num)
|
||||||
|
cmd += s.udmSubService.ParseCommandParams(body)
|
||||||
|
// 去除msisdn参数,避免重复
|
||||||
|
omemsisdn := fmt.Sprintf(",msisdn=%s,", body.MSISDN)
|
||||||
|
cmd = strings.Replace(cmd, omemsisdn, ",", 1)
|
||||||
|
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 命令ok时
|
||||||
|
if strings.Contains(data, "ok") {
|
||||||
|
s.udmSubService.LoadData(neInfo.CoreUID, neInfo.NeUID, body.IMSI, num, body.Remark)
|
||||||
|
}
|
||||||
|
c.JSON(200, resp.OkData(data))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// 发送MML
|
// 发送MML
|
||||||
cmd := fmt.Sprintf("add udmuser:imsi=%s,", body.IMSI)
|
cmd := fmt.Sprintf("add udmuser:imsi=%s,", body.IMSI)
|
||||||
cmd += s.udmSubService.ParseCommandParams(body)
|
cmd += s.udmSubService.ParseCommandParams(body)
|
||||||
@@ -195,83 +226,14 @@ func (s *UDMSubController) Add(c *gin.Context) {
|
|||||||
|
|
||||||
// 命令ok时
|
// 命令ok时
|
||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
body.NeId = neId
|
s.udmSubService.Insert(neInfo.CoreUID, neInfo.NeUID, body)
|
||||||
s.udmSubService.Insert(neId, body)
|
|
||||||
}
|
|
||||||
c.JSON(200, resp.OkData(data))
|
|
||||||
}
|
|
||||||
|
|
||||||
// UDM签约用户批量新增
|
|
||||||
//
|
|
||||||
// POST /:neId/:num
|
|
||||||
//
|
|
||||||
// @Tags network_data/udm/sub
|
|
||||||
// @Accept json
|
|
||||||
// @Produce json
|
|
||||||
// @Param neId path string true "NE ID" default(001)
|
|
||||||
// @Param value path number true "Number of releases, value includes start imsi" default(1)
|
|
||||||
// @Param data body object true "Request Param"
|
|
||||||
// @Success 200 {object} object "Response Results"
|
|
||||||
// @Security TokenAuth
|
|
||||||
// @Summary UDM Subscriber User Batch Add
|
|
||||||
// @Description UDM Subscriber User Batch Add
|
|
||||||
// @Router /neData/udm/sub/{neId}/{value} [post]
|
|
||||||
func (s *UDMSubController) Adds(c *gin.Context) {
|
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
neId := c.Param("neId")
|
|
||||||
num := c.Param("num")
|
|
||||||
if neId == "" || num == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId/num is empty"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var body model.UDMSubUser
|
|
||||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if len(body.IMSI) != 15 {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: IMSI length is not 15 bits"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// 网元主机的Telnet客户端
|
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer telnetClient.Close()
|
|
||||||
|
|
||||||
// 发送MML
|
|
||||||
cmd := fmt.Sprintf("baa udmuser:start_imsi=%s,start_msisdn=%s,sub_num=%s,", body.IMSI, body.MSISDN, num)
|
|
||||||
cmd += s.udmSubService.ParseCommandParams(body)
|
|
||||||
// 去除msisdn参数,避免重复
|
|
||||||
omemsisdn := fmt.Sprintf(",msisdn=%s,", body.MSISDN)
|
|
||||||
cmd = strings.Replace(cmd, omemsisdn, ",", 1)
|
|
||||||
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 命令ok时
|
|
||||||
if strings.Contains(data, "ok") {
|
|
||||||
s.udmSubService.LoadData(neId, body.IMSI, num, body.Remark)
|
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDM签约用户修改
|
// UDM签约用户修改
|
||||||
//
|
//
|
||||||
// PUT /:neId
|
// PUT /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/sub
|
// @Tags network_data/udm/sub
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -282,7 +244,7 @@ func (s *UDMSubController) Adds(c *gin.Context) {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM Subscriber User Modification
|
// @Summary UDM Subscriber User Modification
|
||||||
// @Description UDM Subscriber User Modification
|
// @Description UDM Subscriber User Modification
|
||||||
// @Router /neData/udm/sub/{neId} [put]
|
// @Router /neData/udm/sub [put]
|
||||||
func (s *UDMSubController) Edit(c *gin.Context) {
|
func (s *UDMSubController) Edit(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
neId := c.Param("neId")
|
||||||
@@ -303,13 +265,13 @@ func (s *UDMSubController) Edit(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元获取IP
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -327,15 +289,14 @@ func (s *UDMSubController) Edit(c *gin.Context) {
|
|||||||
|
|
||||||
// 命令ok时
|
// 命令ok时
|
||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
body.NeId = neId
|
s.udmSubService.Insert(neInfo.CoreUID, neInfo.NeUID, body)
|
||||||
s.udmSubService.Insert(neId, body)
|
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDM签约用户删除
|
// UDM签约用户删除
|
||||||
//
|
//
|
||||||
// DELETE /:neId/:imsi
|
// DELETE /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/sub
|
// @Tags network_data/udm/sub
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -346,38 +307,58 @@ func (s *UDMSubController) Edit(c *gin.Context) {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM Subscriber User Deletion
|
// @Summary UDM Subscriber User Deletion
|
||||||
// @Description UDM Subscriber User Deletion
|
// @Description UDM Subscriber User Deletion
|
||||||
// @Router /neData/udm/sub/{neId}/{value} [delete]
|
// @Router /neData/udm/sub [delete]
|
||||||
func (s *UDMSubController) Remove(c *gin.Context) {
|
func (s *UDMSubController) Remove(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
imsi := c.Param("imsi")
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
if neId == "" || len(imsi) < 15 {
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId/imsi is empty"))
|
IMSI string `form:"imsi" binding:"required"` // IMSi
|
||||||
|
Num int64 `form:"num"` // 批量数量
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理字符转id数组后去重
|
// 查询网元信息
|
||||||
imsiArr := strings.Split(imsi, ",")
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
uniqueIDs := parse.RemoveDuplicates(imsiArr)
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID || neInfo.NeType != "UDM" {
|
||||||
if len(uniqueIDs) <= 0 {
|
|
||||||
c.JSON(200, resp.Err(nil))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
|
if query.Num > 0 {
|
||||||
|
// 发送MML
|
||||||
|
cmd := fmt.Sprintf("bde udmuser:start_imsi=%s,sub_num=%d", query.IMSI, query.Num)
|
||||||
|
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 命令ok时
|
||||||
|
if strings.Contains(data, "ok") {
|
||||||
|
s.udmSubService.LoadData(neInfo.CoreUID, neInfo.NeUID, query.IMSI, query.Num, "-(Deleted)-")
|
||||||
|
}
|
||||||
|
c.JSON(200, resp.OkData(data))
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理字符转id数组后去重
|
||||||
|
imsiArr := strings.Split(query.IMSI, ",")
|
||||||
|
uniqueIDs := parse.RemoveDuplicates(imsiArr)
|
||||||
|
if len(uniqueIDs) <= 0 {
|
||||||
|
c.JSON(200, resp.Err(nil))
|
||||||
|
return
|
||||||
|
}
|
||||||
resultData := map[string]string{}
|
resultData := map[string]string{}
|
||||||
for _, imsi := range uniqueIDs {
|
for _, imsi := range uniqueIDs {
|
||||||
// 发送MML
|
// 发送MML
|
||||||
@@ -389,7 +370,7 @@ func (s *UDMSubController) Remove(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
// 命令ok时
|
// 命令ok时
|
||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
s.udmSubService.Delete(neId, imsi)
|
s.udmSubService.Delete(neInfo.CoreUID, neInfo.NeUID, imsi)
|
||||||
}
|
}
|
||||||
resultData[imsi] = data
|
resultData[imsi] = data
|
||||||
}
|
}
|
||||||
@@ -397,60 +378,6 @@ func (s *UDMSubController) Remove(c *gin.Context) {
|
|||||||
c.JSON(200, resp.OkData(resultData))
|
c.JSON(200, resp.OkData(resultData))
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDM签约用户批量删除
|
|
||||||
//
|
|
||||||
// DELETE /:neId/:imsi/:num
|
|
||||||
//
|
|
||||||
// @Tags network_data/udm/sub
|
|
||||||
// @Accept json
|
|
||||||
// @Produce json
|
|
||||||
// @Param neId path string true "NE ID" default(001)
|
|
||||||
// @Param imsi path string true "IMSI"
|
|
||||||
// @Param num path number true "Number of releases, value includes start imsi"
|
|
||||||
// @Success 200 {object} object "Response Results"
|
|
||||||
// @Security TokenAuth
|
|
||||||
// @Summary UDM Subscriber User Batch Deletion
|
|
||||||
// @Description UDM Subscriber User Batch Deletion
|
|
||||||
// @Router /neData/udm/sub/{neId}/{imsi}/{num} [delete]
|
|
||||||
func (s *UDMSubController) Removes(c *gin.Context) {
|
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
neId := c.Param("neId")
|
|
||||||
imsi := c.Param("imsi")
|
|
||||||
num := c.Param("num")
|
|
||||||
if neId == "" || len(imsi) < 15 || num == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId/imsi/num is empty"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// 网元主机的Telnet客户端
|
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer telnetClient.Close()
|
|
||||||
|
|
||||||
// 发送MML
|
|
||||||
cmd := fmt.Sprintf("bde udmuser:start_imsi=%s,sub_num=%s", imsi, num)
|
|
||||||
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 命令ok时
|
|
||||||
if strings.Contains(data, "ok") {
|
|
||||||
s.udmSubService.LoadData(neId, imsi, num, "-(Deleted)-")
|
|
||||||
}
|
|
||||||
c.JSON(200, resp.OkData(data))
|
|
||||||
}
|
|
||||||
|
|
||||||
// UDM签约用户导出
|
// UDM签约用户导出
|
||||||
//
|
//
|
||||||
// GET /export
|
// GET /export
|
||||||
@@ -471,13 +398,12 @@ func (s *UDMSubController) Removes(c *gin.Context) {
|
|||||||
// @Router /neData/udm/sub/export [post]
|
// @Router /neData/udm/sub/export [post]
|
||||||
func (s *UDMSubController) Export(c *gin.Context) {
|
func (s *UDMSubController) Export(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
// 查询结果,根据查询条件结果,单页最大值限制
|
neUid := c.Query("neUid")
|
||||||
neId := c.Query("neId")
|
if c.Query("coreUid") == "" || neUid == "" {
|
||||||
fileType := c.Query("type")
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: coreUid or neUid is empty"))
|
||||||
if neId == "" || fileType == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId or type is empty"))
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
fileType := c.Query("type")
|
||||||
if !(fileType == "csv" || fileType == "txt") {
|
if !(fileType == "csv" || fileType == "txt") {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "ne.udm.errImportUserSubFileFormat")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "ne.udm.errImportUserSubFileFormat")))
|
||||||
return
|
return
|
||||||
@@ -490,8 +416,6 @@ func (s *UDMSubController) Export(c *gin.Context) {
|
|||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.exportEmpty")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.exportEmpty")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// rows := s.udmSubService.SelectList(model.UDMSubUser{NeId: neId})
|
|
||||||
if len(rows) <= 0 {
|
if len(rows) <= 0 {
|
||||||
// 导出数据记录为空
|
// 导出数据记录为空
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.exportEmpty")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.exportEmpty")))
|
||||||
@@ -499,7 +423,7 @@ func (s *UDMSubController) Export(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 文件名
|
// 文件名
|
||||||
fileName := fmt.Sprintf("udm_sub_user_export_%s_%d.%s", neId, time.Now().UnixMilli(), fileType)
|
fileName := fmt.Sprintf("udm_sub_user_export_%s_%d.%s", neUid, time.Now().UnixMilli(), fileType)
|
||||||
filePath := filepath.Join(file.ParseUploadFileDir(constants.UPLOAD_EXPORT), fileName)
|
filePath := filepath.Join(file.ParseUploadFileDir(constants.UPLOAD_EXPORT), fileName)
|
||||||
|
|
||||||
if fileType == "csv" {
|
if fileType == "csv" {
|
||||||
@@ -550,7 +474,8 @@ func (s *UDMSubController) Export(c *gin.Context) {
|
|||||||
func (s *UDMSubController) Import(c *gin.Context) {
|
func (s *UDMSubController) Import(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var body struct {
|
var body struct {
|
||||||
NeId string `json:"neId" binding:"required"`
|
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||||
UploadPath string `json:"uploadPath" binding:"required"`
|
UploadPath string `json:"uploadPath" binding:"required"`
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
||||||
@@ -565,15 +490,14 @@ func (s *UDMSubController) Import(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", body.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != body.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 网元主机的SSH客户端
|
// 网元主机的SSH客户端
|
||||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.NeType, neInfo.NeId)
|
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.CoreUID, neInfo.NeUID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -597,7 +521,7 @@ func (s *UDMSubController) Import(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.NeType, neInfo.NeId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -616,11 +540,11 @@ func (s *UDMSubController) Import(c *gin.Context) {
|
|||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
if strings.HasSuffix(body.UploadPath, ".csv") {
|
if strings.HasSuffix(body.UploadPath, ".csv") {
|
||||||
data := file.ReadFileCSV(localFilePath)
|
data := file.ReadFileCSV(localFilePath)
|
||||||
go s.udmSubService.InsertData(neInfo.NeId, "csv", data)
|
go s.udmSubService.InsertData(neInfo.CoreUID, neInfo.NeUID, "csv", data)
|
||||||
}
|
}
|
||||||
if strings.HasSuffix(body.UploadPath, ".txt") {
|
if strings.HasSuffix(body.UploadPath, ".txt") {
|
||||||
data := file.ReadFileTXTLine(",", localFilePath)
|
data := file.ReadFileTXTLine(",", localFilePath)
|
||||||
go s.udmSubService.InsertData(neInfo.NeId, "txt", data)
|
go s.udmSubService.InsertData(neInfo.CoreUID, neInfo.NeUID, "txt", data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkMsg(data))
|
c.JSON(200, resp.OkMsg(data))
|
||||||
|
|||||||
@@ -36,25 +36,30 @@ type UDMVOIPController struct {
|
|||||||
|
|
||||||
// UDMVOIP用户重载数据
|
// UDMVOIP用户重载数据
|
||||||
//
|
//
|
||||||
// PUT /resetData/:neId
|
// PUT /reset
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/voip
|
// @Tags network_data/udm/voip
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Param neId path string true "NE ID" default(001)
|
// @Param coreUid query string true "CoreUID" default(001)
|
||||||
|
// @Param neUid query string true "NeUID" default(001)
|
||||||
// @Success 200 {object} object "Response Results"
|
// @Success 200 {object} object "Response Results"
|
||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM VOIP User Data Refresh
|
// @Summary UDM VOIP User Data Refresh
|
||||||
// @Description UDM VOIP User Data List Refresh Synchronization Latest
|
// @Description UDM VOIP User Data List Refresh Synchronization Latest
|
||||||
// @Router /neData/udm/voip/resetData/{neId} [put]
|
// @Router /neData/udm/voip/reset [put]
|
||||||
func (s *UDMVOIPController) ResetData(c *gin.Context) {
|
func (s *UDMVOIPController) ResetData(c *gin.Context) {
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
if neId == "" {
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
data := s.udmVOIPService.ResetData(neId)
|
data := s.udmVOIPService.ResetData(query.CoreUID, query.NeUID)
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,7 +70,8 @@ func (s *UDMVOIPController) ResetData(c *gin.Context) {
|
|||||||
// @Tags network_data/udm/voip
|
// @Tags network_data/udm/voip
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Param neId query string true "NE ID" default(001)
|
// @Param coreUid query string true "CoreUID" default(001)
|
||||||
|
// @Param neUid query string true "NeUID" default(001)
|
||||||
// @Param username query string false "User Name"
|
// @Param username query string false "User Name"
|
||||||
// @Param pageNum query number true "pageNum" default(1)
|
// @Param pageNum query number true "pageNum" default(1)
|
||||||
// @Param pageSize query number true "pageSize" default(10)
|
// @Param pageSize query number true "pageSize" default(10)
|
||||||
@@ -82,7 +88,7 @@ func (s *UDMVOIPController) List(c *gin.Context) {
|
|||||||
|
|
||||||
// UDMVOIP用户信息
|
// UDMVOIP用户信息
|
||||||
//
|
//
|
||||||
// GET /:neId/:username
|
// GET /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/voip
|
// @Tags network_data/udm/voip
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -93,24 +99,28 @@ func (s *UDMVOIPController) List(c *gin.Context) {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM VOIP User Information
|
// @Summary UDM VOIP User Information
|
||||||
// @Description UDM VOIP User Information
|
// @Description UDM VOIP User Information
|
||||||
// @Router /neData/udm/voip/{neId}/{value} [get]
|
// @Router /neData/udm/voip [get]
|
||||||
func (s *UDMVOIPController) Info(c *gin.Context) {
|
func (s *UDMVOIPController) Info(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
username := c.Param("username")
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
if neId == "" || username == "" {
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId or username is empty"))
|
UserName string `form:"username" binding:"required"` // 用户名
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -118,7 +128,7 @@ func (s *UDMVOIPController) Info(c *gin.Context) {
|
|||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
// 发送MML
|
// 发送MML
|
||||||
cmd := fmt.Sprintf("dsp voip:username=%s", username)
|
cmd := fmt.Sprintf("dsp voip:username=%s", query.UserName)
|
||||||
data, err := telnet.ConvertToMap(telnetClient, cmd)
|
data, err := telnet.ConvertToMap(telnetClient, cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
@@ -131,9 +141,9 @@ func (s *UDMVOIPController) Info(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 解析返回的数据
|
// 解析返回的数据
|
||||||
u := s.udmVOIPService.ParseInfo(neId, data)
|
u := s.udmVOIPService.ParseInfo(neInfo.CoreUID, neInfo.NeUID, data)
|
||||||
if u.ID != "" {
|
if u.ID != "" {
|
||||||
s.udmVOIPService.Insert(neId, u.UserName)
|
s.udmVOIPService.Insert(neInfo.CoreUID, neInfo.NeUID, u.UserName)
|
||||||
c.JSON(200, resp.OkData(u))
|
c.JSON(200, resp.OkData(u))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -142,7 +152,7 @@ func (s *UDMVOIPController) Info(c *gin.Context) {
|
|||||||
|
|
||||||
// UDMVOIP用户新增
|
// UDMVOIP用户新增
|
||||||
//
|
//
|
||||||
// POST /:neId
|
// POST /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/voip
|
// @Tags network_data/udm/voip
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -153,12 +163,13 @@ func (s *UDMVOIPController) Info(c *gin.Context) {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM VOIP User Added
|
// @Summary UDM VOIP User Added
|
||||||
// @Description UDM VOIP User Added
|
// @Description UDM VOIP User Added
|
||||||
// @Router /neData/udm/voip/{neId} [post]
|
// @Router /neData/udm/voip [post]
|
||||||
func (s *UDMVOIPController) Add(c *gin.Context) {
|
func (s *UDMVOIPController) Add(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
// 传入数量大于0时,为批量新增
|
||||||
if neId == "" {
|
num := parse.Number(c.Query("num"))
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
if num < 1 {
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: num is empty"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,20 +184,38 @@ func (s *UDMVOIPController) Add(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
|
// 批量新增
|
||||||
|
if num > 1 {
|
||||||
|
// 发送MML
|
||||||
|
cmd := fmt.Sprintf("baa voip:sub_num=%d,start_username=%s,password=%s", num, body.UserName, body.Password)
|
||||||
|
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 命令ok时
|
||||||
|
if strings.Contains(data, "ok") {
|
||||||
|
s.udmVOIPService.LoadData(neInfo.CoreUID, neInfo.NeUID, body.UserName, num)
|
||||||
|
}
|
||||||
|
c.JSON(200, resp.OkData(data))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// 发送MML
|
// 发送MML
|
||||||
cmd := fmt.Sprintf("add voip:username=%s,password=%s", body.UserName, body.Password)
|
cmd := fmt.Sprintf("add voip:username=%s,password=%s", body.UserName, body.Password)
|
||||||
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
||||||
@@ -197,78 +226,14 @@ func (s *UDMVOIPController) Add(c *gin.Context) {
|
|||||||
|
|
||||||
// 命令ok时
|
// 命令ok时
|
||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
s.udmVOIPService.Insert(neId, body.UserName)
|
s.udmVOIPService.Insert(neInfo.CoreUID, neInfo.NeUID, body.UserName)
|
||||||
}
|
|
||||||
c.JSON(200, resp.OkData(data))
|
|
||||||
}
|
|
||||||
|
|
||||||
// UDMVOIP用户批量新增
|
|
||||||
//
|
|
||||||
// POST /:neId/:num
|
|
||||||
//
|
|
||||||
// @Tags network_data/udm/voip
|
|
||||||
// @Accept json
|
|
||||||
// @Produce json
|
|
||||||
// @Param neId path string true "NE ID" default(001)
|
|
||||||
// @Param value path number true "Number of releases, value includes start username"
|
|
||||||
// @Param data body object true "Request Param"
|
|
||||||
// @Success 200 {object} object "Response Results"
|
|
||||||
// @Security TokenAuth
|
|
||||||
// @Summary UDM VOIP User Batch Add
|
|
||||||
// @Description UDM VOIP User Batch Add
|
|
||||||
// @Router /neData/udm/voip/{neId}/{value} [post]
|
|
||||||
func (s *UDMVOIPController) Adds(c *gin.Context) {
|
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
neId := c.Param("neId")
|
|
||||||
num := c.Param("num")
|
|
||||||
if neId == "" || num == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId or num is empty"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var body model.UDMVOIPUser
|
|
||||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if body.UserName == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: username is empty"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// 网元主机的Telnet客户端
|
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer telnetClient.Close()
|
|
||||||
|
|
||||||
// 发送MML
|
|
||||||
cmd := fmt.Sprintf("baa voip:sub_num=%s,start_username=%s,password=%s", num, body.UserName, body.Password)
|
|
||||||
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 命令ok时
|
|
||||||
if strings.Contains(data, "ok") {
|
|
||||||
s.udmVOIPService.LoadData(neId, body.UserName, num)
|
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDMVOIP用户删除
|
// UDMVOIP用户删除
|
||||||
//
|
//
|
||||||
// DELETE /:neId/:username
|
// DELETE /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/voip
|
// @Tags network_data/udm/voip
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -279,38 +244,59 @@ func (s *UDMVOIPController) Adds(c *gin.Context) {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM VOIP User Deletion
|
// @Summary UDM VOIP User Deletion
|
||||||
// @Description UDM VOIP User Deletion
|
// @Description UDM VOIP User Deletion
|
||||||
// @Router /neData/udm/voip/{neId}/{value} [delete]
|
// @Router /neData/udm/voip [delete]
|
||||||
func (s *UDMVOIPController) Remove(c *gin.Context) {
|
func (s *UDMVOIPController) Remove(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
username := c.Param("username")
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
if neId == "" || username == "" {
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId or username is empty"))
|
UserName string `form:"username" binding:"required"` // 用户名
|
||||||
|
Num int64 `form:"num"` // 批量数量
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理字符转id数组后去重
|
// 查询网元信息
|
||||||
usernameArr := strings.Split(username, ",")
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
uniqueIDs := parse.RemoveDuplicates(usernameArr)
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID || neInfo.NeType != "UDM" {
|
||||||
if len(uniqueIDs) <= 0 {
|
|
||||||
c.JSON(200, resp.Err(nil))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
|
if query.Num > 1 {
|
||||||
|
// 发送MML
|
||||||
|
cmd := fmt.Sprintf("bde voip:start_username=%s,sub_num=%d", query.UserName, query.Num)
|
||||||
|
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 命令ok时
|
||||||
|
if strings.Contains(data, "ok") {
|
||||||
|
s.udmVOIPService.LoadData(neInfo.CoreUID, neInfo.NeUID, query.UserName, query.Num)
|
||||||
|
}
|
||||||
|
c.JSON(200, resp.OkData(data))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理字符转id数组后去重
|
||||||
|
imsiArr := strings.Split(query.UserName, ",")
|
||||||
|
uniqueIDs := parse.RemoveDuplicates(imsiArr)
|
||||||
|
if len(uniqueIDs) <= 0 {
|
||||||
|
c.JSON(200, resp.Err(nil))
|
||||||
|
return
|
||||||
|
}
|
||||||
resultData := map[string]string{}
|
resultData := map[string]string{}
|
||||||
for _, v := range uniqueIDs {
|
for _, v := range uniqueIDs {
|
||||||
// 发送MML
|
// 发送MML
|
||||||
@@ -322,7 +308,7 @@ func (s *UDMVOIPController) Remove(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
// 命令ok时
|
// 命令ok时
|
||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
s.udmVOIPService.Delete(v, neId)
|
s.udmVOIPService.Delete(neInfo.CoreUID, neInfo.NeUID, v)
|
||||||
}
|
}
|
||||||
resultData[v] = data
|
resultData[v] = data
|
||||||
}
|
}
|
||||||
@@ -330,60 +316,6 @@ func (s *UDMVOIPController) Remove(c *gin.Context) {
|
|||||||
c.JSON(200, resp.OkData(resultData))
|
c.JSON(200, resp.OkData(resultData))
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDMVOIP用户批量删除
|
|
||||||
//
|
|
||||||
// DELETE /:neId/:username/:num
|
|
||||||
//
|
|
||||||
// @Tags network_data/udm/voip
|
|
||||||
// @Accept json
|
|
||||||
// @Produce json
|
|
||||||
// @Param neId path string true "NE ID" default(001)
|
|
||||||
// @Param username path string true "User Name"
|
|
||||||
// @Param num path number true "Number of releases, value includes start username"
|
|
||||||
// @Success 200 {object} object "Response Results"
|
|
||||||
// @Security TokenAuth
|
|
||||||
// @Summary UDM VOIP User Batch Deletion
|
|
||||||
// @Description UDM VOIP User Batch Deletion
|
|
||||||
// @Router /neData/udm/voip/{neId}/{username}/{num} [delete]
|
|
||||||
func (s *UDMVOIPController) Removes(c *gin.Context) {
|
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
neId := c.Param("neId")
|
|
||||||
username := c.Param("username")
|
|
||||||
num := c.Param("num")
|
|
||||||
if neId == "" || username == "" || num == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId/username/num is empty"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// 网元主机的Telnet客户端
|
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer telnetClient.Close()
|
|
||||||
|
|
||||||
// 发送MML
|
|
||||||
cmd := fmt.Sprintf("bde voip:start_username=%s,sub_num=%s", username, num)
|
|
||||||
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 命令ok时
|
|
||||||
if strings.Contains(data, "ok") {
|
|
||||||
s.udmVOIPService.LoadData(neId, username, num)
|
|
||||||
}
|
|
||||||
c.JSON(200, resp.OkData(data))
|
|
||||||
}
|
|
||||||
|
|
||||||
// UDMVOIP用户导出
|
// UDMVOIP用户导出
|
||||||
//
|
//
|
||||||
// GET /export
|
// GET /export
|
||||||
@@ -480,7 +412,8 @@ func (s *UDMVOIPController) Export(c *gin.Context) {
|
|||||||
func (s *UDMVOIPController) Import(c *gin.Context) {
|
func (s *UDMVOIPController) Import(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var body struct {
|
var body struct {
|
||||||
NeId string `json:"neId" binding:"required"` // 网元ID
|
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||||
UploadPath string `json:"uploadPath" binding:"required"` // 上传文件路径
|
UploadPath string `json:"uploadPath" binding:"required"` // 上传文件路径
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
||||||
@@ -495,15 +428,14 @@ func (s *UDMVOIPController) Import(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", body.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != body.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 网元主机的SSH客户端
|
// 网元主机的SSH客户端
|
||||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.NeType, neInfo.NeId)
|
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.CoreUID, neInfo.NeUID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -527,7 +459,7 @@ func (s *UDMVOIPController) Import(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.NeType, neInfo.NeId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -550,11 +482,11 @@ func (s *UDMVOIPController) Import(c *gin.Context) {
|
|||||||
if strings.Contains(resultMsg, "ok") {
|
if strings.Contains(resultMsg, "ok") {
|
||||||
if strings.HasSuffix(body.UploadPath, ".csv") {
|
if strings.HasSuffix(body.UploadPath, ".csv") {
|
||||||
data := file.ReadFileCSV(localFilePath)
|
data := file.ReadFileCSV(localFilePath)
|
||||||
go s.udmVOIPService.InsertData(neInfo.NeId, "csv", data)
|
go s.udmVOIPService.InsertData(neInfo.CoreUID, neInfo.NeUID, "csv", data)
|
||||||
}
|
}
|
||||||
if strings.HasSuffix(body.UploadPath, ".txt") {
|
if strings.HasSuffix(body.UploadPath, ".txt") {
|
||||||
data := file.ReadFileTXTLine(",", localFilePath)
|
data := file.ReadFileTXTLine(",", localFilePath)
|
||||||
go s.udmVOIPService.InsertData(neInfo.NeId, "txt", data)
|
go s.udmVOIPService.InsertData(neInfo.CoreUID, neInfo.NeUID, "txt", data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkMsg(resultMsg))
|
c.JSON(200, resp.OkMsg(resultMsg))
|
||||||
|
|||||||
@@ -36,25 +36,30 @@ type UDMVolteIMSController struct {
|
|||||||
|
|
||||||
// UDMVolteIMS用户重载数据
|
// UDMVolteIMS用户重载数据
|
||||||
//
|
//
|
||||||
// PUT /resetData/:neId
|
// PUT /reset
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/volte-ims
|
// @Tags network_data/udm/volte-ims
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Param neId path string true "NE ID" default(001)
|
// @Param coreUid query string true "CoreUID" default(001)
|
||||||
|
// @Param neUid query string true "NeUID" default(001)
|
||||||
// @Success 200 {object} object "Response Results"
|
// @Success 200 {object} object "Response Results"
|
||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM VolteIMS User Data Refresh
|
// @Summary UDM VolteIMS User Data Refresh
|
||||||
// @Description UDM Authenticated User Data List Refresh Synchronization Latest
|
// @Description UDM Authenticated User Data List Refresh Synchronization Latest
|
||||||
// @Router /neData/udm/volte-ims/resetData/{neId} [put]
|
// @Router /neData/udm/volte-ims/reset [put]
|
||||||
func (s *UDMVolteIMSController) ResetData(c *gin.Context) {
|
func (s *UDMVolteIMSController) ResetData(c *gin.Context) {
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
if neId == "" {
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
data := s.udmVolteIMSService.ResetData(neId)
|
data := s.udmVolteIMSService.ResetData(query.CoreUID, query.NeUID)
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,7 +87,7 @@ func (s *UDMVolteIMSController) List(c *gin.Context) {
|
|||||||
|
|
||||||
// UDMVolteIMS用户信息
|
// UDMVolteIMS用户信息
|
||||||
//
|
//
|
||||||
// GET /:neId/:imsi
|
// GET /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/volte-ims
|
// @Tags network_data/udm/volte-ims
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -94,29 +99,29 @@ func (s *UDMVolteIMSController) List(c *gin.Context) {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM VolteIMS User Information
|
// @Summary UDM VolteIMS User Information
|
||||||
// @Description UDM VolteIMS User Information
|
// @Description UDM VolteIMS User Information
|
||||||
// @Router /neData/udm/volte-ims/{neId}/{value} [get]
|
// @Router /neData/udm/volte-ims [get]
|
||||||
func (s *UDMVolteIMSController) Info(c *gin.Context) {
|
func (s *UDMVolteIMSController) Info(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
imsi := c.Param("imsi")
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
msisdn := c.Query("msisdn")
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
if neId == "" || imsi == "" {
|
IMSI string `form:"imsi" binding:"required"` // IMSi
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId or imsi is empty"))
|
MSISDN string `form:"msisdn" binding:"required"` // MSISDN
|
||||||
return
|
|
||||||
}
|
}
|
||||||
if msisdn == "" {
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: msisdn is required"))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -124,7 +129,7 @@ func (s *UDMVolteIMSController) Info(c *gin.Context) {
|
|||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
// 发送MML
|
// 发送MML
|
||||||
cmd := fmt.Sprintf("dsp imsuser:imsi=%s,msisdn=%s", imsi, msisdn)
|
cmd := fmt.Sprintf("dsp imsuser:imsi=%s,msisdn=%s", query.IMSI, query.MSISDN)
|
||||||
data, err := telnet.ConvertToMap(telnetClient, cmd)
|
data, err := telnet.ConvertToMap(telnetClient, cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
@@ -137,9 +142,9 @@ func (s *UDMVolteIMSController) Info(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 解析返回的数据
|
// 解析返回的数据
|
||||||
u := s.udmVolteIMSService.ParseInfo(neId, data)
|
u := s.udmVolteIMSService.ParseInfo(neInfo.CoreUID, neInfo.NeUID, data)
|
||||||
if u.ID != "" {
|
if u.ID != "" {
|
||||||
s.udmVolteIMSService.InsertByIMSI(imsi, neId)
|
s.udmVolteIMSService.InsertByIMSI(neInfo.CoreUID, neInfo.NeUID, query.IMSI)
|
||||||
c.JSON(200, resp.OkData(u))
|
c.JSON(200, resp.OkData(u))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -148,7 +153,7 @@ func (s *UDMVolteIMSController) Info(c *gin.Context) {
|
|||||||
|
|
||||||
// UDMVolteIMS用户新增
|
// UDMVolteIMS用户新增
|
||||||
//
|
//
|
||||||
// POST /:neId
|
// POST /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/volte-ims
|
// @Tags network_data/udm/volte-ims
|
||||||
// @Accept json
|
// @Accept json
|
||||||
@@ -159,12 +164,13 @@ func (s *UDMVolteIMSController) Info(c *gin.Context) {
|
|||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM VolteIMS User Added
|
// @Summary UDM VolteIMS User Added
|
||||||
// @Description UDM VolteIMS User Added If VoIP tag=0, then MSISDN and IMSI need to be the same.
|
// @Description UDM VolteIMS User Added If VoIP tag=0, then MSISDN and IMSI need to be the same.
|
||||||
// @Router /neData/udm/volte-ims/{neId} [post]
|
// @Router /neData/udm/volte-ims [post]
|
||||||
func (s *UDMVolteIMSController) Add(c *gin.Context) {
|
func (s *UDMVolteIMSController) Add(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
// 传入数量大于0时,为批量新增
|
||||||
if neId == "" {
|
num := parse.Number(c.Query("num"))
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
if num < 0 {
|
||||||
|
c.JSON(400, resp.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,22 +185,40 @@ func (s *UDMVolteIMSController) Add(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
|
// 批量新增
|
||||||
|
if num > 1 {
|
||||||
|
// 发送MML
|
||||||
|
cmd := fmt.Sprintf("baa imsuser:sub_num=%d,start_imsi=%s,start_msisdn=%s,volte=%s,vni=%s", num, body.IMSI, body.MSISDN, body.Tag, body.VNI)
|
||||||
|
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 命令ok时
|
||||||
|
if strings.Contains(data, "ok") {
|
||||||
|
s.udmVolteIMSService.LoadData(neInfo.CoreUID, neInfo.NeUID, body.IMSI, num)
|
||||||
|
}
|
||||||
|
c.JSON(200, resp.OkData(data))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// 检查同IMSI下msisdn是否存在
|
// 检查同IMSI下msisdn是否存在
|
||||||
hasMsisdns := s.udmVolteIMSService.Find(model.UDMVolteIMSUser{IMSI: body.IMSI, MSISDN: body.MSISDN, NeId: neId})
|
hasMsisdns := s.udmVolteIMSService.Find(model.UDMVolteIMSUser{IMSI: body.IMSI, MSISDN: body.MSISDN, NeUID: neInfo.NeUID})
|
||||||
if len(hasMsisdns) > 0 {
|
if len(hasMsisdns) > 0 {
|
||||||
c.JSON(200, resp.ErrMsg("IMSI and MSISDN already exist"))
|
c.JSON(200, resp.ErrMsg("IMSI and MSISDN already exist"))
|
||||||
return
|
return
|
||||||
@@ -210,109 +234,51 @@ func (s *UDMVolteIMSController) Add(c *gin.Context) {
|
|||||||
|
|
||||||
// 命令ok时
|
// 命令ok时
|
||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
s.udmVolteIMSService.InsertByIMSI(body.IMSI, neId)
|
s.udmVolteIMSService.InsertByIMSI(neInfo.CoreUID, neInfo.NeUID, body.IMSI)
|
||||||
}
|
|
||||||
c.JSON(200, resp.OkData(data))
|
|
||||||
}
|
|
||||||
|
|
||||||
// UDMVolteIMS用户批量新增
|
|
||||||
//
|
|
||||||
// POST /:neId/:num
|
|
||||||
//
|
|
||||||
// @Tags network_data/udm/volte-ims
|
|
||||||
// @Accept json
|
|
||||||
// @Produce json
|
|
||||||
// @Param neId path string true "NE ID" default(001)
|
|
||||||
// @Param value path number true "Number of releases, value includes start imsi"
|
|
||||||
// @Param data body object true "Request Param"
|
|
||||||
// @Success 200 {object} object "Response Results"
|
|
||||||
// @Security TokenAuth
|
|
||||||
// @Summary UDM VolteIMS User Batch Add
|
|
||||||
// @Description UDM VolteIMS User Batch Add
|
|
||||||
// @Router /neData/udm/volte-ims/{neId}/{value} [post]
|
|
||||||
func (s *UDMVolteIMSController) Adds(c *gin.Context) {
|
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
neId := c.Param("neId")
|
|
||||||
num := c.Param("num")
|
|
||||||
if neId == "" || num == "" {
|
|
||||||
c.JSON(400, resp.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var body model.UDMVolteIMSUser
|
|
||||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if body.IMSI == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: imsi is empty"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询网元获取IP
|
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// 网元主机的Telnet客户端
|
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer telnetClient.Close()
|
|
||||||
|
|
||||||
// 发送MML
|
|
||||||
cmd := fmt.Sprintf("baa imsuser:sub_num=%s,start_imsi=%s,start_msisdn=%s,volte=%s,vni=%s", num, body.IMSI, body.MSISDN, body.Tag, body.VNI)
|
|
||||||
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 命令ok时
|
|
||||||
if strings.Contains(data, "ok") {
|
|
||||||
s.udmVolteIMSService.LoadData(neId, body.IMSI, num)
|
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDMVolteIMS用户删除
|
// UDMVolteIMS用户删除
|
||||||
//
|
//
|
||||||
// DELETE /:neId/:imsi
|
// DELETE /
|
||||||
//
|
//
|
||||||
// @Tags network_data/udm/volte-ims
|
// @Tags network_data/udm/volte-ims
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Param neId path string true "NE ID" default(001)
|
// @Param coreUid query string true "CoreUID" default(001)
|
||||||
// @Param value path string true "IMSI, multiple separated by a , sign"
|
// @Param neUid query string true "NeUID" default(001)
|
||||||
|
// @Param imsi query string true "IMSI"
|
||||||
|
// @Param num query number true "Number of releases, value includes start imsi"
|
||||||
// @Param msisdn query string false "MSISDN"
|
// @Param msisdn query string false "MSISDN"
|
||||||
// @Success 200 {object} object "Response Results"
|
// @Success 200 {object} object "Response Results"
|
||||||
// @Security TokenAuth
|
// @Security TokenAuth
|
||||||
// @Summary UDM Authenticated User Deletion
|
// @Summary UDM VolteIMS User Batch Deletion
|
||||||
// @Description UDM Authenticated User Deletion
|
// @Description UDM VolteIMS User Batch Deletion
|
||||||
// @Router /neData/udm/volte-ims/{neId}/{value} [delete]
|
// @Router /neData/udm/volte-ims [delete]
|
||||||
func (s *UDMVolteIMSController) Remove(c *gin.Context) {
|
func (s *UDMVolteIMSController) Remove(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
neId := c.Param("neId")
|
var query struct {
|
||||||
imsi := c.Param("imsi")
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
msisdn := c.Query("msisdn")
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
if neId == "" || imsi == "" {
|
IMSI string `form:"imsi" binding:"required"` // IMSi, 带数量时为批量
|
||||||
c.JSON(400, resp.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
MSISDN string `form:"msisdn"` // MSISDN, 精确msisdn删除
|
||||||
|
Num int64 `form:"num"` // 批量数量
|
||||||
|
}
|
||||||
|
if err := c.ShouldBindQuery(&query); err != nil {
|
||||||
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
imsiArr := strings.Split(imsi, ",")
|
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -320,9 +286,9 @@ func (s *UDMVolteIMSController) Remove(c *gin.Context) {
|
|||||||
defer telnetClient.Close()
|
defer telnetClient.Close()
|
||||||
|
|
||||||
// 精确msisdn删除
|
// 精确msisdn删除
|
||||||
if msisdn != "" {
|
if query.MSISDN != "" {
|
||||||
// 发送MML
|
// 发送MML
|
||||||
cmd := fmt.Sprintf("del imsuser:imsi=%s,msisdn=%s", imsiArr[0], msisdn)
|
cmd := fmt.Sprintf("del imsuser:imsi=%s,msisdn=%s", query.IMSI, query.MSISDN)
|
||||||
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
@@ -330,89 +296,53 @@ func (s *UDMVolteIMSController) Remove(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
// 命令ok时
|
// 命令ok时
|
||||||
if strings.Contains(data, "ok") {
|
if strings.Contains(data, "ok") {
|
||||||
s.udmVolteIMSService.Delete(imsi, neId)
|
s.udmVolteIMSService.Delete(neInfo.CoreUID, neInfo.NeUID, query.IMSI)
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkData(data))
|
c.JSON(200, resp.OkData(data))
|
||||||
return
|
return
|
||||||
} else {
|
}
|
||||||
// 处理字符转id数组后去重
|
|
||||||
uniqueIDs := parse.RemoveDuplicates(imsiArr)
|
// 批量更新
|
||||||
if len(uniqueIDs) <= 0 {
|
if query.Num > 0 {
|
||||||
c.JSON(200, resp.Err(nil))
|
// 发送MML
|
||||||
|
cmd := fmt.Sprintf("bde imsuser:start_imsi=%s,sub_num=%d", query.IMSI, query.Num)
|
||||||
|
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
||||||
|
if err != nil {
|
||||||
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
resultData := map[string]string{}
|
|
||||||
for _, imsi := range uniqueIDs {
|
// 命令ok时
|
||||||
// 发送MML
|
if strings.Contains(data, "ok") {
|
||||||
cmd := fmt.Sprintf("del imsuser:imsi=%s", imsi)
|
s.udmVolteIMSService.LoadData(neInfo.CoreUID, neInfo.NeUID, query.IMSI, query.Num)
|
||||||
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
|
||||||
if err != nil {
|
|
||||||
resultData[imsi] = err.Error()
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
// 命令ok时
|
|
||||||
if strings.Contains(data, "ok") {
|
|
||||||
s.udmVolteIMSService.Delete(imsi, neId)
|
|
||||||
}
|
|
||||||
resultData[imsi] = data
|
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkData(resultData))
|
c.JSON(200, resp.OkData(data))
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// UDMVolteIMS用户批量删除
|
|
||||||
//
|
|
||||||
// DELETE /:neId/:imsi/:num
|
|
||||||
//
|
|
||||||
// @Tags network_data/udm/volte-ims
|
|
||||||
// @Accept json
|
|
||||||
// @Produce json
|
|
||||||
// @Param neId path string true "NE ID" default(001)
|
|
||||||
// @Param imsi path string true "IMSI"
|
|
||||||
// @Param num path number true "Number of releases, value includes start imsi"
|
|
||||||
// @Success 200 {object} object "Response Results"
|
|
||||||
// @Security TokenAuth
|
|
||||||
// @Summary UDM VolteIMS User Batch Deletion
|
|
||||||
// @Description UDM VolteIMS User Batch Deletion
|
|
||||||
// @Router /neData/udm/volte-ims/{neId}/{imsi}/{num} [delete]
|
|
||||||
func (s *UDMVolteIMSController) Removes(c *gin.Context) {
|
|
||||||
language := reqctx.AcceptLanguage(c)
|
|
||||||
neId := c.Param("neId")
|
|
||||||
imsi := c.Param("imsi")
|
|
||||||
num := c.Param("num")
|
|
||||||
if neId == "" || imsi == "" || num == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId/imsi/num is empty"))
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 处理字符转id数组后去重
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", neId)
|
imsiArr := strings.Split(query.IMSI, ",")
|
||||||
if neInfo.NeId != neId || neInfo.IP == "" {
|
uniqueIDs := parse.RemoveDuplicates(imsiArr)
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
if len(uniqueIDs) <= 0 {
|
||||||
|
c.JSON(200, resp.Err(nil))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 网元主机的Telnet客户端
|
resultData := map[string]string{}
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient("UDM", neId, 1)
|
for _, imsi := range uniqueIDs {
|
||||||
if err != nil {
|
// 发送MML
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
cmd := fmt.Sprintf("del imsuser:imsi=%s", imsi)
|
||||||
return
|
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
||||||
|
if err != nil {
|
||||||
|
resultData[imsi] = err.Error()
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// 命令ok时
|
||||||
|
if strings.Contains(data, "ok") {
|
||||||
|
s.udmVolteIMSService.Delete(neInfo.CoreUID, neInfo.NeUID, imsi)
|
||||||
|
}
|
||||||
|
resultData[imsi] = data
|
||||||
}
|
}
|
||||||
defer telnetClient.Close()
|
c.JSON(200, resp.OkData(resultData))
|
||||||
|
|
||||||
// 发送MML
|
|
||||||
cmd := fmt.Sprintf("bde imsuser:start_imsi=%s,sub_num=%s", imsi, num)
|
|
||||||
data, err := telnet.ConvertToStr(telnetClient, cmd)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 命令ok时
|
|
||||||
if strings.Contains(data, "ok") {
|
|
||||||
s.udmVolteIMSService.LoadData(neId, imsi, num)
|
|
||||||
}
|
|
||||||
c.JSON(200, resp.OkData(data))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// UDMVolteIMS用户导出
|
// UDMVolteIMS用户导出
|
||||||
@@ -422,7 +352,8 @@ func (s *UDMVolteIMSController) Removes(c *gin.Context) {
|
|||||||
// @Tags network_data/udm/volte-ims
|
// @Tags network_data/udm/volte-ims
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Param neId query string true "NE ID" default(001)
|
// @Param coreUid query string true "CoreUID" default(001)
|
||||||
|
// @Param neUid query string true "NeUID" default(001)
|
||||||
// @Param type query string true "File Type" Enums(csv,txt) default(txt)
|
// @Param type query string true "File Type" Enums(csv,txt) default(txt)
|
||||||
// @Param imsi query string false "IMSI"
|
// @Param imsi query string false "IMSI"
|
||||||
// @Param pageNum query number true "pageNum" default(1)
|
// @Param pageNum query number true "pageNum" default(1)
|
||||||
@@ -434,13 +365,12 @@ func (s *UDMVolteIMSController) Removes(c *gin.Context) {
|
|||||||
// @Router /neData/udm/volte-ims/export [get]
|
// @Router /neData/udm/volte-ims/export [get]
|
||||||
func (s *UDMVolteIMSController) Export(c *gin.Context) {
|
func (s *UDMVolteIMSController) Export(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
// 查询结果,根据查询条件结果,单页最大值限制
|
neUid := c.Query("neUid")
|
||||||
neId := c.Query("neId")
|
if c.Query("coreUid") == "" || neUid == "" {
|
||||||
fileType := c.Query("type")
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: coreUid or neUid is empty"))
|
||||||
if neId == "" {
|
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
fileType := c.Query("type")
|
||||||
if !(fileType == "csv" || fileType == "txt") {
|
if !(fileType == "csv" || fileType == "txt") {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "ne.udm.errImportUserSubFileFormat")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "ne.udm.errImportUserSubFileFormat")))
|
||||||
return
|
return
|
||||||
@@ -460,7 +390,7 @@ func (s *UDMVolteIMSController) Export(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 文件名
|
// 文件名
|
||||||
fileName := fmt.Sprintf("udm_volte_user_export_%s_%d.%s", neId, time.Now().UnixMilli(), fileType)
|
fileName := fmt.Sprintf("udm_volte_user_export_%s_%d.%s", neUid, time.Now().UnixMilli(), fileType)
|
||||||
filePath := filepath.Join(file.ParseUploadFileDir(constants.UPLOAD_EXPORT), fileName)
|
filePath := filepath.Join(file.ParseUploadFileDir(constants.UPLOAD_EXPORT), fileName)
|
||||||
|
|
||||||
if fileType == "csv" {
|
if fileType == "csv" {
|
||||||
@@ -509,7 +439,8 @@ func (s *UDMVolteIMSController) Export(c *gin.Context) {
|
|||||||
func (s *UDMVolteIMSController) Import(c *gin.Context) {
|
func (s *UDMVolteIMSController) Import(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var body struct {
|
var body struct {
|
||||||
NeId string `json:"neId" binding:"required"` // 网元ID
|
CoreUID string `json:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" binding:"required"` // 网元唯一标识
|
||||||
UploadPath string `json:"uploadPath" binding:"required"` // 上传文件路径
|
UploadPath string `json:"uploadPath" binding:"required"` // 上传文件路径
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
||||||
@@ -524,15 +455,14 @@ func (s *UDMVolteIMSController) Import(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元信息
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UDM", body.NeId)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(body.CoreUID, body.NeUID)
|
||||||
if neInfo.NeId != body.NeId || neInfo.IP == "" {
|
if neInfo.CoreUID != body.CoreUID || neInfo.NeUID != body.NeUID || neInfo.NeType != "UDM" {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 网元主机的SSH客户端
|
// 网元主机的SSH客户端
|
||||||
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.NeType, neInfo.NeId)
|
sshClient, err := s.neInfoService.NeRunSSHClient(neInfo.CoreUID, neInfo.NeUID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -556,7 +486,7 @@ func (s *UDMVolteIMSController) Import(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 网元主机的Telnet客户端
|
// 网元主机的Telnet客户端
|
||||||
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.NeType, neInfo.NeId, 1)
|
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
@@ -579,11 +509,11 @@ func (s *UDMVolteIMSController) Import(c *gin.Context) {
|
|||||||
if strings.Contains(resultMsg, "ok") {
|
if strings.Contains(resultMsg, "ok") {
|
||||||
if strings.HasSuffix(body.UploadPath, ".csv") {
|
if strings.HasSuffix(body.UploadPath, ".csv") {
|
||||||
data := file.ReadFileCSV(localFilePath)
|
data := file.ReadFileCSV(localFilePath)
|
||||||
go s.udmVolteIMSService.InsertData(neInfo.NeId, "csv", data)
|
go s.udmVolteIMSService.InsertData(neInfo.CoreUID, neInfo.NeUID, "csv", data)
|
||||||
}
|
}
|
||||||
if strings.HasSuffix(body.UploadPath, ".txt") {
|
if strings.HasSuffix(body.UploadPath, ".txt") {
|
||||||
data := file.ReadFileTXTLine(",", localFilePath)
|
data := file.ReadFileTXTLine(",", localFilePath)
|
||||||
go s.udmVolteIMSService.InsertData(neInfo.NeId, "txt", data)
|
go s.udmVolteIMSService.InsertData(neInfo.CoreUID, neInfo.NeUID, "txt", data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
c.JSON(200, resp.OkMsg(resultMsg))
|
c.JSON(200, resp.OkMsg(resultMsg))
|
||||||
|
|||||||
@@ -44,22 +44,28 @@ type UPFController struct {
|
|||||||
func (s UPFController) FlowTotal(c *gin.Context) {
|
func (s UPFController) FlowTotal(c *gin.Context) {
|
||||||
language := reqctx.AcceptLanguage(c)
|
language := reqctx.AcceptLanguage(c)
|
||||||
var querys struct {
|
var querys struct {
|
||||||
NeID string `form:"neId" binding:"required"`
|
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
Day int `form:"day"`
|
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
|
Day int `form:"day"`
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindQuery(&querys); querys.Day < 0 || err != nil {
|
if err := c.ShouldBindQuery(&querys); err != nil {
|
||||||
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
|
||||||
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if querys.Day < 0 || querys.Day > 30 {
|
||||||
|
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "day must be between 0 and 30"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// 查询网元获取IP
|
// 查询网元获取IP
|
||||||
neInfo := s.neInfoService.FindByNeTypeAndNeID("UPF", querys.NeID)
|
neInfo := s.neInfoService.FindByCoreUidAndNeUid(querys.CoreUID, querys.NeUID)
|
||||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
if neInfo.CoreUID != querys.CoreUID || neInfo.NeUID != querys.NeUID {
|
||||||
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
up, down := s.kpiReportService.UPFTodayFlowFind(neInfo.RmUID, querys.Day)
|
up, down := s.kpiReportService.UPFTodayFlowFind(neInfo.NeUID, querys.Day)
|
||||||
c.JSON(200, resp.OkData(map[string]int64{"up": up, "down": down}))
|
c.JSON(200, resp.OkData(map[string]int64{"up": up, "down": down}))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,9 @@ package model
|
|||||||
// Alarm 告警记录
|
// Alarm 告警记录
|
||||||
type Alarm struct {
|
type Alarm struct {
|
||||||
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
||||||
|
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
|
||||||
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
|
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
|
||||||
NeId string `json:"neId" gorm:"column:ne_id"` // 网元ID
|
|
||||||
NeName string `json:"neName" gorm:"column:ne_name"` // 网元名称
|
|
||||||
Province string `json:"province" gorm:"column:province"` // 网元省份地域
|
|
||||||
PvFlag string `json:"pvFlag" gorm:"column:pv_flag"` // 网元标识虚拟化标识
|
|
||||||
AlarmSeq int64 `json:"alarmSeq" gorm:"column:alarm_seq"` // 告警序号 同网元类型连续递增
|
AlarmSeq int64 `json:"alarmSeq" gorm:"column:alarm_seq"` // 告警序号 同网元类型连续递增
|
||||||
AlarmId string `json:"alarmId" gorm:"column:alarm_id"` // 告警ID
|
AlarmId string `json:"alarmId" gorm:"column:alarm_id"` // 告警ID
|
||||||
AlarmTitle string `json:"alarmTitle" gorm:"column:alarm_title"` // 告警标题
|
AlarmTitle string `json:"alarmTitle" gorm:"column:alarm_title"` // 告警标题
|
||||||
@@ -40,10 +38,9 @@ func (*Alarm) TableName() string {
|
|||||||
|
|
||||||
// AlarmQuery 告警数据查询参数结构体
|
// AlarmQuery 告警数据查询参数结构体
|
||||||
type AlarmQuery struct {
|
type AlarmQuery struct {
|
||||||
NeType string `json:"neType" form:"neType"` // 网元类型
|
CoreUID string `json:"coreUid" form:"coreUid"` // 核心网唯一标识
|
||||||
NeID string `json:"neId" form:"neId"` // 网元ID
|
NeUID string `json:"neUid" form:"neUid"` // 网元唯一标识
|
||||||
NeName string `json:"neName" form:"neName"`
|
NeType string `json:"neType" form:"neType"` // 网元类型
|
||||||
PvFlag string `json:"pvFlag" form:"pvFlag"`
|
|
||||||
AlarmCode string `json:"alarmCode" form:"alarmCode"`
|
AlarmCode string `json:"alarmCode" form:"alarmCode"`
|
||||||
AlarmType string `json:"alarmType" form:"alarmType"`
|
AlarmType string `json:"alarmType" form:"alarmType"`
|
||||||
AlarmStatus string `json:"alarmStatus" form:"alarmStatus" binding:"omitempty,oneof=0 1"` // 告警状态 0:clear, 1:active
|
AlarmStatus string `json:"alarmStatus" form:"alarmStatus" binding:"omitempty,oneof=0 1"` // 告警状态 0:clear, 1:active
|
||||||
|
|||||||
@@ -3,8 +3,9 @@ package model
|
|||||||
// AlarmEvent 告警_事件记录表
|
// AlarmEvent 告警_事件记录表
|
||||||
type AlarmEvent struct {
|
type AlarmEvent struct {
|
||||||
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
||||||
|
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
|
||||||
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
|
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
|
||||||
NeId string `json:"neId" gorm:"column:ne_id"` // 网元ID
|
|
||||||
AlarmSeq int64 `json:"alarmSeq" gorm:"column:alarm_seq"` // 告警序号 同网元类型连续递增
|
AlarmSeq int64 `json:"alarmSeq" gorm:"column:alarm_seq"` // 告警序号 同网元类型连续递增
|
||||||
AlarmId string `json:"alarmId" gorm:"column:alarm_id"` // 告警ID
|
AlarmId string `json:"alarmId" gorm:"column:alarm_id"` // 告警ID
|
||||||
AlarmTitle string `json:"alarmTitle" gorm:"column:alarm_title"` // 告警标题
|
AlarmTitle string `json:"alarmTitle" gorm:"column:alarm_title"` // 告警标题
|
||||||
@@ -31,8 +32,9 @@ func (*AlarmEvent) TableName() string {
|
|||||||
|
|
||||||
// AlarmEventQuery 告警事件数据查询参数结构体
|
// AlarmEventQuery 告警事件数据查询参数结构体
|
||||||
type AlarmEventQuery struct {
|
type AlarmEventQuery struct {
|
||||||
|
CoreUID string `json:"coreId" form:"coreId"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" form:"neUid"` // 网元唯一标识
|
||||||
NeType string `json:"neType" form:"neType"` // 网元类型
|
NeType string `json:"neType" form:"neType"` // 网元类型
|
||||||
NeID string `json:"neId" form:"neId"` // 网元ID
|
|
||||||
AlarmCode string `json:"alarmCode" form:"alarmCode"`
|
AlarmCode string `json:"alarmCode" form:"alarmCode"`
|
||||||
AlarmStatus string `json:"alarmStatus" form:"alarmStatus" binding:"omitempty,oneof=0 1"` // 告警状态 0:clear, 1:active
|
AlarmStatus string `json:"alarmStatus" form:"alarmStatus" binding:"omitempty,oneof=0 1"` // 告警状态 0:clear, 1:active
|
||||||
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查event_time
|
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查event_time
|
||||||
|
|||||||
@@ -3,8 +3,9 @@ package model
|
|||||||
// AlarmForwardLog 告警_转发日志记录
|
// AlarmForwardLog 告警_转发日志记录
|
||||||
type AlarmForwardLog struct {
|
type AlarmForwardLog struct {
|
||||||
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
||||||
NeType string `json:"neType" gorm:"column:ne_type"`
|
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
|
||||||
NeId string `json:"neId" gorm:"column:ne_id"`
|
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
|
||||||
|
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
|
||||||
AlarmSeq int64 `json:"alarmSeq" gorm:"column:alarm_seq"` // 告警序号 同网元类型连续递增
|
AlarmSeq int64 `json:"alarmSeq" gorm:"column:alarm_seq"` // 告警序号 同网元类型连续递增
|
||||||
AlarmId string `json:"alarmId" gorm:"column:alarm_id"` // 告警ID
|
AlarmId string `json:"alarmId" gorm:"column:alarm_id"` // 告警ID
|
||||||
AlarmCode int64 `json:"alarmCode" gorm:"column:alarm_code"` // 告警状态码
|
AlarmCode int64 `json:"alarmCode" gorm:"column:alarm_code"` // 告警状态码
|
||||||
@@ -26,8 +27,9 @@ func (*AlarmForwardLog) TableName() string {
|
|||||||
|
|
||||||
// AlarmForwardLogQuery 告警转发日志数据查询参数结构体
|
// AlarmForwardLogQuery 告警转发日志数据查询参数结构体
|
||||||
type AlarmForwardLogQuery struct {
|
type AlarmForwardLogQuery struct {
|
||||||
|
CoreUID string `json:"coreUid" form:"coreUid"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" form:"neUid"` // 网元唯一标识
|
||||||
NeType string `json:"neType" form:"neType"` // 网元类型
|
NeType string `json:"neType" form:"neType"` // 网元类型
|
||||||
NeID string `json:"neId" form:"neId"` // 网元ID
|
|
||||||
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查event_time
|
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查event_time
|
||||||
EndTime int64 `json:"endTime" form:"endTime"`
|
EndTime int64 `json:"endTime" form:"endTime"`
|
||||||
SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=event_time id"` // 排序字段,填写结果字段
|
SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=event_time id"` // 排序字段,填写结果字段
|
||||||
|
|||||||
@@ -3,8 +3,9 @@ package model
|
|||||||
// AlarmLog 告警_日志记录
|
// AlarmLog 告警_日志记录
|
||||||
type AlarmLog struct {
|
type AlarmLog struct {
|
||||||
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
||||||
NeType string `json:"neType" gorm:"column:ne_type"`
|
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
|
||||||
NeId string `json:"neId" gorm:"column:ne_id"`
|
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
|
||||||
|
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
|
||||||
AlarmSeq int64 `json:"alarmSeq" gorm:"column:alarm_seq"` // 告警序号 同网元类型连续递增
|
AlarmSeq int64 `json:"alarmSeq" gorm:"column:alarm_seq"` // 告警序号 同网元类型连续递增
|
||||||
AlarmId string `json:"alarmId" gorm:"column:alarm_id"` // 告警ID
|
AlarmId string `json:"alarmId" gorm:"column:alarm_id"` // 告警ID
|
||||||
AlarmCode int64 `json:"alarmCode" gorm:"column:alarm_code"` // 告警状态码
|
AlarmCode int64 `json:"alarmCode" gorm:"column:alarm_code"` // 告警状态码
|
||||||
@@ -23,8 +24,9 @@ func (*AlarmLog) TableName() string {
|
|||||||
|
|
||||||
// AlarmLogQuery 告警日志数据查询参数结构体
|
// AlarmLogQuery 告警日志数据查询参数结构体
|
||||||
type AlarmLogQuery struct {
|
type AlarmLogQuery struct {
|
||||||
|
CoreUID string `json:"coreUid" form:"coreUid"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" form:"neUid"` // 网元唯一标识
|
||||||
NeType string `json:"neType" form:"neType"` // 网元类型
|
NeType string `json:"neType" form:"neType"` // 网元类型
|
||||||
NeID string `json:"neId" form:"neId"` // 网元ID
|
|
||||||
AlarmStatus string `json:"alarmStatus" form:"alarmStatus" binding:"omitempty,oneof=0 1"` // 告警状态 0:clear, 1:active
|
AlarmStatus string `json:"alarmStatus" form:"alarmStatus" binding:"omitempty,oneof=0 1"` // 告警状态 0:clear, 1:active
|
||||||
OrigSeverity string `json:"origSeverity" form:"origSeverity"` // 告警类型 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)
|
OrigSeverity string `json:"origSeverity" form:"origSeverity"` // 告警类型 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)
|
||||||
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查event_time
|
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查event_time
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ package model
|
|||||||
// CDREventIMS CDR会话对象IMS cdr_event_ims
|
// CDREventIMS CDR会话对象IMS cdr_event_ims
|
||||||
type CDREventIMS struct {
|
type CDREventIMS struct {
|
||||||
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
||||||
NeType string `json:"neType" gorm:"column:ne_type"`
|
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
|
||||||
NeName string `json:"neName" gorm:"column:ne_name"`
|
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
|
||||||
RmUid string `json:"rmUid" gorm:"column:rm_uid"`
|
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
|
||||||
Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` // 接收到的timestamp秒级存储毫秒时间戳
|
Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` // 接收到的timestamp秒级存储毫秒时间戳
|
||||||
CdrJson string `json:"cdrJSON" gorm:"column:cdr_json"` // data JSON String
|
CdrJson string `json:"cdrJSON" gorm:"column:cdr_json"` // data JSON String
|
||||||
CreatedAt int64 `json:"createdAt" gorm:"column:created_at"` // 记录创建存储毫秒
|
CreatedAt int64 `json:"createdAt" gorm:"column:created_at"` // 记录创建存储毫秒
|
||||||
@@ -18,13 +18,13 @@ func (*CDREventIMS) TableName() string {
|
|||||||
|
|
||||||
// CDREventIMSQuery CDR会话对象IMS查询参数结构体
|
// CDREventIMSQuery CDR会话对象IMS查询参数结构体
|
||||||
type CDREventIMSQuery struct {
|
type CDREventIMSQuery struct {
|
||||||
|
CoreUID string `json:"coreUid" form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
NeType string `json:"neType" form:"neType" binding:"required,oneof=IMS"` // 网元类型IMS
|
NeType string `json:"neType" form:"neType" binding:"required,oneof=IMS"` // 网元类型IMS
|
||||||
NeID string `json:"neId" form:"neId" binding:"required"`
|
RecordType string `json:"recordType" form:"recordType"` // 记录行为 MOC MTC
|
||||||
RmUID string `json:"rmUID" form:"rmUID"`
|
CallerParty string `json:"callerParty" form:"callerParty"` // 主叫号码
|
||||||
RecordType string `json:"recordType" form:"recordType"` // 记录行为 MOC MTC
|
CalledParty string `json:"calledParty" form:"calledParty"` // 被叫号码
|
||||||
CallerParty string `json:"callerParty" form:"callerParty"` // 主叫号码
|
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查timestamp
|
||||||
CalledParty string `json:"calledParty" form:"calledParty"` // 被叫号码
|
|
||||||
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查timestamp
|
|
||||||
EndTime int64 `json:"endTime" form:"endTime"`
|
EndTime int64 `json:"endTime" form:"endTime"`
|
||||||
SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=timestamp"` // 排序字段,填写结果字段
|
SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=timestamp"` // 排序字段,填写结果字段
|
||||||
SortOrder string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"` // 排序升降序,asc desc
|
SortOrder string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"` // 排序升降序,asc desc
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ package model
|
|||||||
// CDREventSGWC CDR会话对象SGWC cdr_event_sgwc
|
// CDREventSGWC CDR会话对象SGWC cdr_event_sgwc
|
||||||
type CDREventSGWC struct {
|
type CDREventSGWC struct {
|
||||||
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
||||||
NeType string `json:"neType" gorm:"column:ne_type"`
|
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
|
||||||
NeName string `json:"neName" gorm:"column:ne_name"`
|
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
|
||||||
RmUid string `json:"rmUid" gorm:"column:rm_uid"`
|
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
|
||||||
Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` // 接收到的timestamp秒级存储毫秒时间戳
|
Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` // 接收到的timestamp秒级存储毫秒时间戳
|
||||||
CdrJson string `json:"cdrJSON" gorm:"column:cdr_json"` // data JSON String
|
CdrJson string `json:"cdrJSON" gorm:"column:cdr_json"` // data JSON String
|
||||||
CreatedAt int64 `json:"createdAt" gorm:"column:created_at"` // 记录创建存储毫秒
|
CreatedAt int64 `json:"createdAt" gorm:"column:created_at"` // 记录创建存储毫秒
|
||||||
@@ -18,9 +18,9 @@ func (*CDREventSGWC) TableName() string {
|
|||||||
|
|
||||||
// CDREventSGWCQuery CDR会话对象SGWC查询参数结构体
|
// CDREventSGWCQuery CDR会话对象SGWC查询参数结构体
|
||||||
type CDREventSGWCQuery struct {
|
type CDREventSGWCQuery struct {
|
||||||
|
CoreUID string `json:"coreUid" form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
NeType string `json:"neType" form:"neType" binding:"required,oneof=SGWC"` // SGWC
|
NeType string `json:"neType" form:"neType" binding:"required,oneof=SGWC"` // SGWC
|
||||||
NeID string `json:"neId" form:"neId" binding:"required"`
|
|
||||||
RmUID string `json:"rmUID" form:"rmUID"`
|
|
||||||
IMSI string `json:"imsi" form:"imsi"`
|
IMSI string `json:"imsi" form:"imsi"`
|
||||||
MSISDN string `json:"msisdn" form:"msisdn"`
|
MSISDN string `json:"msisdn" form:"msisdn"`
|
||||||
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查timestamp
|
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查timestamp
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ package model
|
|||||||
// CDREventSMF CDR会话对象SMF cdr_event_smf
|
// CDREventSMF CDR会话对象SMF cdr_event_smf
|
||||||
type CDREventSMF struct {
|
type CDREventSMF struct {
|
||||||
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
|
||||||
NeType string `json:"neType" gorm:"column:ne_type"`
|
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
|
||||||
NeName string `json:"neName" gorm:"column:ne_name"`
|
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
|
||||||
RmUid string `json:"rmUid" gorm:"column:rm_uid"`
|
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
|
||||||
Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` // 接收到的timestamp秒级存储毫秒时间戳
|
Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` // 接收到的timestamp秒级存储毫秒时间戳
|
||||||
CdrJson string `json:"cdrJSON" gorm:"column:cdr_json"` // data JSON String
|
CdrJson string `json:"cdrJSON" gorm:"column:cdr_json"` // data JSON String
|
||||||
CreatedAt int64 `json:"createdAt" gorm:"column:created_at"` // 记录创建存储毫秒
|
CreatedAt int64 `json:"createdAt" gorm:"column:created_at"` // 记录创建存储毫秒
|
||||||
@@ -18,10 +18,10 @@ func (*CDREventSMF) TableName() string {
|
|||||||
|
|
||||||
// CDREventSMFQuery CDR会话对象SMF查询参数结构体
|
// CDREventSMFQuery CDR会话对象SMF查询参数结构体
|
||||||
type CDREventSMFQuery struct {
|
type CDREventSMFQuery struct {
|
||||||
|
CoreUID string `json:"coreUid" form:"coreUid" binding:"required"` // 核心网唯一标识
|
||||||
|
NeUID string `json:"neUid" form:"neUid" binding:"required"` // 网元唯一标识
|
||||||
NeType string `json:"neType" form:"neType" binding:"required,oneof=SMF"` // 网元类型, 暂时支持SMF
|
NeType string `json:"neType" form:"neType" binding:"required,oneof=SMF"` // 网元类型, 暂时支持SMF
|
||||||
NeID string `json:"neId" form:"neId" binding:"required"`
|
RecordType string `json:"recordType" form:"recordType"` // 暂时没用到
|
||||||
RmUID string `json:"rmUID" form:"rmUID"`
|
|
||||||
RecordType string `json:"recordType" form:"recordType"` // 暂时没用到
|
|
||||||
SubscriberID string `json:"subscriberID" form:"subscriberID"`
|
SubscriberID string `json:"subscriberID" form:"subscriberID"`
|
||||||
DNN string `json:"dnn" form:"dnn"`
|
DNN string `json:"dnn" form:"dnn"`
|
||||||
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查timestamp
|
BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查timestamp
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user