Add internal/repository/enterprise.go
This commit is contained in:
69
internal/repository/enterprise.go
Normal file
69
internal/repository/enterprise.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user