Merge remote-tracking branch 'origin/main' into multi-tenant
This commit is contained in:
13
CHANGELOG.md
13
CHANGELOG.md
@@ -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');
|
||||
|
||||
2
makefile
2
makefile
@@ -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
mkpkg.sh
2
mkpkg.sh
@@ -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,7 +1,7 @@
|
||||
# Makefile for rest agent project
|
||||
|
||||
PROJECT = OMC
|
||||
VERSION = 2.2501.3
|
||||
VERSION = 2.2501.4
|
||||
PLATFORM = amd64
|
||||
ARMPLATFORM = aarch64
|
||||
BUILDDIR = ../../build
|
||||
|
||||
@@ -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]
|
||||
@@ -46,10 +46,10 @@ func (s *ChartGraphController) GroupNames(c *gin.Context) {
|
||||
// @Tags chart
|
||||
// @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 group query string true "Group"
|
||||
// @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]
|
||||
@@ -117,12 +117,12 @@ func (s *ChartGraphController) Save(c *gin.Context) {
|
||||
// @Tags chart
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param group path string true "Group"
|
||||
// @Success 200 {object} map[string]any "data"
|
||||
// @Security ApiKeyAuth
|
||||
// @Param group path string true "Group"
|
||||
// @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
|
||||
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"`
|
||||
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"`
|
||||
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"`
|
||||
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"`
|
||||
}
|
||||
|
||||
@@ -10,8 +10,9 @@ 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:"-"`
|
||||
|
||||
TenantID string `json:"tenantID" gorm:"-"`
|
||||
TenantName string `json:"tenantName" gorm:"-"`
|
||||
}
|
||||
|
||||
// TableName 表名称
|
||||
@@ -21,17 +22,18 @@ func (*UEEventMME) TableName() string {
|
||||
|
||||
// UEEventMMEQuery UE会话对象MME查询参数结构体
|
||||
type UEEventMMEQuery struct {
|
||||
NeType string `json:"neType" form:"neType" binding:"required"` // 网元类型, 暂时支持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"`
|
||||
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"`
|
||||
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"`
|
||||
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"`
|
||||
}
|
||||
|
||||
@@ -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,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
|
||||
|
||||
|
||||
5699
swagger2docs/docs.go
5699
swagger2docs/docs.go
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user