diff --git a/internal/service/enterprise.go b/internal/service/enterprise.go new file mode 100644 index 0000000..1461d94 --- /dev/null +++ b/internal/service/enterprise.go @@ -0,0 +1,66 @@ +package service + +import ( + "gotest/internal/repository" +) + +// EnterpriseService 企业信息服务 +type EnterpriseService struct { + repo *repository.EnterpriseRepository +} + +// NewEnterpriseService 创建企业服务实例 +func NewEnterpriseService(repo *repository.EnterpriseRepository) *EnterpriseService { + return &EnterpriseService{repo: repo} +} + +// GetAllData 一次性获取企业官网所需的全部数据(公司、服务、新闻、团队) +func (s *EnterpriseService) GetAllData() (map[string]interface{}, error) { + company, err := s.repo.GetCompany() + if err != nil { + return nil, err + } + services, err := s.repo.ListServices() + if err != nil { + return nil, err + } + news, err := s.repo.ListNews("", 6) + if err != nil { + return nil, err + } + team, err := s.repo.ListTeam() + if err != nil { + return nil, err + } + return map[string]interface{}{ + "company": company, + "services": services, + "news": news, + "team": team, + }, nil +} + +// GetCompany 获取企业信息 +func (s *EnterpriseService) GetCompany() (interface{}, error) { + return s.repo.GetCompany() +} + +// ListServices 获取服务列表 +func (s *EnterpriseService) ListServices() (interface{}, error) { + return s.repo.ListServices() +} + +// ListNews 获取新闻列表 +func (s *EnterpriseService) ListNews(category string, limit int) (interface{}, error) { + return s.repo.ListNews(category, limit) +} + +// GetNews 获取新闻详情 +func (s *EnterpriseService) GetNews(id uint) (interface{}, error) { + return s.repo.GetNews(id) +} + +// ListTeam 获取团队列表 +func (s *EnterpriseService) ListTeam() (interface{}, error) { + return s.repo.ListTeam() +}