44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"go-common/app/admin/ep/melloi/model"
|
|
"go-common/library/log"
|
|
)
|
|
|
|
// QueryDependServiceAdmins query depend Service admin
|
|
func (s *Service) QueryDependServiceAdmins(c context.Context, serviceName string, sessionValue string) (map[string][]string, error) {
|
|
|
|
var (
|
|
biliPrex = "bilibili."
|
|
err error
|
|
roles []*model.TreeRole
|
|
dependService []string
|
|
olesMap = make(map[string][]string)
|
|
)
|
|
|
|
if dependService, err = s.dao.QueryServiceDepend(c, serviceName); err != nil {
|
|
log.Error("query service depend error(%v)", err)
|
|
return nil, err
|
|
}
|
|
dependService = append(dependService, serviceName)
|
|
|
|
for _, service := range dependService {
|
|
var userService []string
|
|
if roles, err = s.QueryTreeAdmin(c, biliPrex+service, sessionValue); err != nil {
|
|
log.Warn("query tree admin of service (%s) depend error (%v)", biliPrex+service, err)
|
|
continue
|
|
}
|
|
|
|
for _, role := range roles {
|
|
// 增加多个service
|
|
userService = append(olesMap[role.UserName], biliPrex+service)
|
|
olesMap[role.UserName] = userService
|
|
}
|
|
|
|
}
|
|
|
|
return olesMap, err
|
|
}
|