fix: kpi support multi-tenant
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package result
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"be.ems/src/framework/constants/result"
|
||||
)
|
||||
|
||||
@@ -54,13 +56,21 @@ func Err(v map[string]any) map[string]any {
|
||||
}
|
||||
|
||||
// 响应失败结果信息
|
||||
func ErrMsg(msg string) map[string]any {
|
||||
func ErrMsg(msg string, fmt ...any) map[string]any {
|
||||
args := make(map[string]any)
|
||||
args["code"] = result.CODE_ERROR
|
||||
args["msg"] = msg
|
||||
return args
|
||||
}
|
||||
|
||||
// 响应失败结果信息
|
||||
func ErrMsgFmt(msg string, args ...any) map[string]any {
|
||||
argv := make(map[string]any)
|
||||
argv["code"] = result.CODE_ERROR
|
||||
argv["msg"] = fmt.Sprintf(msg, args...)
|
||||
return argv
|
||||
}
|
||||
|
||||
// 响应失败结果数据
|
||||
func ErrData(data any) map[string]any {
|
||||
args := make(map[string]any)
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"be.ems/lib/core/datasource"
|
||||
"be.ems/lib/core/utils/date"
|
||||
"be.ems/lib/log"
|
||||
"be.ems/src/framework/i18n"
|
||||
"be.ems/src/framework/utils/ctx"
|
||||
"be.ems/src/framework/vo/result"
|
||||
@@ -54,13 +58,33 @@ func (s *PerfKPIController) GoldKPI(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// 查询网元获取IP
|
||||
neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID)
|
||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
||||
c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
if querys.NeID != "" {
|
||||
// 查询网元获取IP
|
||||
neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID)
|
||||
if neInfo.NeId != querys.NeID || neInfo.IP == "" {
|
||||
c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
|
||||
return
|
||||
}
|
||||
querys.RmUID = neInfo.RmUID
|
||||
log.Tracef("neInfo.RmUID=%s", neInfo.RmUID)
|
||||
} else { // tenant, useName -> tenantID
|
||||
var userName, rmUID string
|
||||
userName = ctx.LoginUserToUserName(c)
|
||||
// multi-tenancy, useName->tenantID->UPF.001(NEType.NEID)->rmUID
|
||||
selectSQL := fmt.Sprintf(`SELECT rm_uid FROM ne_info n WHERE CONCAT(n.ne_type,'.',n.ne_id) =
|
||||
(SELECT t.tenancy_key FROM sys_tenant t WHERE t.status='1' AND t.tenancy_type='NE' AND t.parent_id =
|
||||
(SELECT u.tenant_id FROM sys_user u WHERE u.user_name='%s'))`, userName)
|
||||
_, err := datasource.DefaultDB().SQL(selectSQL).Cols("rm_uid").Get(&rmUID)
|
||||
if err != nil {
|
||||
c.JSON(200, result.ErrMsgFmt("DB Get error: %s", err.Error()))
|
||||
return
|
||||
} else if rmUID == "" {
|
||||
c.JSON(200, result.ErrMsgFmt("NOT FOUND target NE"))
|
||||
return
|
||||
}
|
||||
querys.RmUID = rmUID
|
||||
log.Tracef("rmUID=%s", rmUID)
|
||||
}
|
||||
querys.RmUID = neInfo.RmUID
|
||||
|
||||
// 查询数据
|
||||
kpiData := s.perfKPIService.SelectGoldKPI(querys)
|
||||
|
||||
@@ -12,8 +12,9 @@ type GoldKPITitle struct {
|
||||
|
||||
// GoldKPIQuery 黄金指标查询参数结构体
|
||||
type GoldKPIQuery struct {
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
NeID string `form:"neId" binding:"required"`
|
||||
NeType string `form:"neType" binding:"required"`
|
||||
//NeID string `form:"neId" binding:"required"`
|
||||
NeID string `form:"neId"`
|
||||
StartTime string `form:"startTime" binding:"required"`
|
||||
EndTime string `form:"endTime" binding:"required"`
|
||||
Interval int64 `form:"interval" binding:"required"`
|
||||
|
||||
Reference in New Issue
Block a user