Add internal/repository/enterprise.go

This commit is contained in:
ata
2026-07-10 10:06:12 +00:00
committed by Gitee
parent a031b856ab
commit c633795a56

View File

@@ -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
}