diff --git a/src/modules/network_element/controller/ne_info.go b/src/modules/network_element/controller/ne_info.go index 0b448e24..53005ee0 100644 --- a/src/modules/network_element/controller/ne_info.go +++ b/src/modules/network_element/controller/ne_info.go @@ -120,7 +120,8 @@ func (s *NeInfoController) ListAll(c *gin.Context) { var querys struct { NeType string `form:"neType"` NeId string `form:"neId"` - BandStatus string `form:"bandStatus"` + BandStatus bool `form:"bandStatus"` + BandHost bool `form:"bandHost"` } if err := c.ShouldBindQuery(&querys); err != nil { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) @@ -135,8 +136,7 @@ func (s *NeInfoController) ListAll(c *gin.Context) { if querys.NeId != "" { ne.NeId = querys.NeId } - bandStatus := parse.Boolean(querys.BandStatus) - neList := s.neInfoService.SelectList(ne, bandStatus) + neList := s.neInfoService.SelectList(ne, querys.BandStatus, querys.BandHost) if len(neList) == 0 { c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) return diff --git a/src/modules/network_element/service/ne_info.go b/src/modules/network_element/service/ne_info.go index ffbc2253..c8033457 100644 --- a/src/modules/network_element/service/ne_info.go +++ b/src/modules/network_element/service/ne_info.go @@ -27,7 +27,8 @@ type INeInfo interface { // SelectList 查询列表 // // bandStatus 带状态信息 - SelectList(ne model.NeInfo, bandStatus bool) []model.NeInfo + // bandHost 带主机信息 + SelectList(ne model.NeInfo, bandStatus bool, bandHost bool) []model.NeInfo // SelectByIds 通过ID查询 // diff --git a/src/modules/network_element/service/ne_info.impl.go b/src/modules/network_element/service/ne_info.impl.go index 47796819..c60a8506 100644 --- a/src/modules/network_element/service/ne_info.impl.go +++ b/src/modules/network_element/service/ne_info.impl.go @@ -93,7 +93,7 @@ func (r *NeInfoImpl) SelectNeInfoByRmuid(rmUid string) model.NeInfo { } } } else { - neInfos := r.SelectList(neInfo, false) + neInfos := r.SelectList(neInfo, false, false) for _, v := range neInfos { key := fmt.Sprintf("%s%s:%s", cachekey.NE_KEY, strings.ToUpper(v.NeType), v.NeId) redis.Del("", key) @@ -116,37 +116,7 @@ func (r *NeInfoImpl) SelectPage(query map[string]any, bandStatus bool) map[strin // 网元直连读取网元服务状态 if bandStatus { rows := data["rows"].([]model.NeInfo) - arr := &rows - for i := range *arr { - v := (*arr)[i] - result, err := NeState(v) - if err != nil { - (*arr)[i].ServerState = map[string]any{ - "online": false, - } - // 网元状态设置为离线 - if v.Status != "0" { - v.Status = "0" - (*arr)[i].Status = v.Status - r.neInfoRepository.Update(v) - } - continue - } - result["online"] = true - (*arr)[i].ServerState = result - // 网元状态设置为在线 - if v.Status != "1" { - // 下发网管配置信息给网元 - _, err = NeConfigOMC(v) - if err == nil { - v.Status = "1" - } else { - v.Status = "2" - } - (*arr)[i].Status = v.Status - r.neInfoRepository.Update(v) - } - } + r.bandNeStatus(&rows) } return data @@ -155,50 +125,70 @@ func (r *NeInfoImpl) SelectPage(query map[string]any, bandStatus bool) map[strin // SelectList 查询列表 // // bandStatus 带状态信息 -func (r *NeInfoImpl) SelectList(ne model.NeInfo, bandStatus bool) []model.NeInfo { +// bandHost 带主机信息 +func (r *NeInfoImpl) SelectList(ne model.NeInfo, bandStatus bool, bandHost bool) []model.NeInfo { list := r.neInfoRepository.SelectList(ne) // 网元直连读取网元服务状态 if bandStatus { - neList := &list - for i := range *neList { - v := (*neList)[i] - result, err := NeState(v) - if err != nil { - (*neList)[i].ServerState = map[string]any{ - "online": false, - } - // 网元状态设置为离线 - if v.Status != "0" { - v.Status = "0" - (*neList)[i].Status = v.Status - r.neInfoRepository.Update(v) - } - continue - } - result["online"] = true - (*neList)[i].ServerState = result - // 网元状态设置为在线 - if v.Status != "0" { - // 下发网管配置信息给网元 - _, err = NeConfigOMC(v) - if err == nil { - v.Status = "1" - } else { - v.Status = "2" - } - (*neList)[i].Status = v.Status - r.neInfoRepository.Update(v) - } - } + r.bandNeStatus(&list) + } + + // 网元主机信息 + if bandHost { + r.bandNeHosts(&list) } return list } +// bandNeStatus 网元列表项数据带网元服务状态 +func (r *NeInfoImpl) bandNeStatus(arr *[]model.NeInfo) { + for i := range *arr { + v := (*arr)[i] + result, err := NeState(v) + if err != nil { + (*arr)[i].ServerState = map[string]any{ + "online": false, + } + // 网元状态设置为离线 + if v.Status != "0" { + v.Status = "0" + (*arr)[i].Status = v.Status + r.neInfoRepository.Update(v) + } + continue + } + result["online"] = true + (*arr)[i].ServerState = result + // 网元状态设置为在线 + if v.Status != "1" { + // 下发网管配置信息给网元 + _, err = NeConfigOMC(v) + if err == nil { + v.Status = "1" + } else { + v.Status = "2" + } + (*arr)[i].Status = v.Status + r.neInfoRepository.Update(v) + } + } +} + +// bandNeHosts 网元列表项数据带网元主机信息 +func (r *NeInfoImpl) bandNeHosts(arr *[]model.NeInfo) { + for i := range *arr { + v := (*arr)[i] + if v.HostIDs != "" { + (*arr)[i].Hosts = NewNeHostImpl.neHostRepository.SelectByIds(strings.Split(v.HostIDs, ",")) + } + } +} + // SelectByIds 通过ID查询 // -// bandStatus 带主机信息 +// bandHost 带主机信息 func (r *NeInfoImpl) SelectById(infoId string, bandHost bool) model.NeInfo { if infoId == "" { return model.NeInfo{}