定义病猪子服务

This commit is contained in:
2025-10-06 15:35:20 +08:00
parent 1b026d6106
commit 648a790cec
8 changed files with 83 additions and 51 deletions

View File

@@ -5,6 +5,7 @@ import (
"time"
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
)
// --- 业务错误定义 ---
@@ -56,3 +57,34 @@ type PigBatchService interface {
UpdatePigBatchQuantity(operatorID uint, batchID uint, changeType models.LogChangeType, changeAmount int, changeReason string, happenedAt time.Time) error
}
// pigBatchService 是 PigBatchService 接口的具体实现。
// 它作为猪群领域的主服务,封装了所有业务逻辑。
type pigBatchService struct {
pigBatchRepo repository.PigBatchRepository // 猪批次仓库
pigBatchLogRepo repository.PigBatchLogRepository // 猪批次日志仓库
uow repository.UnitOfWork // 工作单元,用于管理事务
transferSvc PigPenTransferManager // 调栏子服务
tradeSvc PigTradeManager // 交易子服务
sickSvc SickPigManager // 病猪子服务
}
// NewPigBatchService 是 pigBatchService 的构造函数。
// 它通过依赖注入的方式,创建并返回一个 PigBatchService 接口的实例。
func NewPigBatchService(
pigBatchRepo repository.PigBatchRepository,
pigBatchLogRepo repository.PigBatchLogRepository,
uow repository.UnitOfWork,
transferSvc PigPenTransferManager,
tradeSvc PigTradeManager,
sickSvc SickPigManager,
) PigBatchService {
return &pigBatchService{
pigBatchRepo: pigBatchRepo,
pigBatchLogRepo: pigBatchLogRepo,
uow: uow,
transferSvc: transferSvc,
tradeSvc: tradeSvc,
sickSvc: sickSvc,
}
}