diff --git a/src/modules/network_data/controller/all_kpi.go b/src/modules/network_data/controller/all_kpi.go index 97f0bb35..9a358e1a 100644 --- a/src/modules/network_data/controller/all_kpi.go +++ b/src/modules/network_data/controller/all_kpi.go @@ -2,6 +2,7 @@ package controller import ( "fmt" + "strings" "be.ems/src/framework/datasource" "be.ems/src/framework/i18n" @@ -53,7 +54,8 @@ func (s *PerfKPIController) GoldKPI(c *gin.Context) { } querys.RmUID = neInfo.RmUID } else { // tenant, useName -> tenantID - var userName, rmUID string + var userName string + var rmUIDs []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) = @@ -63,15 +65,15 @@ func (s *PerfKPIController) GoldKPI(c *gin.Context) { // multi-tenancy, useName->tenantID->rmUID selectSQL := fmt.Sprintf(`SELECT t.tenancy_key FROM sys_tenant t WHERE t.status='1' AND t.tenancy_type='UPF' AND t.parent_id = (SELECT u.tenant_id FROM sys_user u WHERE u.user_name='%s' and u.status=1)`, userName) - err := datasource.DefaultDB().Raw(selectSQL).Scan(&rmUID).Error + err := datasource.DefaultDB().Raw(selectSQL).Scan(&rmUIDs).Error if err != nil { c.JSON(200, result.ErrMsgFmt("DB Get error: %v", err)) return - } else if rmUID == "" { + } else if len(rmUIDs) == 0 { c.JSON(200, result.ErrMsgFmt("NOT FOUND target NE")) return } - querys.RmUID = rmUID + querys.RmUID = strings.Join(rmUIDs, ",") } // 查询数据 diff --git a/src/modules/network_data/repository/perf_kpi.impl.go b/src/modules/network_data/repository/perf_kpi.impl.go index d872f7f8..2f603408 100644 --- a/src/modules/network_data/repository/perf_kpi.impl.go +++ b/src/modules/network_data/repository/perf_kpi.impl.go @@ -22,8 +22,13 @@ func (r *PerfKPIImpl) SelectGoldKPI(query model.GoldKPIQuery, kpiIds []string) [ var params []any var tableName string = "kpi_report_" if query.RmUID != "" { - conditions = append(conditions, "gk.rm_uid = ?") - params = append(params, query.RmUID) + rmUIDs := strings.Split(query.RmUID, ",") + var rmUIDconditions []string + for _, rmUID := range rmUIDs { + rmUIDconditions = append(rmUIDconditions, "gk.rm_uid = ?") + params = append(params, rmUID) + } + conditions = append(conditions, "("+strings.Join(rmUIDconditions, " or ")+")") } if query.NeType != "" { //conditions = append(conditions, "gk.ne_type = ?")