Files
web_template/internal/repository/enterprise.go
2026-07-10 10:06:12 +00:00

70 lines
1.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}