From c633795a56e54bd7c90ae526db0f9e46991bfcfe Mon Sep 17 00:00:00 2001 From: ata <17314593+asdxzaaaaa@user.noreply.gitee.com> Date: Fri, 10 Jul 2026 10:06:12 +0000 Subject: [PATCH] Add internal/repository/enterprise.go --- internal/repository/enterprise.go | 69 +++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 internal/repository/enterprise.go diff --git a/internal/repository/enterprise.go b/internal/repository/enterprise.go new file mode 100644 index 0000000..2cbdbb5 --- /dev/null +++ b/internal/repository/enterprise.go @@ -0,0 +1,69 @@ +package repository + +import ( + "gotest/internal/model" + + "gorm.io/gorm" +) + +// EnterpriseRepository 企业数据访问层 +type EnterpriseRepository struct { + db *gorm.DB +} + +// NewEnterpriseRepository 创建企业仓库实例 +func NewEnterpriseRepository(db *gorm.DB) *EnterpriseRepository { + return &EnterpriseRepository{db: db} +} + +// GetCompany 获取企业信息(单条) +func (r *EnterpriseRepository) GetCompany() (*model.Company, error) { + var company model.Company + if err := r.db.First(&company).Error; err != nil { + return nil, err + } + return &company, nil +} + +// ListServices 获取服务列表 +func (r *EnterpriseRepository) ListServices() ([]model.EnterpriseService, error) { + var services []model.EnterpriseService + if err := r.db.Order("sort ASC, id ASC").Find(&services).Error; err != nil { + return nil, err + } + return services, nil +} + +// ListNews 获取新闻列表,category 为空时查询全部 +func (r *EnterpriseRepository) ListNews(category string, limit int) ([]model.EnterpriseNews, error) { + var news []model.EnterpriseNews + query := r.db.Where("status = 1") + if category != "" { + query = query.Where("category = ?", category) + } + if limit > 0 { + query = query.Limit(limit) + } + if err := query.Order("created_at DESC").Find(&news).Error; err != nil { + return nil, err + } + return news, nil +} + +// GetNews 根据 ID 获取新闻详情 +func (r *EnterpriseRepository) GetNews(id uint) (*model.EnterpriseNews, error) { + var news model.EnterpriseNews + if err := r.db.First(&news, id).Error; err != nil { + return nil, err + } + return &news, nil +} + +// ListTeam 获取团队成员列表 +func (r *EnterpriseRepository) ListTeam() ([]model.TeamMember, error) { + var team []model.TeamMember + if err := r.db.Order("sort ASC, id ASC").Find(&team).Error; err != nil { + return nil, err + } + return team, nil +}