From b55f27eb9bf745b0f0baadd1c418b006d0dc7cfe Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 21 Aug 2025 17:30:52 +0800 Subject: [PATCH] =?UTF-8?q?ssql:=20=E6=96=B0=E5=A2=9E=E6=A0=B8=E5=BF=83?= =?UTF-8?q?=E7=BD=91=E8=A1=A8=E9=80=BB=E8=BE=91=E5=8A=9F=E8=83=BD=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/database/std/install/core_info.sql | 24 +++++++++ src/modules/core/controller/core_info.go | 67 ++++++++++++++++++++---- src/modules/core/core.go | 6 ++- src/modules/core/repository/core_info.go | 23 ++++++++ src/modules/core/service/core_info.go | 27 ++++++---- src/modules/ne/service/ne_config.go | 6 +-- 6 files changed, 128 insertions(+), 25 deletions(-) create mode 100644 build/database/std/install/core_info.sql diff --git a/build/database/std/install/core_info.sql b/build/database/std/install/core_info.sql new file mode 100644 index 00000000..32546d8f --- /dev/null +++ b/build/database/std/install/core_info.sql @@ -0,0 +1,24 @@ +-- +-- Table structure for table `core_info` +-- +DROP TABLE IF EXISTS `core_info`; +CREATE TABLE `core_info` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '核心网ID', + `core_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网唯一标识', + `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网名称', + `sn` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '核心网序列号', + `omc_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'OMC安装生成的唯一编码', + `time_zone` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '时区 Asia/Hong_Kong', + `longitude` float DEFAULT '0' COMMENT '经度 -180 to 180', + `latitude` float DEFAULT '0' COMMENT '纬度 -90 to 90', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '地址', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注', + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者', + `create_time` bigint DEFAULT '0' COMMENT '创建时间', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者', + `update_time` bigint DEFAULT '0' COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `uk_core_name_sn` (`name`,`sn`) USING BTREE COMMENT '唯一名称和序号定义' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='核心网_基础信息表'; + +-- Dump completed on 2025-06-04 15:26:56 diff --git a/src/modules/core/controller/core_info.go b/src/modules/core/controller/core_info.go index d961139c..fa0acaa4 100644 --- a/src/modules/core/controller/core_info.go +++ b/src/modules/core/controller/core_info.go @@ -15,14 +15,61 @@ import ( // 实例化控制层 CoreInfoController 结构体 var NewCoreInfo = &CoreInfoController{ - CoreInfoService: service.NewCoreInfo, + coreInfoService: service.NewCoreInfo, } // 核心网信息请求 // // PATH /core type CoreInfoController struct { - CoreInfoService *service.CoreInfo //核心网信息服务 + coreInfoService *service.CoreInfo //核心网信息服务 +} + +// 核心网信息列表全部无分页 +// +// GET /list/all +// +// @Tags core/info +// @Accept json +// @Produce json +// @Param coreUid query string true "CoreUID" default(8I73Y01Z) +// @Param name query string true "name" default(5AKF59BZ) +// @Param sn query string true "sn" +// @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 /core/info/list/all [get] +func (s CoreInfoController) ListAll(c *gin.Context) { + language := reqctx.AcceptLanguage(c) + var querys struct { + CoreUID string `form:"coreUid"` // 核心网唯一标识 + Name string `form:"name"` // 名称 + SN string `form:"sn"` + } + if err := c.ShouldBindQuery(&querys); err != nil { + errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err)) + c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs)) + return + } + + // 查询实体参数 + core := model.CoreInfo{} + if querys.CoreUID != "" { + core.CoreUID = querys.CoreUID + } + if querys.Name != "" { + core.Name = querys.Name + } + if querys.SN != "" { + core.SN = querys.SN + } + neList := s.coreInfoService.Find(core) + if len(neList) == 0 { + c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) + return + } + c.JSON(200, resp.OkData(neList)) } // 核心网信息列表 @@ -30,7 +77,7 @@ type CoreInfoController struct { // GET /list func (s CoreInfoController) List(c *gin.Context) { query := reqctx.QueryMap(c) - rows, total := s.CoreInfoService.FindByPage(query) + rows, total := s.coreInfoService.FindByPage(query) c.JSON(200, resp.OkData(map[string]any{"total": total, "rows": rows})) } @@ -44,7 +91,7 @@ func (s CoreInfoController) Info(c *gin.Context) { return } - neHost := s.CoreInfoService.FindById(id) + neHost := s.coreInfoService.FindById(id) if neHost.ID != id { c.JSON(200, resp.ErrMsg("not found data")) return @@ -65,14 +112,14 @@ func (s CoreInfoController) Add(c *gin.Context) { } // 检查属性值唯一 - uniqueInfo := s.CoreInfoService.CheckUniqueGroupTitle(body.Name, body.SN, 0) + uniqueInfo := s.coreInfoService.CheckUniqueGroupTitle(body.Name, body.SN, 0) if !uniqueInfo { c.JSON(200, resp.ErrMsg("name/SN already exists")) return } body.CreateBy = reqctx.LoginUserToUserName(c) - insertId := s.CoreInfoService.Insert(body) + insertId := s.coreInfoService.Insert(body) if insertId > 0 { c.JSON(200, resp.Ok(nil)) return @@ -92,14 +139,14 @@ func (s CoreInfoController) Edit(c *gin.Context) { } // 检查属性值唯一 - uniqueHostCmd := s.CoreInfoService.CheckUniqueGroupTitle(body.Name, body.SN, body.ID) + uniqueHostCmd := s.coreInfoService.CheckUniqueGroupTitle(body.Name, body.SN, body.ID) if !uniqueHostCmd { c.JSON(200, resp.ErrMsg("name/SN already exists")) return } // 检查是否存在 - coreInfo := s.CoreInfoService.FindById(body.ID) + coreInfo := s.coreInfoService.FindById(body.ID) if coreInfo.ID != body.ID { c.JSON(200, resp.ErrMsg("not found data")) return @@ -113,7 +160,7 @@ func (s CoreInfoController) Edit(c *gin.Context) { coreInfo.Address = body.Address coreInfo.Remark = body.Remark body.UpdateBy = reqctx.LoginUserToUserName(c) - rows := s.CoreInfoService.Update(coreInfo) + rows := s.coreInfoService.Update(coreInfo) if rows > 0 { c.JSON(200, resp.Ok(nil)) return @@ -140,7 +187,7 @@ func (s CoreInfoController) Remove(c *gin.Context) { ids = append(ids, parse.Number(v)) } - rows, err := s.CoreInfoService.DeleteByIds(ids) + rows, err := s.coreInfoService.DeleteByIds(ids) if err != nil { c.JSON(200, resp.ErrMsg(i18n.TKey(language, err.Error()))) return diff --git a/src/modules/core/core.go b/src/modules/core/core.go index 10a74e1e..74d28c33 100644 --- a/src/modules/core/core.go +++ b/src/modules/core/core.go @@ -16,6 +16,10 @@ func Setup(router *gin.Engine) { // 核心网信息 coreInfoGroup := router.Group("/core/info") { + coreInfoGroup.GET("/list/all", + middleware.AuthorizeUser(nil), + controller.NewCoreInfo.ListAll, + ) coreInfoGroup.GET("/list", middleware.AuthorizeUser(nil), controller.NewCoreInfo.List, @@ -37,7 +41,7 @@ func Setup(router *gin.Engine) { collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.coreInfo", collectlogs.BUSINESS_TYPE_UPDATE)), controller.NewCoreInfo.Edit, ) - coreInfoGroup.DELETE(":id", + coreInfoGroup.DELETE("/:id", middleware.AuthorizeUser(nil), collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.coreInfo", collectlogs.BUSINESS_TYPE_DELETE)), controller.NewCoreInfo.Remove, diff --git a/src/modules/core/repository/core_info.go b/src/modules/core/repository/core_info.go index 0ea5f5af..3af7a240 100644 --- a/src/modules/core/repository/core_info.go +++ b/src/modules/core/repository/core_info.go @@ -49,6 +49,29 @@ func (r CoreInfo) SelectByPage(query map[string]string) ([]model.CoreInfo, int64 return rows, total } +// Select 查询集合 +func (r CoreInfo) Select(param model.CoreInfo) []model.CoreInfo { + tx := db.DB("").Model(&model.CoreInfo{}) + // 查询条件拼接 + if param.CoreUID != "" { + tx = tx.Where("core_uid = ?", param.CoreUID) + } + if param.Name != "" { + tx = tx.Where("name = ?", param.Name) + } + if param.SN != "" { + tx = tx.Where("sn = ?", param.SN) + } + + // 查询数据 + rows := []model.CoreInfo{} + if err := tx.Order("id asc").Find(&rows).Error; err != nil { + logger.Errorf("query find err => %v", err.Error()) + return rows + } + return rows +} + // SelectByIds 通过ID查询 func (r CoreInfo) SelectByIds(ids []int64) []model.CoreInfo { rows := []model.CoreInfo{} diff --git a/src/modules/core/service/core_info.go b/src/modules/core/service/core_info.go index 16d12c83..aa3372c5 100644 --- a/src/modules/core/service/core_info.go +++ b/src/modules/core/service/core_info.go @@ -12,17 +12,22 @@ import ( // 实例化服务层 CoreInfo 结构体 var NewCoreInfo = &CoreInfo{ - CoreInfoRepository: repository.NewCoreInfo, + coreInfoRepository: repository.NewCoreInfo, } // CoreInfo 核心网信息 服务层处理 type CoreInfo struct { - CoreInfoRepository *repository.CoreInfo // 核心网信息表 + coreInfoRepository *repository.CoreInfo // 核心网信息表 } // FindByPage 分页查询列表数据 func (r CoreInfo) FindByPage(query map[string]string) ([]model.CoreInfo, int64) { - return r.CoreInfoRepository.SelectByPage(query) + return r.coreInfoRepository.SelectByPage(query) +} + +// Find 查询列表 +func (r CoreInfo) Find(core model.CoreInfo) []model.CoreInfo { + return r.coreInfoRepository.Select(core) } // FindById 通过ID查询 @@ -30,9 +35,9 @@ func (r CoreInfo) FindById(id int64) model.CoreInfo { if id <= 0 { return model.CoreInfo{} } - neHosts := r.CoreInfoRepository.SelectByIds([]int64{id}) - if len(neHosts) > 0 { - return neHosts[0] + rows := r.coreInfoRepository.SelectByIds([]int64{id}) + if len(rows) > 0 { + return rows[0] } return model.CoreInfo{} } @@ -44,24 +49,24 @@ func (r CoreInfo) Insert(param model.CoreInfo) int64 { param.OmcId = machine.Code } - return r.CoreInfoRepository.Insert(param) + return r.coreInfoRepository.Insert(param) } // Update 修改信息 func (r CoreInfo) Update(param model.CoreInfo) int64 { - return r.CoreInfoRepository.Update(param) + return r.coreInfoRepository.Update(param) } // DeleteByIds 批量删除信息 func (r CoreInfo) DeleteByIds(ids []int64) (int64, error) { // 检查是否存在 - rows := r.CoreInfoRepository.SelectByIds(ids) + rows := r.coreInfoRepository.SelectByIds(ids) if len(rows) <= 0 { return 0, fmt.Errorf("coreInfo.noData") } if len(rows) == len(ids) { - rows := r.CoreInfoRepository.DeleteByIds(ids) + rows := r.coreInfoRepository.DeleteByIds(ids) return rows, nil } // 删除信息失败! @@ -70,7 +75,7 @@ func (r CoreInfo) DeleteByIds(ids []int64) (int64, error) { // CheckUniqueGroupTitle 校验唯一名称和序号 func (r CoreInfo) CheckUniqueGroupTitle(name, sn string, id int64) bool { - uniqueId := r.CoreInfoRepository.CheckUnique(model.CoreInfo{ + uniqueId := r.coreInfoRepository.CheckUnique(model.CoreInfo{ Name: name, SN: sn, }) diff --git a/src/modules/ne/service/ne_config.go b/src/modules/ne/service/ne_config.go index 5c523268..8e1e0a94 100644 --- a/src/modules/ne/service/ne_config.go +++ b/src/modules/ne/service/ne_config.go @@ -128,9 +128,9 @@ func (r *NeConfig) FindById(id int64) model.NeConfig { if id <= 0 { return model.NeConfig{} } - neHosts := r.neConfigRepository.SelectByIds([]int64{id}) - if len(neHosts) > 0 { - return neHosts[0] + rows := r.neConfigRepository.SelectByIds([]int64{id}) + if len(rows) > 0 { + return rows[0] } return model.NeConfig{} }