From 0f3d5ab606e01cfb161d720d5c832b3ae9b0ade8 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 29 Aug 2025 18:49:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20license=E4=BF=A1=E6=81=AF=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=94=A8=E6=88=B7=E6=95=B0/=E5=9F=BA=E7=AB=99?= =?UTF-8?q?=E6=95=B0=E5=AD=97=E6=AE=B5=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/database/lite/install/ne_license.sql | 5 +++-- build/database/lite/upgrade/upg_ne_license.sql | 9 ++++++--- build/database/std/install/ne_license.sql | 5 +++-- build/database/std/upgrade/upg_ne_license.sql | 9 ++++++--- .../network_element/controller/ne_info.go | 18 ++++++++++++------ .../network_element/controller/ne_license.go | 13 ++++++++----- .../network_element/fetch_link/ne_state.go | 18 ++++++++++++++++-- .../network_element/model/ne_license.go | 3 ++- 8 files changed, 56 insertions(+), 24 deletions(-) diff --git a/build/database/lite/install/ne_license.sql b/build/database/lite/install/ne_license.sql index 37480406..9960a5ff 100644 --- a/build/database/lite/install/ne_license.sql +++ b/build/database/lite/install/ne_license.sql @@ -8,9 +8,10 @@ CREATE TABLE "ne_license" ( "ne_id" text(32) NOT NULL, "activation_request_code" text(255) NOT NULL, "license_path" text(255), - "capability" integer, "serial_num" text(32), "expiry_date" text(32), + "ue_number" integer, + "nb_number" integer, "status" text(32), "remark" text(255), "create_by" text(50), @@ -32,4 +33,4 @@ ON "ne_license" ( -- ---------------------------- -- Records of ne_license -- ---------------------------- -INSERT INTO "ne_license" VALUES (1, 'OMC', '001', '', '', 0, '', '', '0', '', 'system', 1713928436971, '', 0); +INSERT INTO "ne_license" VALUES (1, 'OMC', '001', '', '', '', '', 0, 0, '0', '', 'system', 1713928436971, '', 0); diff --git a/build/database/lite/upgrade/upg_ne_license.sql b/build/database/lite/upgrade/upg_ne_license.sql index d7b6c28c..55d377f0 100644 --- a/build/database/lite/upgrade/upg_ne_license.sql +++ b/build/database/lite/upgrade/upg_ne_license.sql @@ -7,9 +7,10 @@ CREATE TABLE IF NOT EXISTS "ne_license" ( "ne_id" text(32) NOT NULL, "activation_request_code" text(255) NOT NULL, "license_path" text(255), - "capability" integer, "serial_num" text(32), "expiry_date" text(32), + "ue_number" integer, + "nb_number" integer, "status" text(32), "remark" text(255), "create_by" text(50), @@ -29,9 +30,11 @@ ON "ne_license" ( ); -- ADD COLUMN -ALTER TABLE ne_license ADD COLUMN capability integer; +ALTER TABLE ne_license DROP COLUMN capability; +ALTER TABLE ne_license ADD COLUMN ue_number integer; +ALTER TABLE ne_license ADD COLUMN nb_number integer; -- ---------------------------- -- Records of ne_license -- ---------------------------- -INSERT OR IGNORE INTO "ne_license" VALUES (1, 'OMC', '001', '', '', 0, '', '', '0', '', 'system', 1713928436971, '', 0); +INSERT OR IGNORE INTO "ne_license" VALUES (1, 'OMC', '001', '', '', '', '', 0, 0, '0', '', 'system', 1713928436971, '', 0); diff --git a/build/database/std/install/ne_license.sql b/build/database/std/install/ne_license.sql index b5414da5..6c21c82b 100644 --- a/build/database/std/install/ne_license.sql +++ b/build/database/std/install/ne_license.sql @@ -13,9 +13,10 @@ CREATE TABLE `ne_license` ( `ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID', `activation_request_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '激活申请代码', `license_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '激活授权文件', - `capability` bigint DEFAULT '0' COMMENT '用户容量', `serial_num` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '序列号', `expiry_date` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '许可证到期日期', + `ue_number` bigint DEFAULT '0' COMMENT '用户容量', + `nb_number` bigint DEFAULT '0' COMMENT '基站容量', `status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '状态 0无效 1有效', `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注', `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者', @@ -27,7 +28,7 @@ CREATE TABLE `ne_license` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元_授权激活信息'; -- 初始数据对应网元 -INSERT INTO `ne_license` VALUES (1, 'OMC', '001', '', '', 0, '', '', '0', '', 'system', 1713928436971, '', 0); +INSERT INTO `ne_license` VALUES (1, 'OMC', '001', '', '', '', '', 0, 0, '0', '', 'system', 1713928436971, '', 0); SET FOREIGN_KEY_CHECKS=1; diff --git a/build/database/std/upgrade/upg_ne_license.sql b/build/database/std/upgrade/upg_ne_license.sql index 1a964bc8..7106e260 100644 --- a/build/database/std/upgrade/upg_ne_license.sql +++ b/build/database/std/upgrade/upg_ne_license.sql @@ -10,9 +10,10 @@ CREATE TABLE IF NOT EXISTS `ne_license` ( `ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID', `activation_request_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '激活申请代码', `license_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '激活授权文件', - `capability` bigint DEFAULT '0' COMMENT '用户容量', `serial_num` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '序列号', `expiry_date` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '许可证到期日期', + `ue_number` bigint DEFAULT '0' COMMENT '用户容量', + `nb_number` bigint DEFAULT '0' COMMENT '基站容量', `status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '状态 0无效 1有效', `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注', `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者', @@ -28,7 +29,9 @@ CREATE TABLE IF NOT EXISTS `ne_license` ( -- ---------------------------- ALTER TABLE `ne_license` DROP INDEX `uk_type_id`; ALTER TABLE `ne_license` MODIFY COLUMN `id` bigint(20) NOT NULL FIRST; -ALTER TABLE `ne_license` ADD COLUMN `capability` bigint(20) NULL DEFAULT 0 COMMENT '容量' AFTER `license_path`; +ALTER TABLE `ne_license` DROP COLUMN `capability`; +ALTER TABLE `ne_license` ADD COLUMN `ue_number` bigint(20) NULL DEFAULT 0 COMMENT '用户容量' AFTER `expiry_date`; +ALTER TABLE `ne_license` ADD COLUMN `nb_number` bigint(20) NULL DEFAULT 0 COMMENT '基站容量' AFTER `ue_number`; ALTER TABLE `ne_license` ADD UNIQUE INDEX `uk_lic_type_id`(`ne_type`, `ne_id`) USING BTREE COMMENT '唯一网元类型和网元ID'; ALTER TABLE `ne_license` COMMENT = '网元_授权激活信息'; ALTER TABLE `ne_license` MODIFY COLUMN `id` bigint(20) NOT NULL AUTO_INCREMENT; @@ -36,7 +39,7 @@ ALTER TABLE `ne_license` MODIFY COLUMN `id` bigint(20) NOT NULL AUTO_INCREMENT; -- ---------------------------- -- Data for ne_license -- ---------------------------- -INSERT IGNORE INTO `ne_license` VALUES (1, 'OMC', '001', '', '', 0, '', '', '0', '', 'system', 1713928436971, '', 0); +INSERT IGNORE INTO `ne_license` VALUES (1, 'OMC', '001', '', '', '', '', 0, 0, '0', '', 'system', 1713928436971, '', 0); SET FOREIGN_KEY_CHECKS=1; diff --git a/src/modules/network_element/controller/ne_info.go b/src/modules/network_element/controller/ne_info.go index 0a221b81..3b334382 100644 --- a/src/modules/network_element/controller/ne_info.go +++ b/src/modules/network_element/controller/ne_info.go @@ -399,9 +399,6 @@ func (s NeInfoController) Add(c *gin.Context) { neVersion.Path = "-" neVersion.Version = fmt.Sprint(v) } - if v, ok := body.ServerState["capability"]; ok && v != nil { - neLicense.Capability = parse.Number(v) - } if v, ok := body.ServerState["sn"]; ok && v != nil { neLicense.SerialNum = fmt.Sprint(v) } @@ -409,6 +406,12 @@ func (s NeInfoController) Add(c *gin.Context) { neLicense.ExpiryDate = fmt.Sprint(v) neLicense.Status = "1" } + if v, ok := body.ServerState["ueNumber"]; ok && v != nil { + neLicense.UeNumber = parse.Number(v) + } + if v, ok := body.ServerState["nbNumber"]; ok && v != nil { + neLicense.NbNumber = parse.Number(v) + } } s.neVersionService.Insert(neVersion) @@ -501,9 +504,6 @@ func (s NeInfoController) Edit(c *gin.Context) { neVersion.Version = fmt.Sprint(v) neVersion.UpdateBy = loginUserName } - if v, ok := body.ServerState["capability"]; ok && v != nil { - neLicense.Capability = parse.Number(v) - } if v, ok := body.ServerState["sn"]; ok && v != nil { neLicense.SerialNum = fmt.Sprint(v) } @@ -512,6 +512,12 @@ func (s NeInfoController) Edit(c *gin.Context) { neLicense.Status = "1" neLicense.UpdateBy = loginUserName } + if v, ok := body.ServerState["ueNumber"]; ok && v != nil { + neLicense.UeNumber = parse.Number(v) + } + if v, ok := body.ServerState["nbNumber"]; ok && v != nil { + neLicense.NbNumber = parse.Number(v) + } } if neVersion.ID <= 0 { diff --git a/src/modules/network_element/controller/ne_license.go b/src/modules/network_element/controller/ne_license.go index cf34f9b3..8edfba42 100644 --- a/src/modules/network_element/controller/ne_license.go +++ b/src/modules/network_element/controller/ne_license.go @@ -157,9 +157,10 @@ func (s *NeLicenseController) Code(c *gin.Context) { if licensePath != "" { neLicense.LicensePath = licensePath } else { - neLicense.Capability = 0 neLicense.SerialNum = "" neLicense.ExpiryDate = "" + neLicense.UeNumber = 0 + neLicense.NbNumber = 0 neLicense.Status = "0" } neLicense.UpdateBy = reqctx.LoginUserToUserName(c) @@ -261,9 +262,10 @@ func (s *NeLicenseController) State(c *gin.Context) { } if neState, err := neFetchlink.NeState(neInfo); err == nil && neState["sn"] != nil { neLicense.Status = "1" - neLicense.Capability = parse.Number(neState["capability"]) neLicense.SerialNum = fmt.Sprint(neState["sn"]) neLicense.ExpiryDate = fmt.Sprint(neState["expire"]) + neLicense.UeNumber = parse.Number(neState["ueNumber"]) + neLicense.NbNumber = parse.Number(neState["nbNumber"]) } else { neLicense.Status = "0" } @@ -280,9 +282,10 @@ func (s *NeLicenseController) State(c *gin.Context) { if neLicense.Status == "1" { c.JSON(200, resp.OkData(map[string]any{ - "capability": neLicense.Capability, - "sn": neLicense.SerialNum, - "expire": neLicense.ExpiryDate, + "sn": neLicense.SerialNum, + "expire": neLicense.ExpiryDate, + "ueNumber": neLicense.UeNumber, + "nbNumber": neLicense.NbNumber, })) return } diff --git a/src/modules/network_element/fetch_link/ne_state.go b/src/modules/network_element/fetch_link/ne_state.go index 7cd50e6c..c1e2b3e7 100644 --- a/src/modules/network_element/fetch_link/ne_state.go +++ b/src/modules/network_element/fetch_link/ne_state.go @@ -8,6 +8,7 @@ import ( "be.ems/src/framework/logger" "be.ems/src/framework/utils/fetch" + "be.ems/src/framework/utils/parse" "be.ems/src/modules/network_element/model" ) @@ -39,7 +40,7 @@ func NeState(neInfo model.NeInfo) (map[string]any, error) { } } - return map[string]any{ + info := map[string]any{ "neType": neInfo.NeType, "neId": neInfo.NeId, "neName": neInfo.NeName, @@ -55,5 +56,18 @@ func NeState(neInfo model.NeInfo) (map[string]any, error) { "cpu": resData["cpuUsage"], "mem": resData["memUsage"], "disk": resData["diskSpace"], - }, nil + } + + if ueNumber, ok := resData["capability"]; ok { + info["ueNumber"] = parse.Number(ueNumber) + } else { + info["ueNumber"] = 0 + } + if nbNumber, ok := resData["nbNumber"]; ok { + info["nbNumber"] = parse.Number(nbNumber) + } else { + info["nbNumber"] = 0 + } + + return info, nil } diff --git a/src/modules/network_element/model/ne_license.go b/src/modules/network_element/model/ne_license.go index 9731d8f0..b0d3fa47 100644 --- a/src/modules/network_element/model/ne_license.go +++ b/src/modules/network_element/model/ne_license.go @@ -7,9 +7,10 @@ type NeLicense struct { NeId string `json:"neId" gorm:"column:ne_id" binding:"required"` // 网元ID ActivationRequestCode string `json:"activationRequestCode" gorm:"column:activation_request_code"` // 激活申请代码 LicensePath string `json:"licensePath" gorm:"column:license_path"` // 激活授权文件 - Capability int64 `json:"capability" gorm:"column:capability"` // 容量 SerialNum string `json:"serialNum" gorm:"column:serial_num"` // 序列号 ExpiryDate string `json:"expiryDate" gorm:"column:expiry_date"` // 许可证到期日期 + UeNumber int64 `json:"ueNumber" gorm:"ue_number"` // 用户容量 + NbNumber int64 `json:"nbNumber" gorm:"nb_number"` // 基站容量 Status string `json:"status" gorm:"column:status"` // 状态 0无效 1有效 Remark string `json:"remark" gorm:"column:remark"` // 备注 CreateBy string `json:"createBy" gorm:"column:create_by"` // 创建者