uniugm/admin/apps/game/domain/account.go
2025-05-13 18:13:22 +08:00

36 lines
986 B
Go

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
}