uniugm/admin/apps/game/service/service_project.go

69 lines
2.0 KiB
Go
Raw Normal View History

2025-04-24 20:39:31 +08:00
package service
2025-04-30 15:46:14 +08:00
import (
"admin/apps/game/api"
"admin/apps/game/domain/entity"
"admin/internal/consts"
"admin/internal/permission"
)
2025-04-27 17:23:19 +08:00
2025-04-30 15:46:14 +08:00
func (svc *Service) GetRoutes(req *api.GetRoutesReq) (*api.GetRoutesRsp, error) {
rsp := &api.GetRoutesRsp{}
rsp.Projects = make([]*api.ProjectInitInfo, 0)
projects, err := svc.GetProjectList()
if err != nil {
return nil, err
}
for _, project := range projects {
projectDto := &api.ProjectInitInfo{
ProjectId: project.Po.ID,
ProjectName: project.Po.Name,
}
for _, v := range svc.GetSupportResourcesList(req.Permissions) {
if v.Resource == consts.ResourcesName_Project {
continue
}
permitV := &api.ResourceInitInfo{
Resource: v.Resource,
Desc: v.Desc,
ShowMethods: make([]string, 0),
MethodsPermissionStr: make([]string, 0),
}
for _, resourceMethod := range v.ShowMethods {
curMethodPermissionStr := permission.GetProjectResourcePermission(project.Po.ID, v.Resource, resourceMethod)
v.MethodsPermissionStr = append(v.MethodsPermissionStr, curMethodPermissionStr)
findPermit := false
for _, hasPermission := range req.Permissions {
if curMethodPermissionStr == hasPermission {
// 有权限
findPermit = true
break
}
}
if req.IsAdmin || findPermit {
permitV.ShowMethods = append(permitV.ShowMethods, resourceMethod)
permitV.MethodsPermissionStr = append(permitV.MethodsPermissionStr, curMethodPermissionStr)
}
}
projectDto.ResourceList = append(projectDto.ResourceList, permitV)
projectDto.ResourceTotalList = append(projectDto.ResourceList, v)
}
rsp.Projects = append(rsp.Projects, projectDto)
}
return rsp, nil
2025-04-27 17:23:19 +08:00
}
2025-04-30 15:46:14 +08:00
func (svc *Service) GetProjectList() ([]*entity.Project, error) {
_, _, list, err := svc.projectSvc.List()
return list, err
2025-04-24 20:39:31 +08:00
}
2025-04-30 15:46:14 +08:00
func (svc *Service) GetProjectInvokeApiAddr(projectId int, serverIds []int) ([]string, error) {
2025-04-24 20:39:31 +08:00
return svc.projectSvc.GetProjectInvokeApiAddr(projectId, serverIds)
}