feat: 网元列表查询带主机连接信息参数

This commit is contained in:
TsMask
2024-04-18 09:38:41 +08:00
parent c80fe5df67
commit 4164332755
3 changed files with 60 additions and 69 deletions

View File

@@ -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

View File

@@ -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查询
//

View File

@@ -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{}