实现交易子服务
This commit is contained in:
		
							
								
								
									
										46
									
								
								internal/domain/pig/pig_trade_manager.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								internal/domain/pig/pig_trade_manager.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
package pig
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
 | 
			
		||||
	"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository" // 引入基础设施层的仓库接口
 | 
			
		||||
	"gorm.io/gorm"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// PigTradeManager 定义了与猪只交易相关的操作接口。
 | 
			
		||||
// 这是一个领域服务,负责协调业务逻辑。
 | 
			
		||||
type PigTradeManager interface {
 | 
			
		||||
	// SellPig 处理卖猪的业务逻辑,通过仓库接口创建 PigSale 记录。
 | 
			
		||||
	SellPig(tx *gorm.DB, sale *models.PigSale) error
 | 
			
		||||
 | 
			
		||||
	// BuyPig 处理买猪的业务逻辑,通过仓库接口创建 PigPurchase 记录。
 | 
			
		||||
	BuyPig(tx *gorm.DB, purchase *models.PigPurchase) error
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// pigTradeManager 是 PigTradeManager 接口的具体实现。
 | 
			
		||||
// 它依赖于 repository.PigTradeRepository 接口来执行数据持久化操作。
 | 
			
		||||
type pigTradeManager struct {
 | 
			
		||||
	tradeRepo repository.PigTradeRepository // 依赖于基础设施层定义的仓库接口
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewPigTradeManager 是 pigTradeManager 的构造函数。
 | 
			
		||||
func NewPigTradeManager(tradeRepo repository.PigTradeRepository) PigTradeManager {
 | 
			
		||||
	return &pigTradeManager{
 | 
			
		||||
		tradeRepo: tradeRepo,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SellPig 实现了卖猪的逻辑。
 | 
			
		||||
// 它通过调用 tradeRepo 来持久化销售记录。
 | 
			
		||||
func (s *pigTradeManager) SellPig(tx *gorm.DB, sale *models.PigSale) error {
 | 
			
		||||
	// 在此处可以添加更复杂的卖猪前置校验或业务逻辑
 | 
			
		||||
	// 例如:检查猪只库存、更新猪只状态等。
 | 
			
		||||
	return s.tradeRepo.CreatePigSaleTx(tx, sale)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// BuyPig 实现了买猪的逻辑。
 | 
			
		||||
// 它通过调用 tradeRepo 来持久化采购记录。
 | 
			
		||||
func (s *pigTradeManager) BuyPig(tx *gorm.DB, purchase *models.PigPurchase) error {
 | 
			
		||||
	// 在此处可以添加更复杂的买猪前置校验或业务逻辑
 | 
			
		||||
	// 例如:检查资金、更新猪只状态等。
 | 
			
		||||
	return s.tradeRepo.CreatePigPurchaseTx(tx, purchase)
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user