123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- package service
- import (
- "context"
- "go-common/app/admin/ep/melloi/model"
- "go-common/library/ecode"
- )
- // QueryServiceTreeToken get tree token by user sessionID
- func (s *Service) QueryServiceTreeToken(c context.Context, sessionID string) (token string, err error) {
- return s.dao.QueryServiceTreeToken(c, sessionID)
- }
- // QueryUserRoleNode QueryUserRoleNode
- func (s *Service) QueryUserRoleNode(c context.Context, sessionID string) (apps []string, err error) {
- var (
- roleApp []*model.RoleApp
- token string
- )
- if token, err = s.QueryServiceTreeToken(c, sessionID); err != nil {
- return
- }
- if roleApp, err = s.dao.QueryUserRoleApp(c, token); err != nil {
- err = ecode.MerlinGetUserTreeFailed
- return
- }
- for _, app := range roleApp {
- // Role 1:管理员 2:研发 3:测试 4:运维 5:访客
- // Type 1.公司 2.部门 3.项目 4. 应用 5.环境 6.挂载点
- if app.Role <= 3 && app.Type == 4 {
- apps = append(apps, app.Name)
- }
- }
- return
- }
- // QueryUserTree get user tree
- func (s *Service) QueryUserTree(c context.Context, sessionID string) (firstRetMap []map[string]interface{}, err error) {
- var (
- treeMap *model.UserTree
- token string
- )
- if token, err = s.QueryServiceTreeToken(c, sessionID); err != nil {
- err = ecode.MerlinGetUserTreeFailed
- return
- }
- if treeMap, err = s.dao.QueryUserTree(c, token); err != nil {
- err = ecode.MerlinGetUserTreeFailed
- return
- }
- if treeMap.Bilibili == nil {
- return
- }
- firstLevelMapTmp := treeMap.Bilibili
- firstLevelMap := firstLevelMapTmp["children"].(map[string]interface{})
- if firstLevelMap == nil {
- return
- }
- for firstLevelKey, firstLevelChildren := range firstLevelMap {
- var secondRetMap []map[string]interface{}
- secondLevelMapTmp := firstLevelChildren.(map[string]interface{})
- if secondLevelMapTmp["children"] == nil {
- continue
- }
- secondLevelMap := secondLevelMapTmp["children"].(map[string]interface{})
- for secondLevelKey, secondLevelChildren := range secondLevelMap {
- var thirdRetMap []map[string]interface{}
- thirdLevelMapTmp := secondLevelChildren.(map[string]interface{})
- if thirdLevelMapTmp["children"] == nil {
- continue
- }
- thirdLevelMap := thirdLevelMapTmp["children"].(map[string]interface{})
- for thirdLevelKey, thirdLevelChildren := range thirdLevelMap {
- if thirdLevelKey != "" && thirdLevelChildren != nil {
- thirdTmp := make(map[string]interface{})
- thirdTmp["value"] = thirdLevelKey
- thirdTmp["label"] = thirdLevelKey
- thirdRetMap = append(thirdRetMap, thirdTmp)
- }
- }
- if secondLevelKey != "" {
- secondTmp := make(map[string]interface{})
- secondTmp["value"] = secondLevelKey
- secondTmp["label"] = secondLevelKey
- secondTmp["children"] = thirdRetMap
- secondRetMap = append(secondRetMap, secondTmp)
- }
- }
- if firstLevelKey != "" {
- firstTmp := make(map[string]interface{})
- firstTmp["value"] = firstLevelKey
- firstTmp["label"] = firstLevelKey
- firstTmp["children"] = secondRetMap
- firstRetMap = append(firstRetMap, firstTmp)
- }
- }
- return
- }
- // QueryTreeAdmin get tree admin
- func (s *Service) QueryTreeAdmin(c context.Context, path string, sessionID string) (roles []*model.TreeRole, err error) {
- var (
- tar *model.TreeAdminResponse
- token string
- )
- if token, err = s.QueryServiceTreeToken(c, sessionID); err != nil {
- return
- }
- if tar, err = s.dao.QueryTreeAdmin(c, path, token); err != nil {
- err = ecode.MerlinGetUserTreeFailed
- return
- }
- //todo: 如果没有服务树权限需要申请
- for _, v := range tar.Data {
- if v.Role == 1 {
- roles = append(roles, v)
- }
- }
- return
- }
|