2025-05-13 18:13:22 +08:00
|
|
|
package domain
|
|
|
|
|
|
|
|
import (
|
|
|
|
"admin/apps/game/domain/projects"
|
|
|
|
"admin/apps/game/domain/repo"
|
|
|
|
"admin/internal/consts"
|
|
|
|
"admin/internal/errcode"
|
2025-05-16 15:17:10 +08:00
|
|
|
"admin/internal/model/dto"
|
2025-05-13 18:13:22 +08:00
|
|
|
"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
|
|
|
|
}
|