Merge remote-tracking branch 'origin/main' into multi-tenant
This commit is contained in:
commit
f31bc635de
66 files changed
+16598
-176
No files matched your search
@@ -1,5 +1,18 @@
|
||||
# 版本发布日志
|
||||
|
||||
## 2.2501.4-20250124
|
||||
|
||||
- 新增 日志备份文件同步FTP功能
|
||||
- 新增 调度任务-日志备份文件同步FTP功能
|
||||
- 新增 swagger接口文档版本1.0.8
|
||||
- 修复 网元主机title命名_随机4位
|
||||
- 修复 SSH工具远程复制文件夹创建
|
||||
- 修复 CDR网元数据查询结构体限定neType范围
|
||||
- 修复 网元直连SMF会话pageNum类型转换
|
||||
- 新增 MME参数配置项enbList,补充MME基站状态接口
|
||||
- 优化 自定义指标title公式,菜单基站在线页面隐藏
|
||||
- 优化 关闭接口加密功能
|
||||
|
||||
## 2.2501.3-20250117
|
||||
|
||||
- 优化 自定义指标数据查询值float64保留3为小数
|
||||
|
||||
@@ -455,3 +455,36 @@ mme:
|
||||
filter: "0~64"
|
||||
display: "IMEI"
|
||||
comment: "0~64"
|
||||
enbList:
|
||||
display: "Enb List Config"
|
||||
sort: 19
|
||||
visible: "hide"
|
||||
array:
|
||||
- name: "index"
|
||||
type: "int"
|
||||
value: "0"
|
||||
access: "read-only"
|
||||
filter: "0~128"
|
||||
display: "Index"
|
||||
comment: "0~128"
|
||||
- name: "name"
|
||||
type: "string"
|
||||
value: ""
|
||||
access: "read-write"
|
||||
filter: "0~64"
|
||||
display: "ENB Name"
|
||||
comment: "text content length 0~64"
|
||||
- name: "address"
|
||||
type: "string"
|
||||
value: ""
|
||||
access: "read-write"
|
||||
filter: "0~64"
|
||||
display: "ENB Address"
|
||||
comment: "text content length 0~64"
|
||||
- name: "position"
|
||||
type: "string"
|
||||
value: ""
|
||||
access: "read-write"
|
||||
filter: "0~64"
|
||||
display: "Position"
|
||||
comment: "location description. Prohibition of spaces, length of text content 0-64"
|
||||
@@ -41,7 +41,7 @@ INSERT INTO `ne_config` VALUES (41, 'IMS', 'plmn', 'PLMN List', 'array', '[{\"ac
|
||||
INSERT INTO `ne_config` VALUES (42, 'IMS', 'mmtel_dialplan', 'MMTEL Dialplan', 'array', '[{\"access\":\"read-only\",\"comment\":\"0~15\",\"display\":\"Index\",\"filter\":\"0~15\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-only\",\"comment\":\"\",\"display\":\"NaName\",\"filter\":\"0~128\",\"name\":\"naName\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Title\",\"filter\":\"0~128\",\"name\":\"title\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Method\",\"filter\":\"0-2\",\"name\":\"method\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Prefix\",\"filter\":\"0~128\",\"name\":\"prefix\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Start\",\"filter\":\"0~128\",\"name\":\"start\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"End\",\"filter\":\"0~128\",\"name\":\"end\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Attrib\",\"filter\":\"0~128\",\"name\":\"attrib\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Number Len\",\"filter\":\"0~128\",\"name\":\"numberLen\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Rsc\",\"filter\":\"0~128\",\"name\":\"rsc\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"E164 Nai\",\"filter\":\"0~128\",\"name\":\"e164Nai\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"E164 Delete\",\"filter\":\"0~128\",\"name\":\"e164Delete\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"E164 Insert\",\"filter\":\"0~128\",\"name\":\"e164Insert\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"Enable: Close/Open\",\"display\":\"Admin State\",\"filter\":\"{\\\"0\\\":\\\"Close\\\", \\\"1\\\":\\\"Open\\\"}\",\"name\":\"adminState\",\"type\":\"enum\",\"value\":\"0\"}]', 5, '', 1723716862110, 'public');
|
||||
INSERT INTO `ne_config` VALUES (43, 'IMS', 'ds_system', 'DS System', 'list', '[{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Dispatch System Indicator\",\"filter\":\"{\\\"0\\\":\\\"false\\\", \\\"1\\\":\\\"true\\\"}\",\"name\":\"dispatchSystemInd\",\"type\":\"bool\",\"value\":\"false\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Transcode Indicator\",\"filter\":\"{\\\"0\\\":\\\"false\\\", \\\"1\\\":\\\"true\\\"}\",\"name\":\"transcodeInd\",\"type\":\"bool\",\"value\":\"false\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Dispatch System IPv4\",\"filter\":\"\",\"name\":\"dispatchSystemIP\",\"type\":\"ipv4\",\"value\":\"1.0.0.1\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Dispatch System Port\",\"filter\":\"\",\"name\":\"dispatchSystemPort\",\"type\":\"int\",\"value\":\"5060\"}]', 7, '', 1723716862113, 'public');
|
||||
|
||||
-- 更新 MME 配置 20240106
|
||||
-- 更新 MME 配置 20250124
|
||||
INSERT INTO `ne_config` VALUES (60, 'MME', 'system', 'System Config', 'list', '[{\"access\":\"read-write\",\"comment\":\"true|false\",\"display\":\"CSFB Enabled\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"csfbEnabled\",\"type\":\"bool\",\"value\":\"false\"},{\"access\":\"read-write\",\"comment\":\"true|false\",\"display\":\"VoLTE Enabled\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"volteEnabled\",\"type\":\"bool\",\"value\":\"false\"},{\"access\":\"read-write\",\"comment\":\"0~128\",\"display\":\"ME IDENTITY CHECK PATH\",\"filter\":\"0~128\",\"name\":\"meIdentityCheckPath\",\"type\":\"string\",\"value\":\"/usr/local/etc/mme/me_identity_check.csv\"},{\"access\":\"read-write\",\"comment\":\"0~128\",\"display\":\"IMEI WHITE LIST PATH\",\"filter\":\"0~128\",\"name\":\"imeiWhiteListPath\",\"type\":\"string\",\"value\":\"/usr/local/etc/mme/imei_whitelist.csv\"},{\"access\":\"read-write\",\"comment\":\"0~64\",\"display\":\"DNS SERVER IP\",\"filter\":\"0~64\",\"name\":\"dnsServerIp\",\"type\":\"string\",\"value\":\"127.0.0.53\"},{\"access\":\"read-write\",\"comment\":\"0~64\",\"display\":\"S1 MME IP\",\"filter\":\"0~64\",\"name\":\"s1MmeIp\",\"type\":\"string\",\"value\":\"192.168.1.179\"},{\"access\":\"read-only\",\"comment\":\"0~65535\",\"display\":\"S1 MME Port\",\"filter\":\"0~65535\",\"name\":\"s1MmePort\",\"type\":\"int\",\"value\":\"36412\"},{\"access\":\"read-write\",\"comment\":\"0~64\",\"display\":\"S11 MME IP\",\"filter\":\"0~64\",\"name\":\"s11MmeIp\",\"type\":\"string\",\"value\":\"192.168.1.179\"},{\"access\":\"read-write\",\"comment\":\"0~65535\",\"display\":\"S11 MME Port\",\"filter\":\"0~65535\",\"name\":\"s11MmePort\",\"type\":\"int\",\"value\":\"2123\"},{\"access\":\"read-write\",\"comment\":\"0~64\",\"display\":\"S10 MME IP\",\"filter\":\"0~64\",\"name\":\"s10MmeIp\",\"type\":\"string\",\"value\":\"192.168.1.178\"},{\"access\":\"read-write\",\"comment\":\"0~65535\",\"display\":\"S10 MME Port\",\"filter\":\"0~65535\",\"name\":\"s10MmePort\",\"type\":\"int\",\"value\":\"2123\"},{\"access\":\"read-write\",\"comment\":\"0~64\",\"display\":\"SGs MME IP\",\"filter\":\"0~64\",\"name\":\"sgsMmeIp\",\"type\":\"string\",\"value\":\"192.168.1.179\"},{\"access\":\"read-only\",\"comment\":\"0~65535\",\"display\":\"SGs MME Port\",\"filter\":\"0~65535\",\"name\":\"sgsMmePort\",\"type\":\"int\",\"value\":\"29118\"},{\"access\":\"read-write\",\"comment\":\"0~100\",\"display\":\"S6A MME Identity\",\"filter\":\"0~100\",\"name\":\"s6aIdentity\",\"type\":\"string\",\"value\":\"mme.epc.mnc001.mcc001.3gppnetwork.org\"},{\"access\":\"read-write\",\"comment\":\"0~20\",\"display\":\"S6A MME IP\",\"filter\":\"0~20\",\"name\":\"s6aLocalIp\",\"type\":\"string\",\"value\":\"172.16.5.220\"},{\"access\":\"read-write\",\"comment\":\"0~20\",\"display\":\"SLS MME IP\",\"filter\":\"0~20\",\"name\":\"slsLocalIp\",\"type\":\"string\",\"value\":\"172.16.5.220\"},{\"access\":\"read-write\",\"comment\":\"0~20\",\"display\":\"SLS REMOTE IP\",\"filter\":\"0~20\",\"name\":\"slsRemoteIp\",\"type\":\"string\",\"value\":\"172.16.5.220\"},{\"access\":\"read-write\",\"comment\":\"0~20\",\"display\":\"SLS REMOTE PORT\",\"filter\":\"0~20\",\"name\":\"slsRemotePort\",\"type\":\"string\",\"value\":\"9082\"},{\"access\":\"read-write\",\"comment\":\"0~100\",\"display\":\"SLG MME Identity\",\"filter\":\"0~100\",\"name\":\"slgIdentity\",\"type\":\"string\",\"value\":\"gmlc.epc.mnc001.mcc001.3gppnetwork.org\"},{\"access\":\"read-write\",\"comment\":\"0~100\",\"display\":\"SLG MME REALM\",\"filter\":\"0~100\",\"name\":\"slgRealm\",\"type\":\"string\",\"value\":\"epc.mnc001.mcc001.3gppnetwork.org\"},{\"access\":\"read-write\",\"comment\":\"0~20\",\"display\":\"SBC MME IP\",\"filter\":\"0~20\",\"name\":\"sbcLocalIp\",\"type\":\"string\",\"value\":\"192.168.8.220\"},{\"access\":\"read-write\",\"comment\":\"0~20\",\"display\":\"SV MME IP\",\"filter\":\"0~20\",\"name\":\"svLocalIp\",\"type\":\"string\",\"value\":\"172.16.5.220\"},{\"access\":\"read-write\",\"comment\":\"0~20\",\"display\":\"SV MME PORT\",\"filter\":\"0~20\",\"name\":\"svLocalPort\",\"type\":\"string\",\"value\":\"9082\"},{\"access\":\"read-write\",\"comment\":\"0~20\",\"display\":\"SV REMOTE IP\",\"filter\":\"0~20\",\"name\":\"svRemoteIp\",\"type\":\"string\",\"value\":\"172.16.5.220\"},{\"access\":\"read-write\",\"comment\":\"0~20\",\"display\":\"SV REMOTE PORT\",\"filter\":\"0~20\",\"name\":\"svRemotePort\",\"type\":\"string\",\"value\":\"9082\"},{\"access\":\"read-write\",\"comment\":\"0~20\",\"display\":\"S3 REMOTE IP\",\"filter\":\"0~20\",\"name\":\"s3RemoteIp\",\"type\":\"string\",\"value\":\"172.16.5.220\"},{\"access\":\"read-write\",\"comment\":\"0~20\",\"display\":\"S3 REMOTE PORT\",\"filter\":\"0~20\",\"name\":\"s3RemotePort\",\"type\":\"string\",\"value\":\"9082\"}]', 1, '', 1736155729512, 'public');
|
||||
INSERT INTO `ne_config` VALUES (61, 'MME', 'gummei', 'Gummei List', 'array', '[{\"access\":\"read\",\"comment\":\"0~15\",\"display\":\"Index\",\"filter\":\"0~15\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"^[0-9]{5,6}$\",\"display\":\"PLMN ID\",\"filter\":\"^[0-9]{5,6}$\",\"name\":\"plmnId\",\"type\":\"regex\",\"value\":\"00101\"},{\"access\":\"read-write\",\"comment\":\"0~65535\",\"display\":\"Group ID\",\"filter\":\"0~65535\",\"name\":\"groupId\",\"type\":\"int\",\"value\":\"4\"},{\"access\":\"read-write\",\"comment\":\"0~255\",\"display\":\"Code\",\"filter\":\"0~255\",\"name\":\"code\",\"type\":\"int\",\"value\":\"1\"}]', 3, '', 1736155729554, 'public');
|
||||
INSERT INTO `ne_config` VALUES (62, 'MME', 'tai', 'TAI List', 'array', '[{\"access\":\"read\",\"comment\":\"0~15\",\"display\":\"Index\",\"filter\":\"0~15\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"^[0-9]{5,6}$\",\"display\":\"PLMN ID\",\"filter\":\"^[0-9]{5,6}$\",\"name\":\"plmnId\",\"type\":\"regex\",\"value\":\"00101\"},{\"access\":\"read-write\",\"comment\":\"0~65535\",\"display\":\"TAC\",\"filter\":\"0~65535\",\"name\":\"tac\",\"type\":\"int\",\"value\":\"1\"}]', 5, '', 1736155729560, 'public');
|
||||
@@ -51,6 +51,7 @@ INSERT INTO `ne_config` VALUES (65, 'MME', 'pgw', 'PGW List', 'array', '[{\"acce
|
||||
INSERT INTO `ne_config` VALUES (66, 'MME', 'amf', 'AMF List', 'array', '[{\"access\":\"read\",\"comment\":\"0~15\",\"display\":\"Index\",\"filter\":\"0~15\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"^[0-9]{5,6}$\",\"display\":\"PLMN ID\",\"filter\":\"^[0-9]{5,6}$\",\"name\":\"plmnId\",\"type\":\"regex\",\"value\":\"00101\"},{\"access\":\"read-write\",\"comment\":\"0~16777215\",\"display\":\"TAC\",\"filter\":\"0~16777215\",\"name\":\"tac\",\"type\":\"int\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"0~255\",\"display\":\"Region ID\",\"filter\":\"0~255\",\"name\":\"regionId\",\"type\":\"int\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"0~1023\",\"display\":\"Set ID\",\"filter\":\"0~1023\",\"name\":\"setId\",\"type\":\"int\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"0~63\",\"display\":\"Pointer\",\"filter\":\"0~63\",\"name\":\"pointer\",\"type\":\"int\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"0~64\",\"display\":\"AMF IP\",\"filter\":\"0~64\",\"name\":\"amfIp\",\"type\":\"string\",\"value\":\"172.16.5.120\"}]', 13, '', 1736155729597, 'public');
|
||||
INSERT INTO `ne_config` VALUES (67, 'MME', 'white_list', 'IMEI White List', 'array', '[{\"access\":\"read\",\"comment\":\"0~15\",\"display\":\"Index\",\"filter\":\"0~15\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"0~64\",\"display\":\"IMEI\",\"filter\":\"0~64\",\"name\":\"imei\",\"type\":\"string\",\"value\":\"001\"}]', 17, '', 1736155729630, 'public');
|
||||
INSERT INTO `ne_config` VALUES (68, 'MME', 'roam_plmn', 'Roam Plmn List', 'array', '[{\"access\":\"read\",\"comment\":\"0~15\",\"display\":\"Index\",\"filter\":\"0~15\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"0~64\",\"display\":\"MCC\",\"filter\":\"0~64\",\"name\":\"mcc\",\"type\":\"string\",\"value\":\"001\"},{\"access\":\"read-write\",\"comment\":\"0~64\",\"display\":\"MNC\",\"filter\":\"0~64\",\"name\":\"mnc\",\"type\":\"string\",\"value\":\"01\"}]', 15, '', 1736155729626, 'public');
|
||||
INSERT INTO `ne_config` VALUES (69, 'MME', 'enbList', 'Enb List Config', 'array', '[{\"access\":\"read-only\",\"comment\":\"0~128\",\"display\":\"Index\",\"filter\":\"0~128\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"text content length 0~64\",\"display\":\"ENB Name\",\"filter\":\"0~64\",\"name\":\"name\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"text content length 0~64\",\"display\":\"ENB Address\",\"filter\":\"0~64\",\"name\":\"address\",\"type\":\"string\",\"value\":\"\"},{\"access\":\"read-write\",\"comment\":\"location description. Prohibition of spaces, length of text content 0-64\",\"display\":\"Position\",\"filter\":\"0~64\",\"name\":\"position\",\"type\":\"string\",\"value\":\"\"}]', 19, '', 1737626779749, 'hide');
|
||||
|
||||
INSERT INTO `ne_config` VALUES (80, 'MOCNGW', 'system', 'System Config', 'list', '[{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"S1AP South Address\",\"filter\":\"0~64\",\"name\":\"s1apSouthAddr\",\"type\":\"string\",\"value\":\"192.168.7.163\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"S1AP North Address\",\"filter\":\"0~64\",\"name\":\"s1apNorthAddr\",\"type\":\"string\",\"value\":\"192.168.8.163\"},{\"access\":\"read-write\",\"comment\":\"0~65535\",\"display\":\"TAC\",\"filter\":\"0~65535\",\"name\":\"tac\",\"type\":\"int\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"0~1048575\",\"display\":\"ENB ID\",\"filter\":\"0~1048575\",\"name\":\"enbId\",\"type\":\"int\",\"value\":\"24\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"User Plane Enabled\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"userPlaneEnabled\",\"type\":\"bool\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"PFCP Address\",\"filter\":\"0~64\",\"name\":\"pfcpAddr\",\"type\":\"string\",\"value\":\"192.168.7.163\"}]', 1, '', 1719831210071, 'public');
|
||||
INSERT INTO `ne_config` VALUES (81, 'MOCNGW', 'mme', 'MME List', 'array', '[{\"access\":\"read-only\",\"comment\":\"0~15\",\"display\":\"Index\",\"filter\":\"0~15\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"S1AP Address\",\"filter\":\"0~64\",\"name\":\"s1apAddr\",\"type\":\"string\",\"value\":\"192.168.1.161\"},{\"access\":\"read-write\",\"comment\":\"0~65535\",\"display\":\"S1AP Port\",\"filter\":\"0~65535\",\"name\":\"s1apPort\",\"type\":\"int\",\"value\":\"36412\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"PLMN ID\",\"filter\":\"^[0-9]{5,6}$\",\"name\":\"plmnId\",\"type\":\"regex\",\"value\":\"00101\"}]', 3, '', 1719831210273, 'public');
|
||||
|
||||
@@ -134,7 +134,7 @@ INSERT INTO `sys_menu` VALUES (2010, 'menu.ueUser.subUDM', 5, 2, 'sub', 'neUser/
|
||||
-- INSERT INTO `sys_menu` VALUES (2079, 'menu.config.softwareManage', 4, 4, 'softwareManage', 'configManage/softwareManage/index', '1', '0', 'M', '1', '0', 'configManage:softwareManage:index', 'icon-huidingbu', 'supervisor', 1700000000000, NULL, 0, 'menu.config.softwareManageRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2080, 'menu.ueUser.onlineIMS', 5, 4, 'ims', 'neUser/ims/index', '1', '0', 'M', '1', '1', 'neUser:ims:index', 'icon-xiangmuchengyuan', 'supervisor', 1700000000000, NULL, 0, 'menu.ueUser.onlineIMSRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2081, 'menu.ueUser.onlineUE', 5, 6, 'ue', 'neUser/ue/index', '1', '0', 'M', '1', '1', 'neUser:ue:index', 'icon-xiangmuchengyuan', 'supervisor', 1700000000000, NULL, 0, 'menu.ueUser.onlineUERemark');
|
||||
INSERT INTO `sys_menu` VALUES (2082, 'menu.ueUser.base5G', 5, 7, 'base5G', 'neUser/base5G/index', '1', '0', 'M', '1', '1', 'neUser:base5G:index', 'icon-paixu', 'supervisor', 1700000000000, NULL, 0, 'menu.ueUser.base5GRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2082, 'menu.ueUser.base5G', 5, 7, 'base5G', 'neUser/base5G/index', '1', '0', 'M', '0', '1', 'neUser:base5G:index', 'icon-paixu', 'supervisor', 1700000000000, NULL, 0, 'menu.ueUser.base5GRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2083, 'menu.trace', 2087, 30, 'traceManage', NULL, '1', '0', 'D', '1', '1', NULL, 'icon-paixu', 'supervisor', 1700000000000, NULL, 0, 'menu.traceRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2084, 'menu.trace.task', 2083, 1, 'task', 'traceManage/task/index', '1', '0', 'M', '0', '1', 'traceManage:task:index', 'icon-chexiao', 'supervisor', 1700000000000, 'admin', 1713176976458, 'menu.trace.taskRemark');
|
||||
INSERT INTO `sys_menu` VALUES (2085, 'menu.trace.analysis', 2083, 4, 'analysis', 'traceManage/analysis/index', '1', '0', 'M', '0', '1', 'traceManage:analysis:index', 'icon-gongnengjieshao', 'supervisor', 1700000000000, 'admin', 1713176987835, 'menu.trace.analysisRemark');
|
||||
|
||||
@@ -117,7 +117,7 @@ REPLACE INTO `sys_menu` VALUES (2010, 'menu.ueUser.subUDM', 5, 2, 'sub', 'neUser
|
||||
-- REPLACE INTO `sys_menu` VALUES (2079, 'menu.config.softwareManage', 4, 4, 'softwareManage', 'configManage/softwareManage/index', '1', '0', 'M', '1', '0', 'configManage:softwareManage:index', 'icon-huidingbu', 'supervisor', 1700000000000, NULL, 0, 'menu.config.softwareManageRemark');
|
||||
REPLACE INTO `sys_menu` VALUES (2080, 'menu.ueUser.onlineIMS', 5, 4, 'ims', 'neUser/ims/index', '1', '0', 'M', '1', '1', 'neUser:ims:index', 'icon-xiangmuchengyuan', 'supervisor', 1700000000000, NULL, 0, 'menu.ueUser.onlineIMSRemark');
|
||||
REPLACE INTO `sys_menu` VALUES (2081, 'menu.ueUser.onlineUE', 5, 6, 'ue', 'neUser/ue/index', '1', '0', 'M', '1', '1', 'neUser:ue:index', 'icon-xiangmuchengyuan', 'supervisor', 1700000000000, NULL, 0, 'menu.ueUser.onlineUERemark');
|
||||
REPLACE INTO `sys_menu` VALUES (2082, 'menu.ueUser.base5G', 5, 7, 'base5G', 'neUser/base5G/index', '1', '0', 'M', '1', '1', 'neUser:base5G:index', 'icon-paixu', 'supervisor', 1700000000000, NULL, 0, 'menu.ueUser.base5GRemark');
|
||||
REPLACE INTO `sys_menu` VALUES (2082, 'menu.ueUser.base5G', 5, 7, 'base5G', 'neUser/base5G/index', '1', '0', 'M', '0', '1', 'neUser:base5G:index', 'icon-paixu', 'supervisor', 1700000000000, NULL, 0, 'menu.ueUser.base5GRemark');
|
||||
REPLACE INTO `sys_menu` VALUES (2083, 'menu.trace', 2087, 30, 'traceManage', NULL, '1', '0', 'D', '1', '1', NULL, 'icon-paixu', 'supervisor', 1700000000000, NULL, 0, 'menu.traceRemark');
|
||||
REPLACE INTO `sys_menu` VALUES (2084, 'menu.trace.task', 2083, 1, 'task', 'traceManage/task/index', '1', '0', 'M', '0', '1', 'traceManage:task:index', 'icon-chexiao', 'supervisor', 1700000000000, 'admin', 1713176976458, 'menu.trace.taskRemark');
|
||||
REPLACE INTO `sys_menu` VALUES (2085, 'menu.trace.analysis', 2083, 4, 'analysis', 'traceManage/analysis/index', '1', '0', 'M', '0', '1', 'traceManage:analysis:index', 'icon-gongnengjieshao', 'supervisor', 1700000000000, 'admin', 1713176987835, 'menu.trace.analysisRemark');
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
ProjectL = omc
|
||||
ProjectU = OMC
|
||||
PROJECT = $(ProjectL)
|
||||
VERSION = 2.2501.3
|
||||
VERSION = 2.2501.4
|
||||
RelDate = `date +%Y%m%d`
|
||||
Release = $(RelDate)
|
||||
RelVer = $(VERSION)-$(RelDate)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
ProcList="restagent sshsvc"
|
||||
ProjectL=omc
|
||||
VERSION=2.2501.3
|
||||
VERSION=2.2501.4
|
||||
RelDate=`date +%Y%m%d`
|
||||
Release=${RelDate}
|
||||
RelVer=${VERSION}-${RelDate}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
# Makefile for rest agent project
|
||||
|
||||
PROJECT = OMC
|
||||
VERSION = 2.2501.3
|
||||
VERSION = 2.2501.4
|
||||
PLATFORM = amd64
|
||||
ARMPLATFORM = aarch64
|
||||
BUILDDIR = ../../build
|
||||
|
||||
+92
-11
@@ -37,25 +37,103 @@ import (
|
||||
var wg sync.WaitGroup
|
||||
|
||||
// @title OMC Swagger API
|
||||
// @version 1.0.5
|
||||
// @description OMC Service Interface Info
|
||||
// @version 1.0.8
|
||||
// @description OMC Service Interface Information - Internal Use Only
|
||||
//
|
||||
// @tag.name chart
|
||||
// @tag.description chart interface
|
||||
//
|
||||
// @tag.name common
|
||||
// @tag.description common interface
|
||||
// @tag.name common/authorization
|
||||
// @tag.description common authorization Interface
|
||||
// @tag.name common/file
|
||||
// @tag.description common file Interface
|
||||
//
|
||||
// @tag.name monitor
|
||||
// @tag.description monitor interface
|
||||
// @tag.name monitor/cache
|
||||
// @tag.description monitor cache interface
|
||||
// @tag.name monitor/online
|
||||
// @tag.description monitor system user online interface
|
||||
//
|
||||
// @tag.name network_data
|
||||
// @tag.description network data interface
|
||||
// @tag.name network_data/kpi
|
||||
// @tag.description network data kpi interface
|
||||
// @tag.name network_data/amf
|
||||
// @tag.description network data amf interface
|
||||
// @tag.name network_data/ims
|
||||
// @tag.description network data ims interface
|
||||
// @tag.name network_data/mme
|
||||
// @tag.description network data mme interface
|
||||
// @tag.name network_data/sgwc
|
||||
// @tag.description network data sgwc interface
|
||||
// @tag.name network_data/smf
|
||||
// @tag.description network data smf interface
|
||||
// @tag.name network_data/smsc
|
||||
// @tag.description network data smsc interface
|
||||
// @tag.name network_data/udm/auth
|
||||
// @tag.description network data udm authentication interface
|
||||
// @tag.name network_data/udm/sub
|
||||
// @tag.description network data udm subscriber interface
|
||||
// @tag.name network_data/upf
|
||||
// @tag.description network data upf interface
|
||||
//
|
||||
// @tag.name network_element
|
||||
// @tag.description network element interface
|
||||
// @tag.name network_element/action
|
||||
// @tag.description network element operating interface
|
||||
// @tag.name network_element/info
|
||||
// @tag.description network element information interface
|
||||
// @tag.name network_element/host
|
||||
// @tag.description network element host interface
|
||||
// @tag.name network_element/license
|
||||
// @tag.description network element license interface
|
||||
// @tag.name network_element/software
|
||||
// @tag.description network element software interface
|
||||
// @tag.name network_element/version
|
||||
// @tag.description network element version interface
|
||||
// @tag.name network_element/config
|
||||
// @tag.description network element config interface
|
||||
//
|
||||
// @tag.name system
|
||||
// @tag.description system interface
|
||||
// @tag.name system/config
|
||||
// @tag.description system config interface
|
||||
// @tag.name system/dept
|
||||
// @tag.description system dept interface
|
||||
// @tag.name system/dict/data
|
||||
// @tag.description system dict data interface
|
||||
// @tag.name system/dict/type
|
||||
// @tag.description system dict type interface
|
||||
// @tag.name system/log/login
|
||||
// @tag.description system log login interface
|
||||
// @tag.name system/log/operate
|
||||
// @tag.description system log operate interface
|
||||
// @tag.name system/menu
|
||||
// @tag.description system menu interface
|
||||
// @tag.name system/post
|
||||
// @tag.description system post interface
|
||||
// @tag.name system/role
|
||||
// @tag.description system role interface
|
||||
// @tag.name system/user
|
||||
// @tag.description system user interface
|
||||
// @tag.name system/user/profile
|
||||
// @tag.description system user profile interface
|
||||
//
|
||||
// @tag.name tool
|
||||
// @tag.description tool interface
|
||||
// @tag.name tool/ping
|
||||
// @tag.description tool ping interface
|
||||
// @tag.name tool/iperf
|
||||
// @tag.description tool iperf interface
|
||||
//
|
||||
// @tag.name trace
|
||||
// @tag.description trace interface
|
||||
// @tag.name trace/tcpdump
|
||||
// @tag.description trace tcpdump interface
|
||||
//
|
||||
// @tag.name ws
|
||||
// @tag.description ws interface
|
||||
//
|
||||
@@ -63,21 +141,18 @@ var wg sync.WaitGroup
|
||||
// @BasePath /
|
||||
// @schemes http https
|
||||
//
|
||||
// @securityDefinitions.apikey ApiKeyAuth
|
||||
// @securityDefinitions.apikey TokenAuth
|
||||
// @in header
|
||||
// @name Authorization
|
||||
// @description Get the key through the login interface, fill in e.g. Bearer <access_token>
|
||||
// @description Get the key through the common/authorization System Login, fill in content "Bearer <access_token>"
|
||||
func main() {
|
||||
// 初始配置加载
|
||||
src.ConfigurationInit()
|
||||
// 程序注册
|
||||
|
||||
app := src.AppEngine()
|
||||
// Swagger 接口文档
|
||||
app.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||
|
||||
loadFeatures(app)
|
||||
|
||||
loadPprof(app)
|
||||
loadDev(app)
|
||||
|
||||
loadServer(app)
|
||||
|
||||
@@ -150,8 +225,14 @@ func loadFeatures(app *gin.Engine) {
|
||||
features.InitServiceEngine(app)
|
||||
}
|
||||
|
||||
// loadPprof 性能分析监控
|
||||
func loadPprof(app *gin.Engine) {
|
||||
// loadDev 开发环境调试
|
||||
func loadDev(app *gin.Engine) {
|
||||
// Swagger 接口文档
|
||||
if config.Env() == "local" {
|
||||
app.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||
}
|
||||
|
||||
//性能分析监控 Prometheus
|
||||
pprofEnabled := config.Get("pprof.enabled")
|
||||
if pprofEnabled != nil && pprofEnabled.(bool) {
|
||||
app.Use(ginprom.PromMiddleware(nil))
|
||||
|
||||
@@ -183,7 +183,7 @@ user:
|
||||
# 登录认证,默认打开
|
||||
loginAuth: true
|
||||
# 接口加密,默认打开
|
||||
cryptoApi: true
|
||||
cryptoApi: false
|
||||
# 密码
|
||||
password:
|
||||
# 密码最大错误次数
|
||||
|
||||
@@ -29,8 +29,8 @@ type ChartGraphController struct {
|
||||
// @Tags chart
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} map[string]any "data"
|
||||
// @Security ApiKeyAuth
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Get relationship graph group name
|
||||
// @Description Get relationship graph group name
|
||||
// @Router /chart/graph/groups [get]
|
||||
@@ -47,9 +47,9 @@ func (s *ChartGraphController) GroupNames(c *gin.Context) {
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param group query string true "Group"
|
||||
// @Param type query string true "Type oneof=node edge combo" Enums(node, edge, combo)
|
||||
// @Success 200 {object} map[string]any "data"
|
||||
// @Security ApiKeyAuth
|
||||
// @Param type query string true "Type" Enums(node, edge, combo)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Getting Relationship Map Data
|
||||
// @Description Getting Relationship Map Data
|
||||
// @Router /chart/graph [get]
|
||||
@@ -75,9 +75,9 @@ func (s *ChartGraphController) Load(c *gin.Context) {
|
||||
// @Tags chart
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body map[string]any true "{group:'',data:{nodes:[],edges:[],combos:[]}}"
|
||||
// @Success 200 {object} map[string]any "data"
|
||||
// @Security ApiKeyAuth
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Saving Relationship Diagram Data
|
||||
// @Description Saving Relationship Diagram Data
|
||||
// @Router /chart/graph/ [post]
|
||||
@@ -118,11 +118,11 @@ func (s *ChartGraphController) Save(c *gin.Context) {
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param group path string true "Group"
|
||||
// @Success 200 {object} map[string]any "data"
|
||||
// @Security ApiKeyAuth
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Deleting Relationship Diagram Data
|
||||
// @Description Deleting Relationship Diagram Data
|
||||
// @Router /chart/graph/:group [delete]
|
||||
// @Router /chart/graph/{group} [delete]
|
||||
func (s *ChartGraphController) Delete(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
group := c.Param("group")
|
||||
|
||||
@@ -33,6 +33,15 @@ type AccountController struct {
|
||||
// 系统登录
|
||||
//
|
||||
// POST /login
|
||||
//
|
||||
// @Tags common/authorization
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Summary System Login
|
||||
// @Description System Login
|
||||
// @Router /login [post]
|
||||
func (s *AccountController) Login(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var loginBody commonModel.LoginBody
|
||||
@@ -89,6 +98,15 @@ func (s *AccountController) Login(c *gin.Context) {
|
||||
// 登录用户信息
|
||||
//
|
||||
// GET /getInfo
|
||||
//
|
||||
// @Tags common/authorization
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Login User Information
|
||||
// @Description Login User Information
|
||||
// @Router /getInfo [get]
|
||||
func (s *AccountController) Info(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
loginUser, err := ctx.LoginUser(c)
|
||||
@@ -117,6 +135,15 @@ func (s *AccountController) Info(c *gin.Context) {
|
||||
// 登录用户路由信息
|
||||
//
|
||||
// GET /getRouters
|
||||
//
|
||||
// @Tags common/authorization
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Login User Routing Information
|
||||
// @Description Login User Routing Information
|
||||
// @Router /getRouters [get]
|
||||
func (s *AccountController) Router(c *gin.Context) {
|
||||
userID := ctx.LoginUserToUserID(c)
|
||||
|
||||
@@ -143,6 +170,15 @@ func (s *AccountController) Router(c *gin.Context) {
|
||||
// 系统登出
|
||||
//
|
||||
// POST /logout
|
||||
//
|
||||
// @Tags common/authorization
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary System Logout
|
||||
// @Description System Logout
|
||||
// @Router /logout [post]
|
||||
func (s *AccountController) Logout(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
tokenStr := ctx.Authorization(c)
|
||||
|
||||
@@ -32,6 +32,15 @@ type CaptchaController struct {
|
||||
// 获取验证码
|
||||
//
|
||||
// GET /captchaImage
|
||||
//
|
||||
// @Tags common
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Get CAPTCHA
|
||||
// @Description Get CAPTCHA
|
||||
// @Router /captchaImage [get]
|
||||
func (s *CaptchaController) Image(c *gin.Context) {
|
||||
// 从数据库配置获取验证码开关 true开启,false关闭
|
||||
captchaEnabledStr := s.sysConfigService.SelectConfigValueByKey("sys.account.captchaEnabled")
|
||||
|
||||
@@ -46,9 +46,17 @@ func (s *CommontController) I18n(c *gin.Context) {
|
||||
})
|
||||
}
|
||||
|
||||
// 系统可暴露的配置信息
|
||||
// 系统的配置信息
|
||||
//
|
||||
// GET /sys-conf
|
||||
//
|
||||
// @Tags common
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Summary Configuration information for the system
|
||||
// @Description Configuration information for the system
|
||||
// @Router /sys-conf [get]
|
||||
func (s *CommontController) SysConfig(c *gin.Context) {
|
||||
data := s.commontService.SystemConfigInfo()
|
||||
|
||||
|
||||
@@ -71,6 +71,17 @@ func (s *FileController) Download(c *gin.Context) {
|
||||
// 上传文件
|
||||
//
|
||||
// POST /upload
|
||||
//
|
||||
// @Tags common/file
|
||||
// @Accept multipart/form-data
|
||||
// @Produce json
|
||||
// @Param file formData file true "The file to upload."
|
||||
// @Param subPath formData string true "subpath, eg: default or common" Enums(default, common)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Upload a file
|
||||
// @Description Upload a file, interface param use <fileName>
|
||||
// @Router /file/upload [post]
|
||||
func (s *FileController) Upload(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 上传的文件
|
||||
@@ -105,6 +116,16 @@ func (s *FileController) Upload(c *gin.Context) {
|
||||
// 切片文件检查
|
||||
//
|
||||
// POST /chunkCheck
|
||||
//
|
||||
// @Tags common/file
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Slice file checking
|
||||
// @Description Slice file checking
|
||||
// @Router /file/chunkCheck [post]
|
||||
func (s *FileController) ChunkCheck(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
@@ -131,6 +152,16 @@ func (s *FileController) ChunkCheck(c *gin.Context) {
|
||||
// 切片文件合并
|
||||
//
|
||||
// POST /chunkMerge
|
||||
//
|
||||
// @Tags common/file
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Slice file merge
|
||||
// @Description Slice file merge
|
||||
// @Router /file/chunkMerge [post]
|
||||
func (s *FileController) ChunkMerge(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
@@ -170,6 +201,18 @@ func (s *FileController) ChunkMerge(c *gin.Context) {
|
||||
// 切片文件上传
|
||||
//
|
||||
// POST /chunkUpload
|
||||
//
|
||||
// @Tags common/file
|
||||
// @Accept multipart/form-data
|
||||
// @Produce json
|
||||
// @Param file formData file true "The file to upload."
|
||||
// @Param identifier formData string true "Slice Marker"
|
||||
// @Param index formData string true "Slice No."
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Sliced file upload
|
||||
// @Description Sliced file upload
|
||||
// @Router /file/chunkUpload [post]
|
||||
func (s *FileController) ChunkUpload(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 切片编号
|
||||
|
||||
@@ -24,7 +24,7 @@ type IndexController struct{}
|
||||
// @Tags common
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} map[string]any "data"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Summary Root Route
|
||||
// @Description Root Route
|
||||
// @Router / [get]
|
||||
|
||||
@@ -24,6 +24,15 @@ type MonitorController struct {
|
||||
// 资源监控信息加载
|
||||
//
|
||||
// GET /load
|
||||
//
|
||||
// @Tags monitor
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Resource monitoring information loading
|
||||
// @Description Resource monitoring information loading
|
||||
// @Router /monitor/load [get]
|
||||
func (s *MonitorController) Load(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
|
||||
@@ -22,6 +22,15 @@ type SysCacheController struct{}
|
||||
// Redis信息
|
||||
//
|
||||
// GET /
|
||||
//
|
||||
// @Tags monitor/cache
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Cache Service Information
|
||||
// @Description Cache Service Information
|
||||
// @Router /monitor/cache [get]
|
||||
func (s *SysCacheController) Info(c *gin.Context) {
|
||||
c.JSON(200, result.OkData(map[string]any{
|
||||
"info": redis.Info(""),
|
||||
|
||||
@@ -32,6 +32,15 @@ type SysUserOnlineController struct {
|
||||
// 在线用户列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags monitor/online
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary System Online User List
|
||||
// @Description System Online User List
|
||||
// @Router /monitor/online/list [get]
|
||||
func (s *SysUserOnlineController) List(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
ipaddr := c.Query("ipaddr")
|
||||
|
||||
@@ -22,6 +22,15 @@ type SystemInfoController struct {
|
||||
// 服务器信息
|
||||
//
|
||||
// GET /
|
||||
//
|
||||
// @Tags monitor
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Server Information
|
||||
// @Description Server Information
|
||||
// @Router /monitor/system-info [get]
|
||||
func (s *SystemInfoController) Info(c *gin.Context) {
|
||||
data := map[string]any{
|
||||
"cpu": s.systemInfogService.CPUInfo(),
|
||||
|
||||
@@ -32,6 +32,20 @@ type PerfKPIController struct {
|
||||
// 获取统计数据
|
||||
//
|
||||
// GET /data
|
||||
//
|
||||
// @Tags network_data/kpi
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param startTime query number true "Start time (timestamped milliseconds)" default(1737453599059)
|
||||
// @Param endTime query number true "End time (timestamped milliseconds)" default(1737453599059)
|
||||
// @Param interval query number true "interval" Enums(5,10,15,30,60,300,600,900,1800,3600)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Access to statistical data
|
||||
// @Description Access to statistical data
|
||||
// @Router /neData/kpi/data [get]
|
||||
func (s *PerfKPIController) GoldKPI(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys model.GoldKPIQuery
|
||||
@@ -84,6 +98,16 @@ func (s *PerfKPIController) GoldKPI(c *gin.Context) {
|
||||
// 获取统计标题
|
||||
//
|
||||
// GET /title
|
||||
//
|
||||
// @Tags network_data/kpi
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Get Statistical Headings
|
||||
// @Description Get Statistical Headings
|
||||
// @Router /neData/kpi/title [get]
|
||||
func (s *PerfKPIController) Title(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neType := c.Query("neType")
|
||||
|
||||
@@ -39,6 +39,20 @@ type AMFController struct {
|
||||
// UE会话列表
|
||||
//
|
||||
// GET /ue/list
|
||||
//
|
||||
// @Tags network_data/amf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type only AMF" Enums(AMF)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param imsi query string false "imsi"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UE Session List
|
||||
// @Description UE Session List
|
||||
// @Router /neData/amf/ue/list [get]
|
||||
func (s *AMFController) UEList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys model.UEEventAMFQuery
|
||||
@@ -65,6 +79,16 @@ func (s *AMFController) UEList(c *gin.Context) {
|
||||
// UE会话删除
|
||||
//
|
||||
// DELETE /ue/:ueIds
|
||||
//
|
||||
// @Tags network_data/amf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param ueIds path string true "list data id, multiple separated by a , sign"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UE Session Deletion
|
||||
// @Description UE Session Deletion
|
||||
// @Router /neData/amf/ue/{ueIds} [delete]
|
||||
func (s *AMFController) UERemove(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
ueIds := c.Param("ueIds")
|
||||
@@ -91,6 +115,16 @@ func (s *AMFController) UERemove(c *gin.Context) {
|
||||
// UE会话列表导出
|
||||
//
|
||||
// POST /ue/export
|
||||
//
|
||||
// @Tags network_data/amf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UE Session List Export
|
||||
// @Description UE Session List Export
|
||||
// @Router /neData/amf/ue/export [post]
|
||||
func (s *AMFController) UEExport(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 查询结果,根据查询条件结果,单页最大值限制
|
||||
@@ -220,6 +254,17 @@ func (s *AMFController) UEExport(c *gin.Context) {
|
||||
// 接入基站信息列表
|
||||
//
|
||||
// GET /nb/list
|
||||
//
|
||||
// @Tags network_data/amf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param id query string false "Base Station ID"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Access Base Station Information List
|
||||
// @Description Access Base Station Information List
|
||||
// @Router /neData/amf/nb/list [get]
|
||||
func (s *AMFController) NbInfoList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
@@ -253,6 +298,16 @@ func (s *AMFController) NbInfoList(c *gin.Context) {
|
||||
// 接入基站状态信息列表
|
||||
//
|
||||
// GET /nb/list-cfg
|
||||
//
|
||||
// @Tags network_data/amf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Access to the base station status information list
|
||||
// @Description Access to the base station status information list
|
||||
// @Router /neData/amf/nb/list-cfg [get]
|
||||
func (s *AMFController) NbStateList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
|
||||
@@ -40,6 +40,21 @@ type IMSController struct {
|
||||
// CDR会话列表
|
||||
//
|
||||
// GET /cdr/list
|
||||
//
|
||||
// @Tags network_data/ims
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type only IMS" Enums(IMS)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param callerParty query string false "callerParty"
|
||||
// @Param calledParty query string false "calledParty"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session List
|
||||
// @Description CDR Session List
|
||||
// @Router /neData/ims/cdr/list [get]
|
||||
func (s *IMSController) CDRList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys model.CDREventIMSQuery
|
||||
@@ -66,6 +81,16 @@ func (s *IMSController) CDRList(c *gin.Context) {
|
||||
// CDR会话删除
|
||||
//
|
||||
// DELETE /cdr/:cdrIds
|
||||
//
|
||||
// @Tags network_data/ims
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param cdrIds path string true "list data id, multiple separated by a , sign"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session Delete
|
||||
// @Description CDR Session Delete
|
||||
// @Router /neData/ims/cdr/{cdrIds} [delete]
|
||||
func (s *IMSController) CDRRemove(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
cdrIds := c.Param("cdrIds")
|
||||
@@ -92,6 +117,16 @@ func (s *IMSController) CDRRemove(c *gin.Context) {
|
||||
// CDR会话列表导出
|
||||
//
|
||||
// POST /cdr/export
|
||||
//
|
||||
// @Tags network_data/ims
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session List Export
|
||||
// @Description CDR Session List Export
|
||||
// @Router /neData/ims/cdr/export [post]
|
||||
func (s *IMSController) CDRExport(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 查询结果,根据查询条件结果,单页最大值限制
|
||||
@@ -232,6 +267,16 @@ func (s *IMSController) CDRExport(c *gin.Context) {
|
||||
// 在线会话用户数量
|
||||
//
|
||||
// GET /session/num
|
||||
//
|
||||
// @Tags network_data/ims
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Number of online session users
|
||||
// @Description Number of online session users
|
||||
// @Router /neData/ims/session/num [get]
|
||||
func (s *IMSController) UeSessionNum(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
@@ -262,6 +307,18 @@ func (s *IMSController) UeSessionNum(c *gin.Context) {
|
||||
// 在线会话用户列表信息
|
||||
//
|
||||
// GET /session/list
|
||||
//
|
||||
// @Tags network_data/ims
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param imsi query string false "imsi"
|
||||
// @Param msisdn query string false "msisdn"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Online session user list information
|
||||
// @Description Online session user list information
|
||||
// @Router /neData/ims/session/list [get]
|
||||
func (s *IMSController) UeSessionList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
|
||||
@@ -40,6 +40,20 @@ type MMEController struct {
|
||||
// UE会话列表
|
||||
//
|
||||
// GET /ue/list
|
||||
//
|
||||
// @Tags network_data/mme
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type only MME" Enums(MME)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param imsi query string false "imsi"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UE Session List
|
||||
// @Description UE Session List
|
||||
// @Router /neData/mme/ue/list [get]
|
||||
func (s *MMEController) UEList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys model.UEEventMMEQuery
|
||||
@@ -66,6 +80,16 @@ func (s *MMEController) UEList(c *gin.Context) {
|
||||
// UE会话删除
|
||||
//
|
||||
// DELETE /ue/:ueIds
|
||||
//
|
||||
// @Tags network_data/mme
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param ueIds path string true "list data id, multiple separated by a , sign"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UE Session Deletion
|
||||
// @Description UE Session Deletion
|
||||
// @Router /neData/mme/ue/{ueIds} [delete]
|
||||
func (s *MMEController) UERemove(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
ueIds := c.Param("ueIds")
|
||||
@@ -92,6 +116,16 @@ func (s *MMEController) UERemove(c *gin.Context) {
|
||||
// UE会话列表导出
|
||||
//
|
||||
// POST /ue/export
|
||||
//
|
||||
// @Tags network_data/mme
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UE Session List Export
|
||||
// @Description UE Session List Export
|
||||
// @Router /neData/mme/ue/export [post]
|
||||
func (s *MMEController) UEExport(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 查询结果,根据查询条件结果,单页最大值限制
|
||||
@@ -210,6 +244,17 @@ func (s *MMEController) UEExport(c *gin.Context) {
|
||||
// 接入基站信息列表
|
||||
//
|
||||
// GET /nb/list
|
||||
//
|
||||
// @Tags network_data/mme
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param id query string false "Base Station ID"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Access Base Station Information List
|
||||
// @Description Access Base Station Information List
|
||||
// @Router /neData/mme/nb/list [get]
|
||||
func (s *MMEController) NbInfoList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
@@ -239,3 +284,43 @@ func (s *MMEController) NbInfoList(c *gin.Context) {
|
||||
|
||||
c.JSON(200, result.OkData(data))
|
||||
}
|
||||
|
||||
// 接入基站状态信息列表
|
||||
//
|
||||
// GET /nb/list-cfg
|
||||
//
|
||||
// @Tags network_data/mme
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Access to the base station status information list
|
||||
// @Description Access to the base station status information list
|
||||
// @Router /neData/mme/nb/list-cfg [get]
|
||||
func (s *MMEController) NbStateList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
NeId string `form:"neId" binding:"required"`
|
||||
}
|
||||
if err := c.ShouldBindQuery(&query); err != nil {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
return
|
||||
}
|
||||
|
||||
// 查询网元信息
|
||||
neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID("MME", query.NeId)
|
||||
if neInfo.NeId != query.NeId || neInfo.IP == "" {
|
||||
c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
|
||||
// 网元直连
|
||||
data, err := neFetchlink.MMEEnbStateList(neInfo)
|
||||
if err != nil {
|
||||
c.JSON(200, result.ErrMsg(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(200, result.OkData(data))
|
||||
}
|
||||
@@ -24,7 +24,7 @@ var NewSGWC = &SGWCController{
|
||||
|
||||
// 网元SGWC
|
||||
//
|
||||
// PATH /SGWC
|
||||
// PATH /sgwc
|
||||
type SGWCController struct {
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
cdrEventService *neDataService.CDREventSGWC // CDR会话事件服务
|
||||
@@ -34,6 +34,21 @@ type SGWCController struct {
|
||||
// CDR会话列表
|
||||
//
|
||||
// GET /cdr/list
|
||||
//
|
||||
// @Tags network_data/sgwc
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type only SGWC" Enums(SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param imsi query string false "imsi"
|
||||
// @Param msisdn query string false "msisdn"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session List
|
||||
// @Description CDR Session List
|
||||
// @Router /neData/sgwc/cdr/list [get]
|
||||
func (s *SGWCController) CDRList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys model.CDREventSGWCQuery
|
||||
@@ -58,6 +73,16 @@ func (s *SGWCController) CDRList(c *gin.Context) {
|
||||
// CDR会话删除
|
||||
//
|
||||
// DELETE /cdr/:cdrIds
|
||||
//
|
||||
// @Tags network_data/sgwc
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param cdrIds path string true "list data id, multiple separated by a , sign"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session Delete
|
||||
// @Description CDR Session Delete
|
||||
// @Router /neData/sgwc/cdr/{cdrIds} [delete]
|
||||
func (s *SGWCController) CDRRemove(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
cdrIds := c.Param("cdrIds")
|
||||
@@ -84,6 +109,16 @@ func (s *SGWCController) CDRRemove(c *gin.Context) {
|
||||
// CDR会话列表导出
|
||||
//
|
||||
// POST /cdr/export
|
||||
//
|
||||
// @Tags network_data/sgwc
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session List Export
|
||||
// @Description CDR Session List Export
|
||||
// @Router /neData/sgwc/cdr/export [post]
|
||||
func (s *SGWCController) CDRExport(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 查询结果,根据查询条件结果,单页最大值限制
|
||||
|
||||
@@ -40,6 +40,20 @@ type SMFController struct {
|
||||
// CDR会话列表
|
||||
//
|
||||
// GET /cdr/list
|
||||
//
|
||||
// @Tags network_data/smf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type only SMF" Enums(SMF)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param subscriberID query string false "subscriberID is IMSI"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session List
|
||||
// @Description CDR Session List
|
||||
// @Router /neData/smf/cdr/list [get]
|
||||
func (s *SMFController) CDRList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys model.CDREventSMFQuery
|
||||
@@ -66,6 +80,16 @@ func (s *SMFController) CDRList(c *gin.Context) {
|
||||
// CDR会话删除
|
||||
//
|
||||
// DELETE /cdr/:cdrIds
|
||||
//
|
||||
// @Tags network_data/smf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param cdrIds path string true "list data id, multiple separated by a , sign"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session Delete
|
||||
// @Description CDR Session Delete
|
||||
// @Router /neData/smf/cdr/{cdrIds} [delete]
|
||||
func (s *SMFController) CDRRemove(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
cdrIds := c.Param("cdrIds")
|
||||
@@ -92,6 +116,16 @@ func (s *SMFController) CDRRemove(c *gin.Context) {
|
||||
// CDR会话列表导出
|
||||
//
|
||||
// POST /cdr/export
|
||||
//
|
||||
// @Tags network_data/smf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session List Export
|
||||
// @Description CDR Session List Export
|
||||
// @Router /neData/smf/cdr/export [post]
|
||||
func (s *SMFController) CDRExport(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 查询结果,根据查询条件结果,单页最大值限制
|
||||
@@ -329,6 +363,16 @@ func (s *SMFController) CDRExport(c *gin.Context) {
|
||||
// 在线订阅用户数量
|
||||
//
|
||||
// GET /sub/num
|
||||
//
|
||||
// @Tags network_data/smf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Number of online session users
|
||||
// @Description Number of online session users
|
||||
// @Router /neData/smf/sub/num [get]
|
||||
func (s *SMFController) SubUserNum(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
@@ -359,6 +403,20 @@ func (s *SMFController) SubUserNum(c *gin.Context) {
|
||||
// 在线订阅用户列表信息
|
||||
//
|
||||
// GET /sub/list
|
||||
//
|
||||
// @Tags network_data/smf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param imsi query string false "imsi"
|
||||
// @Param msisdn query string false "msisdn"
|
||||
// @Param upstate query string false "upstate"
|
||||
// @Param pageNum query string true "pageNum" default(50)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Online session user list information
|
||||
// @Description Online session user list information
|
||||
// @Router /neData/smf/session/list [get]
|
||||
func (s *SMFController) SubUserList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
|
||||
@@ -39,6 +39,21 @@ type SMSCController struct {
|
||||
// CDR会话列表
|
||||
//
|
||||
// GET /cdr/list
|
||||
//
|
||||
// @Tags network_data/smsc
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type only SMSC" Enums(SMSC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param callerParty query string false "callerParty"
|
||||
// @Param calledParty query string false "calledParty"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session List
|
||||
// @Description CDR Session List
|
||||
// @Router /neData/smsc/cdr/list [get]
|
||||
func (s *SMSCController) CDRList(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys model.CDREventSMSCQuery
|
||||
@@ -65,6 +80,16 @@ func (s *SMSCController) CDRList(c *gin.Context) {
|
||||
// CDR会话删除
|
||||
//
|
||||
// DELETE /cdr/:cdrIds
|
||||
//
|
||||
// @Tags network_data/smsc
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param cdrIds path string true "list data id, multiple separated by a , sign"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session Delete
|
||||
// @Description CDR Session Delete
|
||||
// @Router /neData/smsc/cdr/{cdrIds} [delete]
|
||||
func (s *SMSCController) CDRRemove(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
cdrIds := c.Param("cdrIds")
|
||||
@@ -91,6 +116,16 @@ func (s *SMSCController) CDRRemove(c *gin.Context) {
|
||||
// CDR会话列表导出
|
||||
//
|
||||
// POST /cdr/export
|
||||
//
|
||||
// @Tags network_data/smsc
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary CDR Session List Export
|
||||
// @Description CDR Session List Export
|
||||
// @Router /neData/smsc/cdr/export [post]
|
||||
func (s *SMSCController) CDRExport(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 查询结果,根据查询条件结果,单页最大值限制
|
||||
|
||||
@@ -37,7 +37,17 @@ type UDMAuthController struct {
|
||||
|
||||
// UDM鉴权用户重载数据
|
||||
//
|
||||
// POST /resetData/:neId
|
||||
// PUT /resetData/:neId
|
||||
//
|
||||
// @Tags network_data/udm/auth
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId path string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Authentication User Reload Data
|
||||
// @Description UDM Authentication User Reload Data
|
||||
// @Router /neData/udm/auth/resetData/{neId} [put]
|
||||
func (s *UDMAuthController) ResetData(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -53,6 +63,19 @@ func (s *UDMAuthController) ResetData(c *gin.Context) {
|
||||
// UDM鉴权用户列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags network_data/udm/auth
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param imsi query string false "IMSI"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Authentication User List
|
||||
// @Description UDM Authentication User List
|
||||
// @Router /neData/udm/auth/list [get]
|
||||
func (s *UDMAuthController) List(c *gin.Context) {
|
||||
querys := ctx.QueryMap(c)
|
||||
data := s.udmAuthService.SelectPage(querys)
|
||||
@@ -62,6 +85,17 @@ func (s *UDMAuthController) List(c *gin.Context) {
|
||||
// UDM鉴权用户信息
|
||||
//
|
||||
// GET /:neId/:imsi
|
||||
//
|
||||
// @Tags network_data/udm/auth
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId path string true "NE ID" default(001)
|
||||
// @Param value path string true "IMSI"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Authentication User Information
|
||||
// @Description UDM Authentication User Information
|
||||
// @Router /neData/udm/auth/{neId}/{value} [get]
|
||||
func (s *UDMAuthController) Info(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -107,6 +141,17 @@ func (s *UDMAuthController) Info(c *gin.Context) {
|
||||
// UDM鉴权用户新增
|
||||
//
|
||||
// POST /:neId
|
||||
//
|
||||
// @Tags network_data/udm/auth
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId path string true "NE ID" default(001)
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Authentication User Added
|
||||
// @Description UDM Authentication User Added
|
||||
// @Router /neData/udm/auth/{neId} [post]
|
||||
func (s *UDMAuthController) Add(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -155,6 +200,18 @@ func (s *UDMAuthController) Add(c *gin.Context) {
|
||||
// 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 includes starting 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 := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -204,6 +261,17 @@ func (s *UDMAuthController) Adds(c *gin.Context) {
|
||||
// UDM鉴权用户修改
|
||||
//
|
||||
// PUT /:neId
|
||||
//
|
||||
// @Tags network_data/udm/auth
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId path string true "NE ID" default(001)
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Authenticated User Modification
|
||||
// @Description UDM Authenticated User Modification
|
||||
// @Router /neData/udm/auth/{neId} [put]
|
||||
func (s *UDMAuthController) Edit(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -252,6 +320,17 @@ func (s *UDMAuthController) Edit(c *gin.Context) {
|
||||
// UDM鉴权用户删除
|
||||
//
|
||||
// DELETE /:neId/:imsi
|
||||
//
|
||||
// @Tags network_data/udm/auth
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId path string true "NE ID" default(001)
|
||||
// @Param value path string true "IMSI, multiple separated by a , sign"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Authenticated User Deletion
|
||||
// @Description UDM Authenticated User Deletion
|
||||
// @Router /neData/udm/auth/{neId}/{value} [delete]
|
||||
func (s *UDMAuthController) Remove(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -305,6 +384,18 @@ func (s *UDMAuthController) Remove(c *gin.Context) {
|
||||
// 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 includes starting 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 := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -347,6 +438,16 @@ func (s *UDMAuthController) Removes(c *gin.Context) {
|
||||
// UDM鉴权用户导出
|
||||
//
|
||||
// POST /export
|
||||
//
|
||||
// @Tags network_data/udm/auth
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Authenticated User Export
|
||||
// @Description UDM Authenticated User Export
|
||||
// @Router /neData/udm/auth/export [post]
|
||||
func (s *UDMAuthController) Export(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 查询结果,根据查询条件结果,单页最大值限制
|
||||
@@ -426,13 +527,23 @@ func (s *UDMAuthController) Export(c *gin.Context) {
|
||||
// UDM鉴权用户导入
|
||||
//
|
||||
// POST /import
|
||||
//
|
||||
// @Tags network_data/udm/auth
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Authenticated User Import
|
||||
// @Description UDM Authenticated User Import
|
||||
// @Router /neData/udm/auth/import [post]
|
||||
func (s *UDMAuthController) Import(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
NeId string `json:"neId" binding:"required"`
|
||||
UploadPath string `json:"uploadPath" binding:"required"`
|
||||
TypeVal string `json:"typeVal" binding:"required,oneof=default k4"`
|
||||
TypeData any `json:"typeData"`
|
||||
NeId string `json:"neId" binding:"required"` // 网元ID
|
||||
UploadPath string `json:"uploadPath" binding:"required"` // 上传文件路径
|
||||
TypeVal string `json:"typeVal" binding:"required,oneof=default k4"` // default: 默认导入方式, k4: k4类型导入方式
|
||||
TypeData any `json:"typeData"` // k4类型的数据密钥
|
||||
}
|
||||
if err := c.ShouldBindBodyWith(&body, binding.JSON); err != nil {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
|
||||
@@ -36,7 +36,17 @@ type UDMSubController struct {
|
||||
|
||||
// UDM签约用户重载数据
|
||||
//
|
||||
// POST /resetData/:neId
|
||||
// PUT /resetData/:neId
|
||||
//
|
||||
// @Tags network_data/udm/sub
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId path string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Subscriber User Reload Data
|
||||
// @Description UDM Subscriber User Reload Data
|
||||
// @Router /neData/udm/sub/resetData/{neId} [put]
|
||||
func (s *UDMSubController) ResetData(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -52,6 +62,20 @@ func (s *UDMSubController) ResetData(c *gin.Context) {
|
||||
// UDM签约用户列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags network_data/udm/sub
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param imsi query string false "IMSI"
|
||||
// @Param msisdn query string false "Msisdn"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Subscriber User List
|
||||
// @Description UDM Subscriber User List
|
||||
// @Router /neData/udm/sub/list [get]
|
||||
func (s *UDMSubController) List(c *gin.Context) {
|
||||
querys := ctx.QueryMap(c)
|
||||
// querys["userName"] = ctx.LoginUserToUserName(c)
|
||||
@@ -72,6 +96,17 @@ func (s *UDMSubController) List(c *gin.Context) {
|
||||
// UDM签约用户信息
|
||||
//
|
||||
// GET /:neId/:imsi
|
||||
//
|
||||
// @Tags network_data/udm/sub
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId path string true "NE ID" default(001)
|
||||
// @Param value path string true "IMSI"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Subscriber User Information
|
||||
// @Description UDM Subscriber User Information
|
||||
// @Router /neData/udm/sub/{neId}/{value} [get]
|
||||
func (s *UDMSubController) Info(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -117,6 +152,17 @@ func (s *UDMSubController) Info(c *gin.Context) {
|
||||
// UDM签约用户新增
|
||||
//
|
||||
// POST /:neId
|
||||
//
|
||||
// @Tags network_data/udm/sub
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId path string true "NE ID" default(001)
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Subscriber User Added
|
||||
// @Description UDM Subscriber User Added
|
||||
// @Router /neData/udm/sub/{neId} [post]
|
||||
func (s *UDMSubController) Add(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -166,6 +212,18 @@ func (s *UDMSubController) Add(c *gin.Context) {
|
||||
// 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 includes starting 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 := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -218,6 +276,17 @@ func (s *UDMSubController) Adds(c *gin.Context) {
|
||||
// UDM签约用户修改
|
||||
//
|
||||
// PUT /:neId
|
||||
//
|
||||
// @Tags network_data/udm/sub
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId path string true "NE ID" default(001)
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Subscriber User Modification
|
||||
// @Description UDM Subscriber User Modification
|
||||
// @Router /neData/udm/sub/{neId} [put]
|
||||
func (s *UDMSubController) Edit(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -267,6 +336,17 @@ func (s *UDMSubController) Edit(c *gin.Context) {
|
||||
// UDM签约用户删除
|
||||
//
|
||||
// DELETE /:neId/:imsi
|
||||
//
|
||||
// @Tags network_data/udm/sub
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId path string true "NE ID" default(001)
|
||||
// @Param value path string true "IMSI, multiple separated by a , sign"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Subscriber User Deletion
|
||||
// @Description UDM Subscriber User Deletion
|
||||
// @Router /neData/udm/sub/{neId}/{value} [delete]
|
||||
func (s *UDMSubController) Remove(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -320,6 +400,18 @@ func (s *UDMSubController) Remove(c *gin.Context) {
|
||||
// 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 includes starting 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 := ctx.AcceptLanguage(c)
|
||||
neId := c.Param("neId")
|
||||
@@ -362,6 +454,16 @@ func (s *UDMSubController) Removes(c *gin.Context) {
|
||||
// UDM签约用户导出
|
||||
//
|
||||
// POST /export
|
||||
//
|
||||
// @Tags network_data/udm/sub
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Subscriber User Export
|
||||
// @Description UDM Subscriber User Export
|
||||
// @Router /neData/udm/sub/export [post]
|
||||
func (s *UDMSubController) Export(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 查询结果,根据查询条件结果,单页最大值限制
|
||||
@@ -444,6 +546,16 @@ func (s *UDMSubController) Export(c *gin.Context) {
|
||||
// UDM签约用户导入
|
||||
//
|
||||
// POST /import
|
||||
//
|
||||
// @Tags network_data/udm/sub
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UDM Subscriber User Import
|
||||
// @Description UDM Subscriber User Import
|
||||
// @Router /neData/udm/sub/import [post]
|
||||
func (s *UDMSubController) Import(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
|
||||
@@ -27,11 +27,22 @@ type UPFController struct {
|
||||
// 单位 比特(bit)
|
||||
//
|
||||
// GET /totalFlow
|
||||
//
|
||||
// @Tags network_data/upf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param day query number true "Statistical time a few days before" Enums(0, 7, 30)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Total number of flows N3 upstream N6 downstream
|
||||
// @Description Total number of flows N3 upstream N6 downstream
|
||||
// @Router /neData/upf/totalFlow [get]
|
||||
func (s *UPFController) TotalFlow(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
NeID string `form:"neId" binding:"required"`
|
||||
Day int `form:"day" binding:"required"`
|
||||
Day int `form:"day"`
|
||||
}
|
||||
if err := c.ShouldBindQuery(&querys); querys.Day < 0 || err != nil {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
|
||||
@@ -20,7 +20,7 @@ func (*CDREventIMS) TableName() string {
|
||||
|
||||
// CDREventIMSQuery CDR会话对象IMS查询参数结构体
|
||||
type CDREventIMSQuery struct {
|
||||
NeType string `json:"neType" form:"neType" binding:"required"` // 网元类型IMS
|
||||
NeType string `json:"neType" form:"neType" binding:"required,oneof=IMS"` // 网元类型IMS
|
||||
NeID string `json:"neId" form:"neId" binding:"required"`
|
||||
RmUID string `json:"rmUID" form:"rmUID"`
|
||||
RecordType string `json:"recordType" form:"recordType"` // 记录行为 MOC MTC MOSM MTSM
|
||||
|
||||
@@ -21,7 +21,7 @@ func (*CDREventSMF) TableName() string {
|
||||
|
||||
// CDREventSMFQuery CDR会话对象SMF查询参数结构体
|
||||
type CDREventSMFQuery struct {
|
||||
NeType string `json:"neType" form:"neType" binding:"required"` // SMF
|
||||
NeType string `json:"neType" form:"neType" binding:"required,oneof=SMF"` // 网元类型, 暂时支持SMF
|
||||
NeID string `json:"neId" form:"neId" binding:"required"`
|
||||
RmUID string `json:"rmUID" form:"rmUID"`
|
||||
RecordType string `json:"recordType" form:"recordType"` // 暂时没用到
|
||||
|
||||
@@ -20,7 +20,7 @@ func (*CDREventSMSC) TableName() string {
|
||||
|
||||
// CDREventSMSCQuery CDR会话对象SMSC查询参数结构体
|
||||
type CDREventSMSCQuery struct {
|
||||
NeType string `json:"neType" form:"neType" binding:"required"` // 网元类型SMSC
|
||||
NeType string `json:"neType" form:"neType" binding:"required,oneof=SMSC"` // 网元类型, 暂时支持SMSC
|
||||
NeID string `json:"neId" form:"neId" binding:"required"`
|
||||
RmUID string `json:"rmUID" form:"rmUID"`
|
||||
RecordType string `json:"recordType" form:"recordType"` // 记录行为 MOSM MTSM
|
||||
|
||||
@@ -21,17 +21,18 @@ func (*UEEventAMF) TableName() string {
|
||||
|
||||
// UEEventAMFQuery UE会话对象AMF查询参数结构体
|
||||
type UEEventAMFQuery struct {
|
||||
NeType string `json:"neType" form:"neType" binding:"required"` // 网元类型, 暂时支持AMF
|
||||
NeType string `json:"neType" form:"neType" binding:"required,oneof=AMF"` // 网元类型, 暂时支持AMF
|
||||
NeID string `json:"neId" form:"neId" binding:"required"`
|
||||
RmUID string `json:"rmUID" form:"rmUID"`
|
||||
EventType string `json:"eventType" form:"eventType"` // 事件类型 auth-result detach cm-state
|
||||
IMSI string `json:"imsi" form:"imsi"` // imsi
|
||||
StartTime string `json:"startTime" form:"startTime"`
|
||||
EndTime string `json:"endTime" form:"endTime"`
|
||||
TenantName string `json:"tenantName" form:"tenantName"`
|
||||
UserName string `json:"userName" form:"userName"`
|
||||
SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=timestamp"` // 排序字段,填写结果字段
|
||||
SortOrder string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"` // 排序升降序,asc desc
|
||||
PageNum int64 `json:"pageNum" form:"pageNum" binding:"required"`
|
||||
PageSize int64 `json:"pageSize" form:"pageSize" binding:"required"`
|
||||
|
||||
TenantName string `json:"tenantName" form:"tenantName"`
|
||||
UserName string `json:"userName" form:"userName"`
|
||||
}
|
||||
@@ -10,6 +10,7 @@ type UEEventMME struct {
|
||||
EventType string `json:"eventType" gorm:"column:event_type"` // 事件类型 auth-result detach cm-state
|
||||
EventJSONStr string `json:"eventJSON" gorm:"column:event_json"`
|
||||
CreatedAt string `json:"createdAt" gorm:"column:created_at;default:CURRENT_TIMESTAMP"`
|
||||
|
||||
TenantID string `json:"tenantID" gorm:"-"`
|
||||
TenantName string `json:"tenantName" gorm:"-"`
|
||||
}
|
||||
@@ -21,17 +22,18 @@ func (*UEEventMME) TableName() string {
|
||||
|
||||
// UEEventMMEQuery UE会话对象MME查询参数结构体
|
||||
type UEEventMMEQuery struct {
|
||||
NeType string `json:"neType" form:"neType" binding:"required"` // 网元类型, 暂时支持MME
|
||||
NeType string `json:"neType" form:"neType" binding:"required,oneof=MME"` // 网元类型, 暂时支持MME
|
||||
NeID string `json:"neId" form:"neId" binding:"required"`
|
||||
RmUID string `json:"rmUID" form:"rmUID"`
|
||||
EventType string `json:"eventType" form:"eventType"` // 事件类型 auth-result detach cm-state
|
||||
IMSI string `json:"imsi" form:"imsi"` // imsi
|
||||
StartTime string `json:"startTime" form:"startTime"`
|
||||
EndTime string `json:"endTime" form:"endTime"`
|
||||
TenantName string `json:"tenantName" form:"tenantName"`
|
||||
UserName string `json:"userName" form:"userName"`
|
||||
SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=timestamp"` // 排序字段,填写结果字段
|
||||
SortOrder string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"` // 排序升降序,asc desc
|
||||
PageNum int64 `json:"pageNum" form:"pageNum" binding:"required"`
|
||||
PageSize int64 `json:"pageSize" form:"pageSize" binding:"required"`
|
||||
|
||||
TenantName string `json:"tenantName" form:"tenantName"`
|
||||
UserName string `json:"userName" form:"userName"`
|
||||
}
|
||||
@@ -280,6 +280,10 @@ func Setup(router *gin.Engine) {
|
||||
middleware.PreAuthorize(nil),
|
||||
controller.NewMME.NbInfoList,
|
||||
)
|
||||
mmeGroup.GET("/nb/list-cfg",
|
||||
middleware.PreAuthorize(nil),
|
||||
controller.NewMME.NbStateList,
|
||||
)
|
||||
}
|
||||
|
||||
// 网元SGWC
|
||||
|
||||
@@ -35,11 +35,11 @@ type NeActionController struct {
|
||||
//
|
||||
// POST /pushFile
|
||||
//
|
||||
// @Tags network_element
|
||||
// @Tags network_element/action
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} map[string]any{} "data"
|
||||
// @Security ApiKeyAuth
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Sending files from local to network elements
|
||||
// @Description Sending files from local to network elements
|
||||
// @Router /ne/action/pushFile [post]
|
||||
@@ -100,6 +100,15 @@ func (s *NeActionController) PushFile(c *gin.Context) {
|
||||
// 从网元到本地获取文件
|
||||
//
|
||||
// GET /pullFile
|
||||
//
|
||||
// @Tags network_element/action
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Getting files from the network element to the local
|
||||
// @Description Getting files from the network element to the local
|
||||
// @Router /ne/action/pullFile [get]
|
||||
func (s *NeActionController) PullFile(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
@@ -159,6 +168,15 @@ func (s *NeActionController) PullFile(c *gin.Context) {
|
||||
// 从网元到本地获取目录压缩为ZIP
|
||||
//
|
||||
// GET /pullDirZip
|
||||
//
|
||||
// @Tags network_element/action
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Get directories compressed to ZIP from the network element to the local area
|
||||
// @Description Get directories compressed to ZIP from the network element to the local area
|
||||
// @Router /ne/action/pullDirZip [get]
|
||||
func (s *NeActionController) PullDirZip(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
@@ -226,6 +244,15 @@ func (s *NeActionController) PullDirZip(c *gin.Context) {
|
||||
// 查看网元端文件内容
|
||||
//
|
||||
// GET /viewFile
|
||||
//
|
||||
// @Tags network_element/action
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Viewing the contents of a file on the network element side
|
||||
// @Description Viewing the contents of a file on the network element side
|
||||
// @Router /ne/action/viewFile [get]
|
||||
func (s *NeActionController) ViewFile(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
@@ -269,6 +296,15 @@ func (s *NeActionController) ViewFile(c *gin.Context) {
|
||||
// 网元端文件列表
|
||||
//
|
||||
// GET /files
|
||||
//
|
||||
// @Tags network_element/action
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary List of files on the network element side
|
||||
// @Description List of files on the network element side
|
||||
// @Router /ne/action/files [get]
|
||||
func (s *NeActionController) Files(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
@@ -333,6 +369,15 @@ func (s *NeActionController) Files(c *gin.Context) {
|
||||
// 网元服务操作
|
||||
//
|
||||
// PUT /service
|
||||
//
|
||||
// @Tags network_element/action
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element service operation
|
||||
// @Description Network element service operation
|
||||
// @Router /ne/action/service [put]
|
||||
func (s *NeActionController) Service(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
|
||||
@@ -157,6 +157,16 @@ func (s *NeConfigController) Remove(c *gin.Context) {
|
||||
// 网元参数配置可用属性值列表指定网元类型全部无分页
|
||||
//
|
||||
// GET /list/:neType
|
||||
//
|
||||
// @Tags network_element/config
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType path string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network Element Parameter Configuration Available Attribute Values List Specify Network Element Type All Unpaged
|
||||
// @Description Network Element Parameter Configuration Available Attribute Values List Specify Network Element Type All Unpaged
|
||||
// @Router /ne/config/list/{neType} [get]
|
||||
func (s *NeConfigController) ListByNeType(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
neType := c.Param("neType")
|
||||
@@ -171,6 +181,18 @@ func (s *NeConfigController) ListByNeType(c *gin.Context) {
|
||||
// 网元参数配置数据信息
|
||||
//
|
||||
// GET /data
|
||||
//
|
||||
// @Tags network_element/config
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param paramName query string true "Available attributes, based on querying the list of attributes"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network Element Parameter Configuration Data Information
|
||||
// @Description Network Element Parameter Configuration Data Information
|
||||
// @Router /ne/config/data [get]
|
||||
func (s *NeConfigController) DataInfo(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
@@ -213,6 +235,16 @@ func (s *NeConfigController) DataInfo(c *gin.Context) {
|
||||
// 网元参数配置数据修改
|
||||
//
|
||||
// PUT /data
|
||||
//
|
||||
// @Tags network_element/config
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element parameter configuration data modification
|
||||
// @Description Network element parameter configuration data modification
|
||||
// @Router /ne/config/data [put]
|
||||
func (s *NeConfigController) DataEdit(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
@@ -255,6 +287,16 @@ func (s *NeConfigController) DataEdit(c *gin.Context) {
|
||||
// 网元参数配置数据新增(array)
|
||||
//
|
||||
// POST /data
|
||||
//
|
||||
// @Tags network_element/config
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element parameter configuration data added (array)
|
||||
// @Description Network element parameter configuration data added (array)
|
||||
// @Router /ne/config/data [post]
|
||||
func (s *NeConfigController) DataAdd(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
@@ -300,6 +342,19 @@ func (s *NeConfigController) DataAdd(c *gin.Context) {
|
||||
// 网元参数配置数据删除(array)
|
||||
//
|
||||
// DELETE /data
|
||||
//
|
||||
// @Tags network_element/config
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param paramName query string true "Available attributes, based on querying the list of attributes"
|
||||
// @Param loc query string true "Array index"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element parameter configuration data deletion (array)
|
||||
// @Description Network element parameter configuration data deletion (array)
|
||||
// @Router /ne/config/data [delete]
|
||||
func (s *NeConfigController) DataRemove(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
|
||||
@@ -171,6 +171,16 @@ func (s *NeHostController) Remove(c *gin.Context) {
|
||||
// 网元主机测试连接
|
||||
//
|
||||
// POST /test
|
||||
//
|
||||
// @Tags network_element/host
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element host test connection
|
||||
// @Description Network element host test connection
|
||||
// @Router /ne/host/test [post]
|
||||
func (s *NeHostController) Test(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body model.NeHost
|
||||
@@ -239,6 +249,16 @@ func (s *NeHostController) Test(c *gin.Context) {
|
||||
// 网元主机发送命令
|
||||
//
|
||||
// POST /cmd
|
||||
//
|
||||
// @Tags network_element/host
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary The network element host sends the command
|
||||
// @Description The network element host sends the command
|
||||
// @Router /ne/host/cmd [post]
|
||||
func (s *NeHostController) Cmd(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
@@ -311,6 +331,16 @@ func (s *NeHostController) Cmd(c *gin.Context) {
|
||||
// 网元主机SSH方式检查服务器环境
|
||||
//
|
||||
// POST /checkBySSH
|
||||
//
|
||||
// @Tags network_element/host
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Checking the server environment by SSH method of Net Element Hosting
|
||||
// @Description Checking the server environment by SSH method of Net Element Hosting
|
||||
// @Router /ne/host/checkBySSH [post]
|
||||
func (s *NeHostController) CheckBySSH(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body model.NeHost
|
||||
@@ -402,6 +432,16 @@ func (s *NeHostController) CheckBySSH(c *gin.Context) {
|
||||
// 网元主机SSH方式授权免密发送
|
||||
//
|
||||
// POST /authorizedBySSH
|
||||
//
|
||||
// @Tags network_element/host
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element host SSH method of authorization for password-free sending
|
||||
// @Description Network element host SSH method of authorization for password-free sending
|
||||
// @Router /ne/host/authorizedBySSH [post]
|
||||
func (s *NeHostController) AuthorizedBySSH(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body model.NeHost
|
||||
|
||||
@@ -12,8 +12,8 @@ import (
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
"be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
)
|
||||
|
||||
// 实例化控制层 NeInfoController 结构体
|
||||
@@ -39,6 +39,17 @@ var mutex sync.Mutex
|
||||
// 网元信息状态
|
||||
//
|
||||
// GET /state
|
||||
//
|
||||
// @Tags network_element/info
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element information state
|
||||
// @Description Network element information state
|
||||
// @Router /ne/info/state [get]
|
||||
func (s *NeInfoController) State(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
@@ -91,6 +102,17 @@ func (s *NeInfoController) State(c *gin.Context) {
|
||||
// 网元neType和neID查询
|
||||
//
|
||||
// GET /byTypeAndID
|
||||
//
|
||||
// @Tags network_element/info
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element neType and neID queries
|
||||
// @Description Network element neType and neID queries
|
||||
// @Router /ne/info/byTypeAndID [get]
|
||||
func (s *NeInfoController) NeTypeAndID(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
@@ -113,6 +135,19 @@ func (s *NeInfoController) NeTypeAndID(c *gin.Context) {
|
||||
// 网元信息列表全部无分页
|
||||
//
|
||||
// GET /listAll
|
||||
//
|
||||
// @Tags network_element/info
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type"
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param bandStatus query boolean true "With status information"
|
||||
// @Param bandHost query boolean true "With host information"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary The list of network element information is all unpaginated
|
||||
// @Description The list of network element information is all unpaginated
|
||||
// @Router /ne/info/listAll [get]
|
||||
func (s *NeInfoController) ListAll(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
@@ -163,7 +198,7 @@ func (s *NeInfoController) Para5GFileWrite(c *gin.Context) {
|
||||
Content map[string]any `json:"content" binding:"required"` // 内容
|
||||
SyncNE []string `json:"syncNe"` // 同步到网元
|
||||
}
|
||||
if err := c.ShouldBindBodyWith(&body, binding.JSON); err != nil {
|
||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
return
|
||||
}
|
||||
@@ -209,7 +244,7 @@ func (s *NeInfoController) OAMFileWrite(c *gin.Context) {
|
||||
Content map[string]any `json:"content" binding:"required"` // 内容
|
||||
Sync bool `json:"sync"` // 同步到网元
|
||||
}
|
||||
if err := c.ShouldBindBodyWith(&body, binding.JSON); err != nil {
|
||||
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
return
|
||||
}
|
||||
@@ -232,6 +267,20 @@ func (s *NeInfoController) OAMFileWrite(c *gin.Context) {
|
||||
// 网元信息列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags network_element/info
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param bandStatus query boolean false "The result carries the state of the network element"
|
||||
// @Param neId query string false "NE ID"
|
||||
// @Param neType query string false "Ne Type"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element information list
|
||||
// @Description Network element information list
|
||||
// @Router /ne/info/list [get]
|
||||
func (s *NeInfoController) List(c *gin.Context) {
|
||||
query := ctx.QueryMapString(c)
|
||||
bandStatus := false
|
||||
@@ -245,6 +294,16 @@ func (s *NeInfoController) List(c *gin.Context) {
|
||||
// 网元信息
|
||||
//
|
||||
// GET /:infoId
|
||||
//
|
||||
// @Tags network_element/info
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param value path string true "Row ID"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element information
|
||||
// @Description Network element information
|
||||
// @Router /ne/info/{value} [get]
|
||||
func (s *NeInfoController) Info(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
infoId := c.Param("infoId")
|
||||
@@ -266,10 +325,20 @@ func (s *NeInfoController) Info(c *gin.Context) {
|
||||
// 网元信息新增
|
||||
//
|
||||
// POST /
|
||||
//
|
||||
// @Tags network_element/info
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element information addition
|
||||
// @Description Network element information addition
|
||||
// @Router /ne/info [post]
|
||||
func (s *NeInfoController) Add(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body model.NeInfo
|
||||
err := c.ShouldBindBodyWith(&body, binding.JSON)
|
||||
err := c.ShouldBindBodyWithJSON(&body)
|
||||
if err != nil || body.ID != "" {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
return
|
||||
@@ -344,10 +413,20 @@ func (s *NeInfoController) Add(c *gin.Context) {
|
||||
// 网元信息修改
|
||||
//
|
||||
// PUT /
|
||||
//
|
||||
// @Tags network_element/info
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element information modification
|
||||
// @Description Network element information modification
|
||||
// @Router /ne/info [put]
|
||||
func (s *NeInfoController) Edit(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body model.NeInfo
|
||||
err := c.ShouldBindBodyWith(&body, binding.JSON)
|
||||
err := c.ShouldBindBodyWithJSON(&body)
|
||||
if err != nil || body.ID == "" {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
return
|
||||
@@ -442,6 +521,16 @@ func (s *NeInfoController) Edit(c *gin.Context) {
|
||||
// 网元信息删除
|
||||
//
|
||||
// DELETE /:infoIds
|
||||
//
|
||||
// @Tags network_element/info
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param value path string true "Row ID, multiple separated by a , sign"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element information deletion
|
||||
// @Description Network element information deletion
|
||||
// @Router /ne/info/{value} [delete]
|
||||
func (s *NeInfoController) Remove(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
infoIds := c.Param("infoIds")
|
||||
|
||||
@@ -3,14 +3,14 @@ package controller
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"be.ems/src/framework/i18n"
|
||||
"be.ems/src/framework/utils/ctx"
|
||||
"be.ems/src/framework/vo/result"
|
||||
neFetchlink "be.ems/src/modules/network_element/fetch_link"
|
||||
"be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
)
|
||||
|
||||
// 实例化控制层 NeLicenseController 结构体
|
||||
@@ -30,6 +30,17 @@ type NeLicenseController struct {
|
||||
// 网元授权激活列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags network_element/license
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Net Element License Activation List
|
||||
// @Description Net Element License Activation List
|
||||
// @Router /ne/license/list [get]
|
||||
func (s *NeLicenseController) List(c *gin.Context) {
|
||||
querys := ctx.QueryMap(c)
|
||||
data := s.neLicenseService.SelectPage(querys)
|
||||
@@ -69,6 +80,17 @@ func (s *NeLicenseController) Info(c *gin.Context) {
|
||||
// 网元neType和neID查询
|
||||
//
|
||||
// GET /byTypeAndID
|
||||
//
|
||||
// @Tags network_element/license
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element neType and neID queries
|
||||
// @Description Network element neType and neID queries
|
||||
// @Router /ne/license/byTypeAndID [get]
|
||||
func (s *NeLicenseController) NeTypeAndID(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
@@ -93,6 +115,17 @@ func (s *NeLicenseController) NeTypeAndID(c *gin.Context) {
|
||||
// 网元授权激活授权申请码
|
||||
//
|
||||
// GET /code
|
||||
//
|
||||
// @Tags network_element/license
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network Element License Activation License Application Code
|
||||
// @Description Network Element License Activation License Application Code
|
||||
// @Router /ne/license/code [get]
|
||||
func (s *NeLicenseController) Code(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
@@ -131,10 +164,20 @@ func (s *NeLicenseController) Code(c *gin.Context) {
|
||||
// 网元授权激活授权文件替换
|
||||
//
|
||||
// POST /change
|
||||
//
|
||||
// @Tags network_element/license
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element authorization activation status
|
||||
// @Description Network element authorization activation status
|
||||
// @Router /ne/license/change [post]
|
||||
func (s *NeLicenseController) Change(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body model.NeLicense
|
||||
err := c.ShouldBindBodyWith(&body, binding.JSON)
|
||||
err := c.ShouldBindBodyWithJSON(&body)
|
||||
if err != nil || body.LicensePath == "" {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
return
|
||||
@@ -172,6 +215,17 @@ func (s *NeLicenseController) Change(c *gin.Context) {
|
||||
// 网元授权激活状态
|
||||
//
|
||||
// GET /state
|
||||
//
|
||||
// @Tags network_element/license
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element authorization activation status
|
||||
// @Description Network element authorization activation status
|
||||
// @Router /ne/license/state [get]
|
||||
func (s *NeLicenseController) State(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
|
||||
@@ -28,6 +28,17 @@ type NeSoftwareController struct {
|
||||
// 网元软件包列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags network_element/software
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary List of Network Element Software Packages
|
||||
// @Description List of Network Element Software Packages
|
||||
// @Router /ne/software/list [get]
|
||||
func (s *NeSoftwareController) List(c *gin.Context) {
|
||||
querys := ctx.QueryMap(c)
|
||||
data := s.neSoftwareService.SelectPage(querys)
|
||||
@@ -164,6 +175,16 @@ func (s *NeSoftwareController) Remove(c *gin.Context) {
|
||||
// 网元软件包设为网元新版本
|
||||
//
|
||||
// POST /newNeVersion
|
||||
//
|
||||
// @Tags network_element/software
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Net Element package set to Net Element new version
|
||||
// @Description Net Element package set to Net Element new version
|
||||
// @Router /ne/software/newNeVersion [post]
|
||||
func (s *NeSoftwareController) NewNeVersion(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body model.NeSoftware
|
||||
|
||||
@@ -55,6 +55,16 @@ func (s *NeVersionController) Info(c *gin.Context) {
|
||||
// 网元版本操作
|
||||
//
|
||||
// POST /operate
|
||||
//
|
||||
// @Tags network_element/version
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network element version operation
|
||||
// @Description Network element version operation
|
||||
// @Router /ne/version/operate [post]
|
||||
func (s *NeVersionController) Operate(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
|
||||
@@ -63,16 +63,31 @@ func AMFGnbStateList(neInfo model.NeInfo) ([]map[string]any, error) {
|
||||
resBytes, err := fetch.Get(neUrl, nil, 60_000)
|
||||
if err != nil {
|
||||
errStr := err.Error()
|
||||
logger.Warnf("AMFNbInfoList Get \"%s\"", neUrl)
|
||||
logger.Errorf("AMFNbInfoList %s", errStr)
|
||||
logger.Warnf("AMFGnbStateList Get \"%s\"", neUrl)
|
||||
logger.Errorf("AMFGnbStateList %s", errStr)
|
||||
return nil, fmt.Errorf("NeService AMF API Error")
|
||||
}
|
||||
|
||||
// 序列化结果 {"data":[{"name": "Gnb","address": "192.168.8.1","state": "INACTIVE"}]}
|
||||
// 序列化结果
|
||||
// {
|
||||
// "data": [
|
||||
// {
|
||||
// "index": 1,
|
||||
// "name": "Gnb",
|
||||
// "address": "192.168.8.1",
|
||||
// "position": "Area-B",
|
||||
// "offTime": "2024-12-30T16:31:57+08:00",
|
||||
// "onTime": "2024-12-30T15:41:59+08:00",
|
||||
// "state": "OFF",
|
||||
// "nbName": "SA",
|
||||
// "ueNum": 1
|
||||
// },
|
||||
// ]
|
||||
// }
|
||||
var resData map[string]any
|
||||
err = json.Unmarshal(resBytes, &resData)
|
||||
if err != nil {
|
||||
logger.Errorf("AMFNbInfoList Unmarshal %s", err.Error())
|
||||
logger.Errorf("AMFGnbStateList Unmarshal %s", err.Error())
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"be.ems/src/modules/network_element/model"
|
||||
)
|
||||
|
||||
// MMENbInfoList AMF基站信息
|
||||
// MMENbInfoList MME基站信息
|
||||
//
|
||||
// 查询参数 {"id":"7"}
|
||||
//
|
||||
@@ -32,7 +32,7 @@ func MMENbInfoList(neInfo model.NeInfo, data map[string]string) ([]map[string]an
|
||||
errStr := err.Error()
|
||||
logger.Warnf("MMENbInfoList Get \"%s\"", neUrl)
|
||||
logger.Errorf("MMENbInfoList %s", errStr)
|
||||
return nil, fmt.Errorf("NeService AMF API Error")
|
||||
return nil, fmt.Errorf("NeService MME API Error")
|
||||
}
|
||||
|
||||
// 序列化结果 {"data":[{"id":"7","name":"NR-SA-GNB","address":"192.168.5.100:60110","ueNum":0}]}
|
||||
@@ -54,3 +54,52 @@ func MMENbInfoList(neInfo model.NeInfo, data map[string]string) ([]map[string]an
|
||||
}
|
||||
return []map[string]any{}, nil
|
||||
}
|
||||
|
||||
// MMEEnbStateList MME基站状态信息,对比配置项enbList
|
||||
//
|
||||
// 返回结果 []
|
||||
func MMEEnbStateList(neInfo model.NeInfo) ([]map[string]any, error) {
|
||||
neUrl := fmt.Sprintf("http://%s:%d/api/rest/ueManagement/v1/elementType/mme/objectType/nbState", neInfo.IP, neInfo.Port)
|
||||
resBytes, err := fetch.Get(neUrl, nil, 60_000)
|
||||
if err != nil {
|
||||
errStr := err.Error()
|
||||
logger.Warnf("MMEEnbStateList Get \"%s\"", neUrl)
|
||||
logger.Errorf("MMEEnbStateList %s", errStr)
|
||||
return nil, fmt.Errorf("NeService MME API Error")
|
||||
}
|
||||
|
||||
// 序列化结果
|
||||
// {
|
||||
// "data": [
|
||||
// {
|
||||
// "index": 1,
|
||||
// "name": "Enb",
|
||||
// "address": "192.168.8.1",
|
||||
// "position": "Area-B",
|
||||
// "offTime": "2024-12-30T16:31:57+08:00",
|
||||
// "onTime": "2024-12-30T15:41:59+08:00",
|
||||
// "state": "OFF",
|
||||
// "nbName": "SA",
|
||||
// "ueNum": 1
|
||||
// },
|
||||
// ]
|
||||
// }
|
||||
var resData map[string]any
|
||||
err = json.Unmarshal(resBytes, &resData)
|
||||
if err != nil {
|
||||
logger.Errorf("MMEEnbStateList Unmarshal %s", err.Error())
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 固定返回字段,方便前端解析
|
||||
if v, ok := resData["data"]; ok && v != nil {
|
||||
if arr := v.([]any); len(arr) > 0 {
|
||||
result := make([]map[string]any, len(arr))
|
||||
for i, item := range arr {
|
||||
result[i] = item.(map[string]any)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
}
|
||||
return []map[string]any{}, nil
|
||||
}
|
||||
@@ -61,7 +61,8 @@ func SMFSubInfoList(neInfo model.NeInfo, data map[string]string) (map[string]any
|
||||
}
|
||||
// 固定页数量50条
|
||||
if v, ok := data["pageNum"]; ok && v != "" {
|
||||
query = append(query, fmt.Sprintf("pageNum=%s", v))
|
||||
pageNum := parse.Number(v)
|
||||
query = append(query, fmt.Sprintf("pageNum=%d", pageNum))
|
||||
}
|
||||
|
||||
if len(query) > 0 {
|
||||
|
||||
@@ -34,6 +34,18 @@ type SysConfigController struct {
|
||||
// 参数配置列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags system/config
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param configName query string false "configName"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Config Information List
|
||||
// @Description Config Information List
|
||||
// @Router /system/config/list [get]
|
||||
func (s *SysConfigController) List(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
querys := ctx.QueryMap(c)
|
||||
|
||||
@@ -31,6 +31,19 @@ type SysDeptController struct {
|
||||
// 部门列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags system/dept
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param deptId query string false "deptId"
|
||||
// @Param parentId query string false "parentId"
|
||||
// @Param deptName query string false "deptName"
|
||||
// @Param status query string false "status" Enums(0, 1)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Dept Information List
|
||||
// @Description Dept Information List
|
||||
// @Router /system/dept/list [get]
|
||||
func (s *SysDeptController) List(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var querys struct {
|
||||
|
||||
@@ -35,6 +35,18 @@ type SysDictDataController struct {
|
||||
// 字典数据列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags system/dict/data
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param dictLabel query string false "dictLabel"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Dictionary Data List
|
||||
// @Description Dictionary Data List
|
||||
// @Router /system/dict/data/list [get]
|
||||
func (s *SysDictDataController) List(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
querys := ctx.QueryMap(c)
|
||||
|
||||
@@ -34,6 +34,18 @@ type SysDictTypeController struct {
|
||||
// 字典类型列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags system/dict/type
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param dictName query string false "dictName"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Dictionary Type List
|
||||
// @Description Dictionary Type List
|
||||
// @Router /system/dict/type/list [get]
|
||||
func (s *SysDictTypeController) List(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
querys := ctx.QueryMap(c)
|
||||
|
||||
@@ -37,6 +37,18 @@ type SysLogLoginController struct {
|
||||
// 系统登录日志列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags system/log/login
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param userName query string false "userName"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary System Login Log List
|
||||
// @Description System Login Log List
|
||||
// @Router /system/log/login/list [get]
|
||||
func (s *SysLogLoginController) List(c *gin.Context) {
|
||||
querys := ctx.QueryMap(c)
|
||||
dataScopeSQL := ctx.LoginUserToDataScopeSQL(c, "d", "u")
|
||||
|
||||
@@ -35,6 +35,18 @@ type SysLogOperateController struct {
|
||||
// 操作日志列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags system/log/operate
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param title query string false "title"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary System Operation Log List
|
||||
// @Description System Operation Log List
|
||||
// @Router /system/log/operate/list [get]
|
||||
func (s *SysLogOperateController) List(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
querys := ctx.QueryMap(c)
|
||||
|
||||
@@ -32,6 +32,17 @@ type SysMenuController struct {
|
||||
// 菜单列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags system/menu
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param menuName query string false "menuName"
|
||||
// @Param status query string false "status" Enums(0, 1)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Menu Information List
|
||||
// @Description Menu Information List
|
||||
// @Router /system/menu/list [get]
|
||||
func (s *SysMenuController) List(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
query := model.SysMenu{}
|
||||
|
||||
@@ -35,6 +35,18 @@ type SysPostController struct {
|
||||
// 岗位列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags system/post
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param postName query string false "postName"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Post Information List
|
||||
// @Description Post Information List
|
||||
// @Router /system/post/list [get]
|
||||
func (s *SysPostController) List(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
querys := ctx.QueryMap(c)
|
||||
|
||||
@@ -44,6 +44,15 @@ type SysProfileController struct {
|
||||
// 个人信息
|
||||
//
|
||||
// GET /
|
||||
//
|
||||
// @Tags system/user/profile
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Personal Information
|
||||
// @Description Personal Information
|
||||
// @Router /system/user/profile [get]
|
||||
func (s *SysProfileController) Info(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
loginUser, err := ctx.LoginUser(c)
|
||||
@@ -86,6 +95,16 @@ func (s *SysProfileController) Info(c *gin.Context) {
|
||||
// 个人信息修改
|
||||
//
|
||||
// PUT /
|
||||
//
|
||||
// @Tags system/user/profile
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Personal Information Modification
|
||||
// @Description Personal Information Modification
|
||||
// @Router /system/user/profile [put]
|
||||
func (s *SysProfileController) UpdateProfile(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
@@ -183,6 +202,16 @@ func (s *SysProfileController) UpdateProfile(c *gin.Context) {
|
||||
// 个人重置密码
|
||||
//
|
||||
// PUT /updatePwd
|
||||
//
|
||||
// @Tags system/user/profile
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Personal Reset Password
|
||||
// @Description Personal Reset Password
|
||||
// @Router /system/user/profile/updatePwd [put]
|
||||
func (s *SysProfileController) UpdatePwd(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
@@ -249,6 +278,16 @@ func (s *SysProfileController) UpdatePwd(c *gin.Context) {
|
||||
// 个人头像上传
|
||||
//
|
||||
// POST /avatar
|
||||
//
|
||||
// @Tags system/user/profile
|
||||
// @Accept multipart/form-data
|
||||
// @Produce json
|
||||
// @Param file formData file true "The file to upload."
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Personal avatar upload
|
||||
// @Description Personal avatar upload
|
||||
// @Router /system/user/profile/avatar [post]
|
||||
func (s *SysProfileController) Avatar(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
formFile, err := c.FormFile("file")
|
||||
|
||||
@@ -41,6 +41,18 @@ type SysRoleController struct {
|
||||
// 角色列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags system/role
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param roleName query string false "roleName"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Role Information List
|
||||
// @Description Role Information List
|
||||
// @Router /system/role/list [get]
|
||||
func (s *SysRoleController) List(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
querys := ctx.QueryMap(c)
|
||||
|
||||
@@ -50,6 +50,18 @@ type SysUserController struct {
|
||||
// 用户信息列表
|
||||
//
|
||||
// GET /list
|
||||
//
|
||||
// @Tags system/user
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param userName query string false "userName"
|
||||
// @Param pageNum query number true "pageNum" default(1)
|
||||
// @Param pageSize query number true "pageSize" default(10)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary User Information List
|
||||
// @Description User Information List
|
||||
// @Router /system/user/list [get]
|
||||
func (s *SysUserController) List(c *gin.Context) {
|
||||
querys := ctx.QueryMap(c)
|
||||
dataScopeSQL := ctx.LoginUserToDataScopeSQL(c, "d", "u")
|
||||
|
||||
@@ -34,6 +34,18 @@ type IPerfController struct {
|
||||
// iperf 版本信息
|
||||
//
|
||||
// GET /v
|
||||
//
|
||||
// @Tags tool/iperf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param version query string true "Version" Enums(V2, V3)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary iperf version information
|
||||
// @Description iperf version information
|
||||
// @Router /tool/iperf/v [get]
|
||||
func (s *IPerfController) Version(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
@@ -58,6 +70,16 @@ func (s *IPerfController) Version(c *gin.Context) {
|
||||
// iperf 软件安装
|
||||
//
|
||||
// POST /i
|
||||
//
|
||||
// @Tags tool/iperf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary iperf software installation
|
||||
// @Description iperf software installation
|
||||
// @Router /tool/iperf/i [post]
|
||||
func (s *IPerfController) Install(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
@@ -80,6 +102,20 @@ func (s *IPerfController) Install(c *gin.Context) {
|
||||
// iperf 软件运行
|
||||
//
|
||||
// GET /run
|
||||
//
|
||||
// @Tags tool/iperf
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param cols query number false "Terminal line characters" default(120)
|
||||
// @Param rows query number false "Terminal display lines" default(40)
|
||||
// @Param access_token query string true "Authorization"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary (ws://) iperf software running
|
||||
// @Description (ws://) iperf software running
|
||||
// @Router /tool/iperf/run [get]
|
||||
func (s *IPerfController) Run(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
|
||||
@@ -34,6 +34,16 @@ type PingController struct {
|
||||
// ping 基本信息运行
|
||||
//
|
||||
// POST /
|
||||
//
|
||||
// @Tags tool/ping
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Ping for Basic Information Running
|
||||
// @Description Ping for Basic Information Running
|
||||
// @Router /tool/ping [post]
|
||||
func (s *PingController) Statistics(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body model.Ping
|
||||
@@ -53,6 +63,16 @@ func (s *PingController) Statistics(c *gin.Context) {
|
||||
// ping 传统UNIX运行
|
||||
//
|
||||
// GET /
|
||||
//
|
||||
// @Tags tool/ping
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param access_token query string true "Authorization"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary (ws://) Ping for Local UNIX running
|
||||
// @Description (ws://) Ping for Local UNIX running
|
||||
// @Router /tool/ping [get]
|
||||
func (s *PingController) StatisticsOn(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
// 登录用户信息
|
||||
@@ -84,6 +104,17 @@ func (s *PingController) StatisticsOn(c *gin.Context) {
|
||||
// ping 网元端版本信息
|
||||
//
|
||||
// GET /v
|
||||
//
|
||||
// @Tags tool/ping
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Ping for version information on the network element side
|
||||
// @Description Ping for version information on the network element side
|
||||
// @Router /tool/ping/v [get]
|
||||
func (s *PingController) Version(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
@@ -106,6 +137,20 @@ func (s *PingController) Version(c *gin.Context) {
|
||||
// ping 网元端UNIX运行
|
||||
//
|
||||
// GET /run
|
||||
//
|
||||
// @Tags tool/ping
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param cols query number false "Terminal line characters" default(120)
|
||||
// @Param rows query number false "Terminal display lines" default(40)
|
||||
// @Param access_token query string true "Authorization"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary (ws://) Ping for UNIX runs on the network element side
|
||||
// @Description (ws://) Ping for UNIX runs on the network element side
|
||||
// @Router /tool/ping/run [get]
|
||||
func (s *PingController) Run(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
|
||||
@@ -4,16 +4,14 @@ import (
|
||||
"be.ems/src/framework/i18n"
|
||||
"be.ems/src/framework/utils/ctx"
|
||||
"be.ems/src/framework/vo/result"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
traceService "be.ems/src/modules/trace/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
)
|
||||
|
||||
// 实例化控制层 TCPdumpController 结构体
|
||||
var NewTCPdump = &TCPdumpController{
|
||||
tcpdumpService: traceService.NewTCPdump,
|
||||
neInfoService: neService.NewNeInfo,
|
||||
}
|
||||
|
||||
// 信令抓包
|
||||
@@ -21,12 +19,21 @@ var NewTCPdump = &TCPdumpController{
|
||||
// PATH /tcpdump
|
||||
type TCPdumpController struct {
|
||||
tcpdumpService *traceService.TCPdump // 信令抓包服务
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
}
|
||||
|
||||
// 网元抓包PACP 开始
|
||||
//
|
||||
// POST /start
|
||||
//
|
||||
// @Tags trace/tcpdump
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network Element Capture Packet PACP Start
|
||||
// @Description Network Element Capture Packet PACP Start
|
||||
// @Router /trace/tcpdump/start [post]
|
||||
func (s *TCPdumpController) DumpStart(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
@@ -34,7 +41,7 @@ func (s *TCPdumpController) DumpStart(c *gin.Context) {
|
||||
NeId string `json:"neId" binding:"required"` // 网元ID
|
||||
Cmd string `json:"cmd" binding:"required"` // 命令 "-n -s 0 -v"
|
||||
}
|
||||
err := c.ShouldBindBodyWith(&body, binding.JSON)
|
||||
err := c.ShouldBindBodyWithJSON(&body)
|
||||
if err != nil {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
return
|
||||
@@ -51,6 +58,16 @@ func (s *TCPdumpController) DumpStart(c *gin.Context) {
|
||||
// 网元抓包PACP 结束
|
||||
//
|
||||
// POST /stop
|
||||
//
|
||||
// @Tags trace/tcpdump
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary Network Element Capture Packet PACP Stop
|
||||
// @Description Network Element Capture Packet PACP Stop
|
||||
// @Router /trace/tcpdump/stop [post]
|
||||
func (s *TCPdumpController) DumpStop(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
@@ -58,7 +75,7 @@ func (s *TCPdumpController) DumpStop(c *gin.Context) {
|
||||
NeId string `json:"neId" binding:"required"` // 网元ID
|
||||
TaskCode string `json:"taskCode" binding:"required"` // 任务码,停止任务并查看日志信息
|
||||
}
|
||||
err := c.ShouldBindBodyWith(&body, binding.JSON)
|
||||
err := c.ShouldBindBodyWithJSON(&body)
|
||||
if err != nil {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
return
|
||||
@@ -75,6 +92,16 @@ func (s *TCPdumpController) DumpStop(c *gin.Context) {
|
||||
// UPF标准版内部抓包
|
||||
//
|
||||
// POST /upf
|
||||
//
|
||||
// @Tags trace/tcpdump
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param data body object true "Request Param"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Security TokenAuth
|
||||
// @Summary UPF Standard Edition Internal Grab Bag
|
||||
// @Description UPF Standard Edition Internal Grab Bag
|
||||
// @Router /trace/tcpdump/upf [post]
|
||||
func (s *TCPdumpController) UPFTrace(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var body struct {
|
||||
@@ -82,7 +109,7 @@ func (s *TCPdumpController) UPFTrace(c *gin.Context) {
|
||||
NeId string `json:"neId" binding:"required"` // 网元ID
|
||||
Cmd string `json:"cmd" binding:"required"` // 命令
|
||||
}
|
||||
err := c.ShouldBindBodyWith(&body, binding.JSON)
|
||||
err := c.ShouldBindBodyWithJSON(&body)
|
||||
if err != nil {
|
||||
c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400")))
|
||||
return
|
||||
|
||||
@@ -32,6 +32,15 @@ type WSController struct {
|
||||
// WS 通用
|
||||
//
|
||||
// GET /?subGroupIDs=0
|
||||
//
|
||||
// @Tags ws
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param subGroupID query string false "Subscribe to message groups, multiple separated by commas"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Summary (ws://) Generic
|
||||
// @Description (ws://) Generic
|
||||
// @Router /ws [get]
|
||||
func (s *WSController) WS(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
|
||||
|
||||
@@ -17,6 +17,19 @@ import (
|
||||
// ShellView 终端交互式文件内容查看
|
||||
//
|
||||
// GET /view
|
||||
//
|
||||
// @Tags ws
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param neType query string true "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC)
|
||||
// @Param neId query string true "NE ID" default(001)
|
||||
// @Param cols query number false "Terminal line characters" default(120)
|
||||
// @Param rows query number false "Terminal display lines" default(40)
|
||||
// @Param access_token query string true "Authorization"
|
||||
// @Success 200 {object} object "Response Results"
|
||||
// @Summary (ws://) Terminal Interactive File Content Viewing
|
||||
// @Description (ws://) Terminal Interactive File Content Viewing
|
||||
// @Router /ws/view [get]
|
||||
func (s *WSController) ShellView(c *gin.Context) {
|
||||
language := ctx.AcceptLanguage(c)
|
||||
var query struct {
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
# Makefile for OMC-OMC-crontask project
|
||||
|
||||
PROJECT = OMC
|
||||
VERSION = 2.2501.3
|
||||
VERSION = 2.2501.4
|
||||
LIBDIR = be.ems/lib
|
||||
BINNAME = sshsvc
|
||||
|
||||
|
||||
+5661
-38
File diff suppressed because it is too large.
Load diff
+5661
-38
File diff suppressed because it is too large.
Load diff
+3684
-26
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user