feat: 网元类型缓存ByNeTypeAndNeID
This commit is contained in:
@@ -16,6 +16,7 @@ import (
|
|||||||
"ems.agt/lib/services"
|
"ems.agt/lib/services"
|
||||||
"ems.agt/restagent/config"
|
"ems.agt/restagent/config"
|
||||||
tokenConst "ems.agt/src/framework/constants/token"
|
tokenConst "ems.agt/src/framework/constants/token"
|
||||||
|
neService "ems.agt/src/modules/network_element/service"
|
||||||
|
|
||||||
"github.com/go-resty/resty/v2"
|
"github.com/go-resty/resty/v2"
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
@@ -158,6 +159,9 @@ func PostNeInfo(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 刷新缓存,不存在结构体网元Id空字符串
|
||||||
|
neService.NewNeInfoImpl.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
||||||
|
|
||||||
mapRow := make(map[string]interface{})
|
mapRow := make(map[string]interface{})
|
||||||
row := map[string]interface{}{"affectedRows": affected}
|
row := map[string]interface{}{"affectedRows": affected}
|
||||||
mapRow["data"] = row
|
mapRow["data"] = row
|
||||||
@@ -205,6 +209,10 @@ func PostNeInfo(w http.ResponseWriter, r *http.Request) {
|
|||||||
} else if affected <= 0 {
|
} else if affected <= 0 {
|
||||||
log.Infof("Not record affected to insert ne_info")
|
log.Infof("Not record affected to insert ne_info")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 刷新缓存,不存在结构体网元Id空字符串
|
||||||
|
neService.NewNeInfoImpl.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
||||||
|
|
||||||
services.ResponseStatusOK204NoContent(w)
|
services.ResponseStatusOK204NoContent(w)
|
||||||
return
|
return
|
||||||
default:
|
default:
|
||||||
@@ -261,6 +269,9 @@ func PutNeInfo(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 刷新缓存,不存在结构体网元Id空字符串
|
||||||
|
neService.NewNeInfoImpl.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
||||||
|
|
||||||
mapRow := make(map[string]interface{})
|
mapRow := make(map[string]interface{})
|
||||||
row := map[string]interface{}{"affectedRows": affected}
|
row := map[string]interface{}{"affectedRows": affected}
|
||||||
mapRow["data"] = row
|
mapRow["data"] = row
|
||||||
@@ -309,6 +320,10 @@ func PutNeInfo(w http.ResponseWriter, r *http.Request) {
|
|||||||
} else if affected <= 0 {
|
} else if affected <= 0 {
|
||||||
log.Infof("Not record affected to insert ne_info")
|
log.Infof("Not record affected to insert ne_info")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 刷新缓存,不存在结构体网元Id空字符串
|
||||||
|
neService.NewNeInfoImpl.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
||||||
|
|
||||||
services.ResponseStatusOK204NoContent(w)
|
services.ResponseStatusOK204NoContent(w)
|
||||||
return
|
return
|
||||||
default:
|
default:
|
||||||
@@ -390,6 +405,9 @@ func DeleteNeInfo(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 刷新缓存,不存在结构体网元Id空字符串
|
||||||
|
neService.NewNeInfoImpl.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
|
||||||
|
|
||||||
mapRow := make(map[string]interface{})
|
mapRow := make(map[string]interface{})
|
||||||
row := map[string]interface{}{"affectedRows": affected}
|
row := map[string]interface{}{"affectedRows": affected}
|
||||||
mapRow["data"] = row
|
mapRow["data"] = row
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
"ems.agt/src/framework/middleware/collectlogs"
|
"ems.agt/src/framework/middleware/collectlogs"
|
||||||
"ems.agt/src/framework/middleware/repeat"
|
"ems.agt/src/framework/middleware/repeat"
|
||||||
"ems.agt/src/modules/network_element/controller"
|
"ems.agt/src/modules/network_element/controller"
|
||||||
|
"ems.agt/src/modules/network_element/service"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -14,6 +15,9 @@ import (
|
|||||||
func Setup(router *gin.Engine) {
|
func Setup(router *gin.Engine) {
|
||||||
logger.Infof("开始加载 ====> network_element 模块路由")
|
logger.Infof("开始加载 ====> network_element 模块路由")
|
||||||
|
|
||||||
|
// 启动时需要的初始参数
|
||||||
|
InitLoad()
|
||||||
|
|
||||||
neGroup := router.Group("/ne")
|
neGroup := router.Group("/ne")
|
||||||
{
|
{
|
||||||
neGroup.GET("/info",
|
neGroup.GET("/info",
|
||||||
@@ -155,18 +159,10 @@ func Setup(router *gin.Engine) {
|
|||||||
controller.NewUDMSub.Import,
|
controller.NewUDMSub.Import,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// 性能统计信息
|
|
||||||
kpiGroup := neGroup.Group("/kpi")
|
// InitLoad 初始参数
|
||||||
{
|
func InitLoad() {
|
||||||
kpiGroup.GET("/title",
|
// 启动时,清除缓存-网元类型
|
||||||
middleware.PreAuthorize(nil),
|
service.NewNeInfoImpl.ClearNeCacheByNeType("*")
|
||||||
controller.NewPerfKPI.Title,
|
|
||||||
)
|
|
||||||
kpiGroup.GET("/data",
|
|
||||||
middleware.PreAuthorize(nil),
|
|
||||||
controller.NewPerfKPI.GoldKPI,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,12 @@ type INeInfo interface {
|
|||||||
// SelectNeInfoByNeTypeAndNeID 通过ne_type和ne_id查询网元信息
|
// SelectNeInfoByNeTypeAndNeID 通过ne_type和ne_id查询网元信息
|
||||||
SelectNeInfoByNeTypeAndNeID(neType, neID string) model.NeInfo
|
SelectNeInfoByNeTypeAndNeID(neType, neID string) model.NeInfo
|
||||||
|
|
||||||
|
// RefreshByNeTypeAndNeID 通过ne_type和ne_id刷新redis中的缓存
|
||||||
|
RefreshByNeTypeAndNeID(neType, neID string) model.NeInfo
|
||||||
|
|
||||||
|
// ClearNeCacheByNeType 清除网元类型缓存
|
||||||
|
ClearNeCacheByNeType(neType string) bool
|
||||||
|
|
||||||
// SelectNeList 查询网元列表
|
// SelectNeList 查询网元列表
|
||||||
SelectNeList(ne model.NeInfo, bandStatus bool) []model.NeInfo
|
SelectNeList(ne model.NeInfo, bandStatus bool) []model.NeInfo
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"ems.agt/src/framework/constants/cachekey"
|
||||||
|
"ems.agt/src/framework/redis"
|
||||||
"ems.agt/src/modules/network_element/model"
|
"ems.agt/src/modules/network_element/model"
|
||||||
"ems.agt/src/modules/network_element/repository"
|
"ems.agt/src/modules/network_element/repository"
|
||||||
)
|
)
|
||||||
@@ -18,7 +23,50 @@ type NeInfoImpl struct {
|
|||||||
|
|
||||||
// SelectNeInfoByNeTypeAndNeID 通过ne_type和ne_id查询网元信息
|
// SelectNeInfoByNeTypeAndNeID 通过ne_type和ne_id查询网元信息
|
||||||
func (r *NeInfoImpl) SelectNeInfoByNeTypeAndNeID(neType, neID string) model.NeInfo {
|
func (r *NeInfoImpl) SelectNeInfoByNeTypeAndNeID(neType, neID string) model.NeInfo {
|
||||||
return r.neInfoRepository.SelectNeInfoByNeTypeAndNeID(neType, neID)
|
var neInfo model.NeInfo
|
||||||
|
key := fmt.Sprintf("%s%s.%s", cachekey.NE_KEY, neType, neID)
|
||||||
|
jsonStr, _ := redis.Get("", key)
|
||||||
|
if len(jsonStr) > 7 {
|
||||||
|
err := json.Unmarshal([]byte(jsonStr), &neInfo)
|
||||||
|
if err != nil {
|
||||||
|
neInfo = model.NeInfo{}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
neInfo = r.neInfoRepository.SelectNeInfoByNeTypeAndNeID(neType, neID)
|
||||||
|
if neInfo.NeId == neID {
|
||||||
|
redis.Del("", key)
|
||||||
|
values, _ := json.Marshal(neInfo)
|
||||||
|
redis.Set("", key, string(values))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return neInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
// RefreshByNeTypeAndNeID 通过ne_type和ne_id刷新redis中的缓存
|
||||||
|
func (r *NeInfoImpl) RefreshByNeTypeAndNeID(neType, neID string) model.NeInfo {
|
||||||
|
var neInfo model.NeInfo
|
||||||
|
key := fmt.Sprintf("%s%s.%s", cachekey.NE_KEY, neType, neID)
|
||||||
|
redis.Del("", key)
|
||||||
|
neInfo = r.neInfoRepository.SelectNeInfoByNeTypeAndNeID(neType, neID)
|
||||||
|
if neInfo.NeId == neID {
|
||||||
|
values, _ := json.Marshal(neInfo)
|
||||||
|
redis.Set("", key, string(values))
|
||||||
|
}
|
||||||
|
return neInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
// ClearNeCacheByNeType 清除网元类型缓存
|
||||||
|
func (r *NeInfoImpl) ClearNeCacheByNeType(neType string) bool {
|
||||||
|
key := fmt.Sprintf("%s*", cachekey.NE_KEY)
|
||||||
|
if neType != "*" {
|
||||||
|
key = fmt.Sprintf("%s%s*", cachekey.NE_KEY, neType)
|
||||||
|
}
|
||||||
|
keys, err := redis.GetKeys("", key)
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
delOk, _ := redis.DelKeys("", keys)
|
||||||
|
return delOk
|
||||||
}
|
}
|
||||||
|
|
||||||
// SelectNeList 查询网元列表
|
// SelectNeList 查询网元列表
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ type ISysMenu interface {
|
|||||||
// SelectMenuPermsByUserId 根据用户ID查询权限
|
// SelectMenuPermsByUserId 根据用户ID查询权限
|
||||||
SelectMenuPermsByUserId(userId string) []string
|
SelectMenuPermsByUserId(userId string) []string
|
||||||
|
|
||||||
// SelectMenuPermsByUserId 根据用户ID查询权限
|
// SelectMenuTreeByUserId 根据用户ID查询权限
|
||||||
SelectMenuTreeByUserId(userId string) []model.SysMenu
|
SelectMenuTreeByUserId(userId string) []model.SysMenu
|
||||||
|
|
||||||
// SelectMenuTreeSelectByUserId 查询菜单树结构信息
|
// SelectMenuTreeSelectByUserId 查询菜单树结构信息
|
||||||
|
|||||||
Reference in New Issue
Block a user