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