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 }