From abfe3227f2923ad8cf4c23c32491b9dc3ccbdf03 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 27 May 2024 17:11:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E5=8C=85=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- database/install/ne_software.sql | 18 ++++----- database/upgrade/upg_ne_software.sql | 23 +++++------ .../network_element/controller/ne_software.go | 8 ++-- .../network_element/model/ne_software.go | 2 +- .../repository/ne_software.impl.go | 39 ++++++++++++------- .../service/ne_software.impl.go | 8 ++-- 6 files changed, 54 insertions(+), 44 deletions(-) diff --git a/database/install/ne_software.sql b/database/install/ne_software.sql index 01f1d43d..839c12dd 100644 --- a/database/install/ne_software.sql +++ b/database/install/ne_software.sql @@ -10,17 +10,17 @@ DROP TABLE IF EXISTS `ne_software`; CREATE TABLE `ne_software` ( `id` int NOT NULL AUTO_INCREMENT, - `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型', + `type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包类型', `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包名称', - `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '包路径', + `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '包路径', `version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包版本', - `description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '包说明', - `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', - `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间', - `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', - `update_time` bigint NULL DEFAULT 0 COMMENT '更新时间', + `description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '包说明', + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者', + `create_time` bigint DEFAULT '0' COMMENT '创建时间', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者', + `update_time` bigint DEFAULT '0' COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, - UNIQUE INDEX `uk_type_name_version`(`ne_type` ASC, `name` ASC, `version` ASC) USING BTREE COMMENT '唯一网元类型和文件名版本是否唯一' -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元软件包' ROW_FORMAT = DYNAMIC; + UNIQUE KEY `uk_type_name_version` (`type`,`name`,`version`) USING BTREE COMMENT '唯一网元类型和文件名版本是否唯一' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='网元软件包'; SET FOREIGN_KEY_CHECKS=1; diff --git a/database/upgrade/upg_ne_software.sql b/database/upgrade/upg_ne_software.sql index fed4d7b7..b869275e 100644 --- a/database/upgrade/upg_ne_software.sql +++ b/database/upgrade/upg_ne_software.sql @@ -5,18 +5,18 @@ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- CREATE TABLE IF NOT EXISTS `ne_software` ( `id` int NOT NULL AUTO_INCREMENT, - `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型', + `type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包类型', `name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包名称', - `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '包路径', + `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '包路径', `version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包版本', - `description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '包说明', - `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者', - `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间', - `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', - `update_time` bigint NULL DEFAULT 0 COMMENT '更新时间', + `description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '包说明', + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者', + `create_time` bigint DEFAULT '0' COMMENT '创建时间', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者', + `update_time` bigint DEFAULT '0' COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, - UNIQUE INDEX `uk_type_name_version`(`ne_type` ASC, `name` ASC, `version` ASC) USING BTREE COMMENT '唯一网元类型和文件名版本是否唯一' -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网元软件包' ROW_FORMAT = DYNAMIC; + UNIQUE KEY `uk_type_name_version` (`type`,`name`,`version`) USING BTREE COMMENT '唯一网元类型和文件名版本是否唯一' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='网元软件包'; -- 20240511前旧表更新 ALTER TABLE `ne_software` COMMENT = '网元软件包'; @@ -25,15 +25,16 @@ ALTER TABLE `ne_software` ADD COLUMN IF NOT EXISTS `description` varchar(500) CH ALTER TABLE `ne_software` ADD COLUMN IF NOT EXISTS `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者' AFTER `description`; ALTER TABLE `ne_software` ADD COLUMN IF NOT EXISTS `create_time` bigint NULL DEFAULT 0 COMMENT '创建时间' AFTER `create_by`; ALTER TABLE `ne_software` ADD COLUMN IF NOT EXISTS `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者' AFTER `create_time`; -ALTER TABLE `ne_software` MODIFY COLUMN `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型' AFTER `id`; +ALTER TABLE `ne_software` ADD COLUMN IF NOT EXISTS `type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包类型' AFTER `id`; ALTER TABLE `ne_software` MODIFY COLUMN `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '包路径' AFTER `name`; ALTER TABLE `ne_software` MODIFY COLUMN `version` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '包版本' AFTER `path`; ALTER TABLE `ne_software` MODIFY COLUMN `update_time` bigint NULL DEFAULT 0 COMMENT '更新时间' AFTER `update_by`; +ALTER TABLE `ne_software` DROP COLUMN IF EXISTS `ne_type`; ALTER TABLE `ne_software` DROP COLUMN IF EXISTS `file_name`; ALTER TABLE `ne_software` DROP COLUMN IF EXISTS `md5_sum`; ALTER TABLE `ne_software` DROP COLUMN IF EXISTS `status`; ALTER TABLE `ne_software` DROP COLUMN IF EXISTS `comment`; ALTER TABLE `ne_software` DROP COLUMN IF EXISTS `patch_time`; -ALTER TABLE `ne_software` ADD UNIQUE INDEX IF NOT EXISTS `uk_type_name_version`(`ne_type` ASC, `name` ASC, `version` ASC) USING BTREE COMMENT '唯一网元类型和文件名版本是否唯一'; +ALTER TABLE `ne_software` ADD UNIQUE INDEX IF NOT EXISTS `uk_type_name_version`(`type` ASC, `name` ASC, `version` ASC) USING BTREE COMMENT '唯一网元类型和文件名版本是否唯一'; SET FOREIGN_KEY_CHECKS=1; diff --git a/src/modules/network_element/controller/ne_software.go b/src/modules/network_element/controller/ne_software.go index d5658d7c..85bfeb33 100644 --- a/src/modules/network_element/controller/ne_software.go +++ b/src/modules/network_element/controller/ne_software.go @@ -71,7 +71,7 @@ func (s *NeSoftwareController) Add(c *gin.Context) { // 找到已存在的删除后重新添加 neSoftwares := s.neSoftwareService.SelectList(model.NeSoftware{ - NeType: body.NeType, + Type: body.Type, Name: body.Name, Version: body.Version, }) @@ -111,7 +111,7 @@ func (s *NeSoftwareController) Edit(c *gin.Context) { } // 检查属性值唯一 - uniqueSoftware := s.neSoftwareService.CheckUniqueTypeAndNameAndVersion(body.NeType, body.Name, body.Version, body.ID) + uniqueSoftware := s.neSoftwareService.CheckUniqueTypeAndNameAndVersion(body.Type, body.Name, body.Version, body.ID) if !uniqueSoftware { // 网元软件包操作【%s】失败,网元类型与文件名版本已存在 msg := i18n.TTemplate(language, "neSoftware.errKeyExists", map[string]any{"name": body.Name}) @@ -176,14 +176,14 @@ func (s *NeSoftwareController) NewNeVersion(c *gin.Context) { // 找到已存在的软件包信息 neSoftwares := s.neSoftwareService.SelectList(model.NeSoftware{ - NeType: body.NeType, + Type: body.Type, Name: body.Name, Version: body.Version, }) if len(neSoftwares) > 0 { neSoftware := neSoftwares[0] s.neSoftwareService.UpdateVersions(neSoftware, model.NeVersion{ - NeType: neSoftware.NeType, + NeType: neSoftware.Type, UpdateBy: ctx.LoginUserToUserName(c), }) c.JSON(200, result.Ok(nil)) diff --git a/src/modules/network_element/model/ne_software.go b/src/modules/network_element/model/ne_software.go index 3eaf9569..353e0c95 100644 --- a/src/modules/network_element/model/ne_software.go +++ b/src/modules/network_element/model/ne_software.go @@ -3,7 +3,7 @@ package model // NeSoftware 网元软件包 ne_software type NeSoftware struct { ID string `json:"id" gorm:"id"` - NeType string `json:"neType" gorm:"ne_type" binding:"required"` // 网元类型 + Type string `json:"type" gorm:"type" binding:"required"` // 包类型 Name string `json:"name" gorm:"name" binding:"required"` // 包名称 Path string `json:"path" gorm:"path"` // 包路径 Version string `json:"version" gorm:"version" binding:"required"` // 包版本 diff --git a/src/modules/network_element/repository/ne_software.impl.go b/src/modules/network_element/repository/ne_software.impl.go index 133dd420..edb520c1 100644 --- a/src/modules/network_element/repository/ne_software.impl.go +++ b/src/modules/network_element/repository/ne_software.impl.go @@ -15,12 +15,12 @@ import ( // 实例化数据层 NewNeSoftware 结构体 var NewNeSoftwareImpl = &NeSoftwareImpl{ selectSql: `select - id, ne_type, name, path, version, description, create_by, create_time, update_by, update_time + id, type, name, path, version, description, create_by, create_time, update_by, update_time from ne_software`, resultMap: map[string]string{ "id": "ID", - "ne_type": "NeType", + "type": "Type", "name": "Name", "path": "Path", "version": "Version", @@ -60,9 +60,18 @@ func (r *NeSoftwareImpl) SelectPage(query map[string]any) map[string]any { // 查询条件拼接 var conditions []string var params []any - if v, ok := query["neType"]; ok && v != "" { - conditions = append(conditions, "ne_type = ?") - params = append(params, strings.Trim(v.(string), " ")) + if v, ok := query["type"]; ok && v != "" { + softwareType := v.(string) + if strings.Contains(softwareType, ",") { + softwareTypeArr := strings.Split(softwareType, ",") + placeholder := repo.KeyPlaceholderByQuery(len(softwareTypeArr)) + conditions = append(conditions, "type in ("+placeholder+")") + parameters := repo.ConvertIdsSlice(softwareTypeArr) + params = append(params, parameters...) + } else { + conditions = append(conditions, "type = ?") + params = append(params, strings.Trim(softwareType, " ")) + } } if v, ok := query["name"]; ok && v != "" { conditions = append(conditions, "name like concat(?, '%')") @@ -122,9 +131,9 @@ func (r *NeSoftwareImpl) SelectList(neSoftware model.NeSoftware) []model.NeSoftw // 查询条件拼接 var conditions []string var params []any - if neSoftware.NeType != "" { - conditions = append(conditions, "ne_type = ?") - params = append(params, neSoftware.NeType) + if neSoftware.Type != "" { + conditions = append(conditions, "type = ?") + params = append(params, neSoftware.Type) } if neSoftware.Path != "" { conditions = append(conditions, "path = ?") @@ -175,9 +184,9 @@ func (r *NeSoftwareImpl) CheckUniqueTypeAndNameAndVersion(neSoftware model.NeSof // 查询条件拼接 var conditions []string var params []any - if neSoftware.NeType != "" { - conditions = append(conditions, "ne_type = ?") - params = append(params, neSoftware.NeType) + if neSoftware.Type != "" { + conditions = append(conditions, "type = ?") + params = append(params, neSoftware.Type) } if neSoftware.Version != "" { conditions = append(conditions, "version = ?") @@ -213,8 +222,8 @@ func (r *NeSoftwareImpl) CheckUniqueTypeAndNameAndVersion(neSoftware model.NeSof func (r *NeSoftwareImpl) Insert(neSoftware model.NeSoftware) string { // 参数拼接 params := make(map[string]any) - if neSoftware.NeType != "" { - params["ne_type"] = neSoftware.NeType + if neSoftware.Type != "" { + params["type"] = neSoftware.Type } if neSoftware.Name != "" { params["name"] = neSoftware.Name @@ -262,8 +271,8 @@ func (r *NeSoftwareImpl) Insert(neSoftware model.NeSoftware) string { func (r *NeSoftwareImpl) Update(neSoftware model.NeSoftware) int64 { // 参数拼接 params := make(map[string]any) - if neSoftware.NeType != "" { - params["ne_type"] = neSoftware.NeType + if neSoftware.Type != "" { + params["type"] = neSoftware.Type } if neSoftware.Name != "" { params["name"] = neSoftware.Name diff --git a/src/modules/network_element/service/ne_software.impl.go b/src/modules/network_element/service/ne_software.impl.go index 8ac52094..a1e23929 100644 --- a/src/modules/network_element/service/ne_software.impl.go +++ b/src/modules/network_element/service/ne_software.impl.go @@ -47,7 +47,7 @@ func (r *NeSoftwareImpl) Insert(neSoftware model.NeSoftware) string { inserId := r.neSoftwareRepository.Insert(neSoftware) if inserId != "" { // 更新同类型的新包版本 - neVersions := NewNeVersionImpl.SelectList(model.NeVersion{NeType: neSoftware.NeType}) + neVersions := NewNeVersionImpl.SelectList(model.NeVersion{NeType: neSoftware.Type}) if len(neVersions) > 0 { for _, neVersion := range neVersions { neVersion.NewName = neSoftware.Name @@ -68,7 +68,7 @@ func (r *NeSoftwareImpl) Update(neSoftware model.NeSoftware) int64 { if rows > 0 { // 更新同类型的新包版本 neVersions := NewNeVersionImpl.SelectList(model.NeVersion{ - NeType: neSoftware.NeType, + NeType: neSoftware.Type, Status: "3", }) if len(neVersions) > 0 { @@ -112,9 +112,9 @@ func (r *NeSoftwareImpl) DeleteByIds(ids []string) (int64, error) { } // CheckUniqueTypeAndNameAndVersion 校验网元类型和文件名版本是否唯一 -func (r *NeSoftwareImpl) CheckUniqueTypeAndNameAndVersion(neType, name, version, id string) bool { +func (r *NeSoftwareImpl) CheckUniqueTypeAndNameAndVersion(softwareType, name, version, id string) bool { uniqueId := r.neSoftwareRepository.CheckUniqueTypeAndNameAndVersion(model.NeSoftware{ - NeType: neType, + Type: softwareType, Name: name, Version: version, })