package domain import ( "admin/apps/game/domain/projects" "admin/apps/game/domain/repo" "admin/apps/game/model/dto" "admin/internal/consts" "admin/internal/errcode" "gorm.io/gorm" ) type AccountService struct { projectRepo repo.IProjectRepo } func NewAccountService(db *gorm.DB) *AccountService { return &AccountService{projectRepo: repo.NewProjectRepo(db)} } func (svc *AccountService) GetAccountDetail(projectId int, account string) (*dto.GetAccountDetailRsp, error) { _, projectEt, find, err := svc.projectRepo.GetById(projectId) if err != nil { return nil, err } if !find { return nil, errcode.New(errcode.ServerError, "not found project %v db data", projectId) } hook, ok := projects.GetProjectResourceHook(projectEt, consts.ResourcesName_Account).(projects.IGetAccountDetailHook) if !ok { return nil, errcode.New(errcode.ServerError, "not found hook for project:%v", projectId) } result, err := hook.GetDetail(projectEt, account) return result, err }