37 lines
1.3 KiB
Go
37 lines
1.3 KiB
Go
package repository
|
|
|
|
import (
|
|
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// PigTradeRepository 定义了猪只交易数据持久化的接口。
|
|
// 领域服务通过此接口与数据层交互,实现解耦。
|
|
type PigTradeRepository interface {
|
|
// CreatePigSaleTx 在数据库中创建一条猪只销售记录。
|
|
CreatePigSaleTx(tx *gorm.DB, sale *models.PigSale) error
|
|
|
|
// CreatePigPurchaseTx 在数据库中创建一条猪只采购记录。
|
|
CreatePigPurchaseTx(tx *gorm.DB, purchase *models.PigPurchase) error
|
|
}
|
|
|
|
// gormPigTradeRepository 是 PigTradeRepository 接口的 GORM 实现。
|
|
type gormPigTradeRepository struct {
|
|
db *gorm.DB
|
|
}
|
|
|
|
// NewGormPigTradeRepository 创建一个新的 PigTradeRepository GORM 实现实例。
|
|
func NewGormPigTradeRepository(db *gorm.DB) PigTradeRepository {
|
|
return &gormPigTradeRepository{db: db}
|
|
}
|
|
|
|
// CreatePigSaleTx 实现了在数据库中创建猪只销售记录的逻辑。
|
|
func (r *gormPigTradeRepository) CreatePigSaleTx(tx *gorm.DB, sale *models.PigSale) error {
|
|
return tx.Create(sale).Error
|
|
}
|
|
|
|
// CreatePigPurchaseTx 实现了在数据库中创建猪只采购记录的逻辑。
|
|
func (r *gormPigTradeRepository) CreatePigPurchaseTx(tx *gorm.DB, purchase *models.PigPurchase) error {
|
|
return tx.Create(purchase).Error
|
|
}
|